Skip to main content

FFmpeg-update is a package manager for the FFmpeg suite, available as both a CLI tool and a Python library. It fetches pre-built, static binaries published by Martin Riedl.

Features

  • Atomic installation
  • Concurrent downloads
  • Download progress bars
  • Configurable installation directory
  • Latest release and snapshot builds available
  • Automatic sudo escalation for privileged installation directory
  • Automatic operating system and machine architecture detection

Installation

pip install ffmpeg-update

The installation provides the ffup executable.

CLI Reference

Usage

ffup <install|update [--dry-run]|check|uninstall> [OPTIONS] [ffmpeg] [ffprobe] [ffplay]

Alternatively, can be invoked as a module with python -m ffmpeg_update <COMMAND>.

Parameters

  • --dir: The path to the installation directory

    • Default: ~/.local/bin
    • Environment variable: $FFUP_DIR, $XDG_BIN_HOME
    • Commands: check, install, uninstall, update
  • --build: The build type

    • Default: snapshot
    • Choices: release, snapshot
    • Environment Variable: $FFUP_BUILD
    • Commands: check, install, update
  • --arch: The machine architecture

    • Default: Auto-detect using platform.machine()
    • Choices: amd64, arm64
    • Environment Variable: $FFUP_ARCH
    • Commands: check, install, update
  • --os: The operating system

    • Default: Auto-detect using platform.system()
    • Choices: linux, macos
    • Environment Variable: $FFUP_OS
    • Commands: check, install, update
  • --dry-run: A flag to skip download/install, and only check for updates

    • Default: False
    • Commands: update
    • Note: ffup check is an alias for ffup update --dry-run

API Reference

Functions

  • async update(bins = {"ffmpeg"}, /, *, dry_run = False, dir, tempdir, progress, client) -> None
  • async install(bins = {"ffmpeg"}, /, *, dir, tempdir, progress, client) -> None
  • uninstall(bins = {"ffmpeg"}, /, *, dir) -> None
  • get_arch() -> Literal["amd64", "arm64"]
  • get_os() -> Literal["linux", "macos"]
  • bins: A set of binary names

    • Must contain one or more of "ffmpeg", "ffprobe", and "ffplay"
  • dry_run: A bool indicating whether to skip download/install

  • dir: A pathlib.Path to the installation directory

    • Must exist and be absolute
  • tempdir: A tempfile.TemporaryDirectory[str] used to store and extract the downloaded archives

  • progress: A rich.progress.Progress used to show progress bars in the terminal

  • client: A niquests.AsyncSession used to make HTTP requests

    • Must set parameter base_url to f"https://ffmpeg.martin-riedl.de/redirect/latest/{os}/{arch}/{build}/"
    • build: "release", "snapshot"
    • arch: "amd64", "arm64"
    • os: "linux", "macos"

Metadata

Release files for ffmpeg-update 3.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ffmpeg-update 3.1.2
File Size Uploaded Provenance
ffmpeg_update-3.1.2.tar.gz 4.5 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for ffmpeg-update 3.1.2
File Interpreter ABI Platform
ffmpeg_update-3.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 10.3 kB

Release files / ffmpeg_update-3.1.2.tar.gz

Download URL ffmpeg_update-3.1.2.tar.gz
Size 4.5 kB
Tags Source
SHA-256 checksum
How to use checksums
216a3da463a2038e3096c1f9f02cfbe64a0ba854baac9e55820cce0e31625dfd
BLAKE2b-256 checksum
How to use checksums
749e4f31dfcc5e3a46222be221a07fce94028a82eaea96e012b8ef46fd7f649c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / ffmpeg_update-3.1.2-py3-none-any.whl

Download URL ffmpeg_update-3.1.2-py3-none-any.whl
Size 5.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
58b152d956dff8ffd1844dbd67057f3352962adac897dc29ab39245b4a6bd8d8
BLAKE2b-256 checksum
How to use checksums
cf4f8f366a285028e0952ac144e82269e8787b39ef716146cd9f52b0b80006f4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for ffmpeg-update 3.1.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page