Videx
A private local video and audio download manager. Use it from your terminal or browser while your media and credentials stay on your machine.
Videx is a free, MIT-licensed local download manager for video, audio, playlists, and subtitles. It provides a guided CLI, scriptable commands, a persistent download queue, and a browser interface bundled with the local app. Videx uses yt-dlp and FFmpeg as local engine dependencies.
Why Videx
- Local by design. Downloads, URLs, cookies, history, and media never pass through a Videx server.
- Friendly defaults. Paste a URL and choose a quality without learning yt-dlp flags.
- Powerful when needed. Playlists, audio extraction, subtitles, clips, SponsorBlock, retries, presets, and batch jobs remain available.
- One engine. The CLI and browser use the same validated plans and SQLite queue.
- No account, subscription, cloud storage, analytics, or advertisements.
Videx supports many compatible sources through its local engine. Compatibility can change as source sites change. DRM-protected material, bypassing access restrictions, and unauthorized copying are not supported.
Use Videx only for media you own or are authorized to save. Videx does not grant rights to third-party content or override a platform's terms.
Start in three steps
- Install Videx for your computer.
- Run
videx app. - Paste a URL, preview it, and queue the authorized media locally.
The public website at videx-app.vercel.app provides the install guide, privacy statement, compatibility guidance, and troubleshooting guide. The installed Videx app provides the actual interface.
Install
Windows
Review and run install.ps1, or use this PowerShell command:
irm https://raw.githubusercontent.com/ws0x/Videx/main/install.ps1 | iex
The release binary is currently unsigned, so Windows SmartScreen may show a warning. Every release includes a SHA-256 checksum, and the installer verifies it before installation.
Install FFmpeg when prompted, then open a new terminal:
videx doctor
videx app
Linux
curl -fsSL https://raw.githubusercontent.com/ws0x/Videx/main/install.sh | bash
videx doctor
videx app
For an optional user service:
VIDEX_INSTALL_SERVICE=1 curl -fsSL https://raw.githubusercontent.com/ws0x/Videx/main/install.sh | bash
Python
python -m pip install videx-local
Python 3.10 or newer is required. FFmpeg is required for merging streams, conversion, thumbnails, and subtitle embedding. aria2c is optional.
Browser app
Run:
videx app
Videx starts a local service on 127.0.0.1:8765 and opens the interface bundled with Videx. The local app uses a secure session cookie and same-origin requests, so the public website is not part of the download path.
videx web remains a compatibility alias for videx app. Developers who need the older hosted PWA flow can run videx web --hosted explicitly.
The local service refuses non-loopback binding. The Vercel site provides documentation and downloads only.
The browser app supports:
- URL preview and available quality discovery
- Video and audio downloads
- Playlist, subtitle, clip, SponsorBlock, retry, and archive controls
- Live queue progress
- Cancellation, retry, removal, and opening output folders
- Exact output-file downloads
- Offline app-shell caching
CLI examples
videx
videx https://example.com/video -q 1080
videx https://example.com/video --audio -f mp3
videx add https://example.com/video -q 720
videx jobs --json
videx job JOB_ID --json
videx cancel JOB_ID
videx formats https://example.com/video
videx daemon start
videx doctor --json
videx update
Run videx --help or videx <command> --help for the complete option list.
Configuration and local data
Configuration precedence is CLI flags, environment variables, config file, then defaults.
- Config:
~/.config/videx/config.toml - Data and queue:
~/.local/share/videx - Default downloads:
~/Downloads/videx
Override these with VIDEX_CONFIG_DIR, VIDEX_DATA_DIR, and VIDEX_OUTPUT_DIR.
Videx checks GitHub Releases at most once every 24 hours when interactive mode starts. It only displays a notice. It never installs an update without approval. Set VIDEX_NO_UPDATE_CHECK=1 to disable this request.
Development
python -m venv .venv
# Windows: .venv\Scripts\activate
# Linux: source .venv/bin/activate
pip install -e ".[dev,web]"
pytest
ruff check videx tests
mypy videx
cd webui
npm ci
npm run build
Required tests never contact media websites. Network extractors are mocked or served by local fixtures.
See CONTRIBUTING.md, SECURITY.md, PRIVACY.md, ROADMAP.md, and the architecture, API, and release guides.
License
MIT. See LICENSE.
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 videx_local-1.0.9.tar.gz.
File metadata
- Download URL: videx_local-1.0.9.tar.gz
- Upload date:
- Size: 1.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
82c806afb3ca91c0ce42f0990240e4658bbc404accebcb6b489f154985ed5553
|
|
| MD5 |
64e64223261e780f27e613c40ccdc49b
|
|
| BLAKE2b-256 |
3bda619b37d83e0a0110f6d9e8f6ce3c8f5a8ce4b0605d98bff2b51baa72e887
|
Provenance
The following attestation bundles were made for videx_local-1.0.9.tar.gz:
Publisher:
release-pypi.yml on ws0x/Videx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
videx_local-1.0.9.tar.gz -
Subject digest:
82c806afb3ca91c0ce42f0990240e4658bbc404accebcb6b489f154985ed5553 - Sigstore transparency entry: 2421354114
- Sigstore integration time:
-
Permalink:
ws0x/Videx@f6b296e9b959374cd7a720e5e25ae8003017ab8b -
Branch / Tag:
refs/tags/v1.0.9 - Owner: https://github.com/ws0x
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@f6b296e9b959374cd7a720e5e25ae8003017ab8b -
Trigger Event:
push
-
Statement type:
File details
Details for the file videx_local-1.0.9-py3-none-any.whl.
File metadata
- Download URL: videx_local-1.0.9-py3-none-any.whl
- Upload date:
- Size: 83.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89381cb47f68828a7905d36363823bbb6d43c1328ed0b12155fd5ea8e0757ad3
|
|
| MD5 |
b14e5ba72d2d307ff2669ee0e54884a7
|
|
| BLAKE2b-256 |
c46f8ee8c2d0c4803da7ff5ae810db326834f42628050cf9963ebd533966bc72
|
Provenance
The following attestation bundles were made for videx_local-1.0.9-py3-none-any.whl:
Publisher:
release-pypi.yml on ws0x/Videx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
videx_local-1.0.9-py3-none-any.whl -
Subject digest:
89381cb47f68828a7905d36363823bbb6d43c1328ed0b12155fd5ea8e0757ad3 - Sigstore transparency entry: 2421354181
- Sigstore integration time:
-
Permalink:
ws0x/Videx@f6b296e9b959374cd7a720e5e25ae8003017ab8b -
Branch / Tag:
refs/tags/v1.0.9 - Owner: https://github.com/ws0x
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@f6b296e9b959374cd7a720e5e25ae8003017ab8b -
Trigger Event:
push
-
Statement type: