Package manager for FFmpeg, FFprobe, and FFplay static binaries
Project description
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.
Supported Platforms (Upstream): Linux amd64, Linux arm64v8, macOS Intel (Deprecated), Apple Silicon
Features
- Install [pre-built static binaries of] FFmpeg, FFprobe, and/or FFplay
- Fetch latest release or snapshot builds
- Configure custom installation location
- Update to latest version
- Check for updates
- Uninstall from system
- Smart permission handling
- Atomic file system operations
- 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>.
Hint: Multiple names can be passed, e.g.
ffup install ffmpeg ffprobe
Note: Default is
ffmpeg, if no name is passed
Parameters
-
--dir: The path to the installation directory- Environment variable:
$FFUP_DIR/$XDG_BIN_HOME - Default:
~/.local/bin - Functions:
check,install,uninstall,update
- Environment variable:
-
--build: The build type- Choices:
release,snapshot - Environment Variable:
$FFUP_BUILD - Default:
snapshot - Functions:
check,install,update
- Choices:
-
--arch: The machine architecture- Choices:
amd64,arm64 - Environment Variable:
$FFUP_ARCH - Default: Auto-detect using
platform.machine() - Functions:
check,install,update
- Choices:
-
--os: The operating system- Choices:
linux,macos - Environment Variable:
$FFUP_OS - Default: Auto-detect using
platform.system() - Functions:
check,install,update
- Choices:
-
--dry-run: A flag to skip download/install, and only check for updatesffup checkis an alias forffup update --dry-run- Default:
False - Functions:
update
API Reference
Functions
update(bins = {"ffmpeg"}, /, *, dry_run = False, dir, tempdir, progress, client) -> Noneinstall(bins = {"ffmpeg"}, /, *, dir, tempdir, progress, client) -> Noneuninstall(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.Sessionused 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"
Error Handling
FileNotFoundError
- By design, all operations will fail if the path in question does not exist
- For new installations, ensure that the installation directory exists
- For other operations, ensure that the path points to the installed binary
HTTPError
404 Client Error: Not Found for url: ...- Caused by invalid values for one or more of
build,arch, andosparameters
- Caused by invalid values for one or more of
PermissionError
- Triggers automatic escalation via
sudo - The user is prompted for a password at
stdin
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ffmpeg_update-3.0.1.tar.gz.
File metadata
- Download URL: ffmpeg_update-3.0.1.tar.gz
- Upload date:
- Size: 4.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.16 {"installer":{"name":"uv","version":"0.9.16","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
424c19651d0d2bfa352eefa5d5bd2db211d0f5dfb24b73e550f40dc56dd69dd0
|
|
| MD5 |
74614b70921c7e0aa8033b9dd211d671
|
|
| BLAKE2b-256 |
9ce374a3522f25fe4ffeac853c43c391c0ce34115562164a42e1da6e46b670ab
|
File details
Details for the file ffmpeg_update-3.0.1-py3-none-any.whl.
File metadata
- Download URL: ffmpeg_update-3.0.1-py3-none-any.whl
- Upload date:
- Size: 5.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.16 {"installer":{"name":"uv","version":"0.9.16","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e82a9ae3ffeca114a4662f51d5104c0929c3b7fd0aceca55bb58d56dc41e2cdc
|
|
| MD5 |
a2331d4b5fa63f9e92578de122561ccd
|
|
| BLAKE2b-256 |
6bfab9f87a552c5f22d4dc1204544c2e88d759dfa5c3092b88afa9033bfbfaa0
|