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
- Default:
-
--build: The build type- Default:
snapshot - Choices:
release,snapshot - Environment Variable:
$FFUP_BUILD - Commands:
check,install,update
- Default:
-
--arch: The machine architecture- Default: Auto-detect using
platform.machine() - Choices:
amd64,arm64 - Environment Variable:
$FFUP_ARCH - Commands:
check,install,update
- Default: Auto-detect using
-
--os: The operating system- Default: Auto-detect using
platform.system() - Choices:
linux,macos - Environment Variable:
$FFUP_OS - Commands:
check,install,update
- Default: Auto-detect using
-
--dry-run: A flag to skip download/install, and only check for updates- Default:
False - Commands:
update - Note:
ffup checkis an alias forffup update --dry-run
- Default:
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) -> Noneget_arch() -> Literal["amd64", "arm64"]get_os() -> Literal["linux", "macos"]
bins: Asetof binary names
- Must contain one or more of
"ffmpeg","ffprobe", and"ffplay"
dry_run: Aboolindicating whether to skip download/install
dir: Apathlib.Pathto the installation directory
- Must exist and be absolute
tempdir: Atempfile.TemporaryDirectory[str]used to store and extract the downloaded archives
progress: Arich.progress.Progressused to show progress bars in the terminal
client: Aniquests.AsyncSessionused to make HTTP requests
- Must set parameter
base_urltof"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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| ffmpeg_update-3.1.2.tar.gz | 4.5 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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.