fuzzfetch

raw JSON →
16.1.0 verified Fri May 01 auth: no python

A Python library for downloading Firefox, Thunderbird, and jsshell builds from Mozilla's Taskcluster. Currently at version 16.1.0, with frequent releases (multiple per year). Requires Python >=3.10.

pip install fuzzfetch
error AttributeError: module 'fuzzfetch' has no attribute 'FuzzFetch'
cause Using 'import fuzzfetch' instead of 'from fuzzfetch import FuzzFetch'
fix
Use: from fuzzfetch import FuzzFetch
error pkg_resources.DistributionNotFound: The 'fuzzfetch' distribution was not found
cause Missing install or virtual environment not activated
fix
Run: pip install fuzzfetch --upgrade
error requests.exceptions.ConnectionError
cause No network access or Taskcluster endpoint unreachable
fix
Check internet connectivity and proxy settings. Try increasing timeout or retries.
breaking Version 14.0.0 changed behavior to return the newest build matching requested parameters, instead of raising an error if multiple builds found. Code that relied on the old error handling may silently get a different build.
fix Review any code that catches exceptions for ambiguous builds; now the newest build is always returned.
breaking Version 16.0.0 dropped support for Python 3.9. Users on Python 3.9 must upgrade to 3.10+.
fix Upgrade Python to 3.10 or later. Pin fuzzfetch<16 if necessary.
gotcha When using the 'date' parameter, be aware that only builds indexed from that exact date are returned; if no build exists, an exception is raised. Use 'from_date' and 'to_date' for ranges.
fix Use from_date and to_date for date ranges, or catch FuzzFetchException if exact date fails.
gotcha fuzzfetch depends on network access to Mozilla's Taskcluster. Running without a network or behind a strict proxy may cause timeouts or failures. Consider using retry logic (built-in since v11.1.0) or custom timeout.
fix Configure network/proxy settings or use FuzzFetch(max_retries=3, timeout=60).
pip install fuzzfetch[all]

Basic usage: create FuzzFetch instance, call fetch() with build flags and platform.

from fuzzfetch import FuzzFetch, BuildFlags

ff = FuzzFetch()
# Fetch the latest Firefox nightly for Linux64
build = ff.fetch(
    build=BuildFlags.FIREFOX,
    platform='linux64',
    branch='mozilla-central'
)
print(build.binary_path)
# Or fetch with specific date:
build = ff.fetch(
    build=BuildFlags.FIREFOX,
    platform='linux64',
    branch='mozilla-central',
    date='2025-01-15'
)
print(build.binary_path)