Skip to main content

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 app connected to a companion running only on your computer. 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

  1. Install Videx for your computer.
  2. Run videx web.
  3. Paste a URL, preview it, and queue the authorized media locally.

The browser interface is hosted at videx-app.vercel.app. Read the install guide, privacy statement, compatibility guidance, and troubleshooting guide.

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 web

Linux

curl -fsSL https://raw.githubusercontent.com/ws0x/Videx/main/install.sh | bash
videx doctor
videx web

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 web

Videx starts an authenticated companion on 127.0.0.1:8765 and opens the static app hosted on Vercel. The connection token is placed in the URL fragment, which browsers do not send to the web host. The app talks directly to the loopback companion.

Chrome may ask for Local Network Access permission. This permission only allows the static page to reach the Videx companion on your computer. If a browser or policy blocks that connection, run videx web --local to open the identical PWA directly from the companion.

The companion refuses non-loopback binding. Requests require a local bearer token and an approved web origin. Set VIDEX_WEB_ORIGINS to a comma-separated list when developing a fork.

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

videx_local-1.0.7.tar.gz (1.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

videx_local-1.0.7-py3-none-any.whl (81.8 kB view details)

Uploaded Python 3

File details

Details for the file videx_local-1.0.7.tar.gz.

File metadata

  • Download URL: videx_local-1.0.7.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

Hashes for videx_local-1.0.7.tar.gz
Algorithm Hash digest
SHA256 7ff698e826618e236a9545660fea4556948430c749da25aaeeb970b438a702ce
MD5 6c6fcd137da9220bb1d02f5ecd06f8d4
BLAKE2b-256 f65f55fe3b0ef9e38b923731b5181e7236a3591fcbee7f241e0539a8cbd83774

See more details on using hashes here.

Provenance

The following attestation bundles were made for videx_local-1.0.7.tar.gz:

Publisher: release-pypi.yml on ws0x/Videx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file videx_local-1.0.7-py3-none-any.whl.

File metadata

  • Download URL: videx_local-1.0.7-py3-none-any.whl
  • Upload date:
  • Size: 81.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for videx_local-1.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 f8e12b95c784771a2d73a6a1a8f2b3bba12e17751ec2061e09fecb9cfe315ae4
MD5 b51912f482abeb8bd559b73903dc78d4
BLAKE2b-256 2588c9e577e4f33bfd7688ce0cec5133353e072caa3164cdc02a9754128793a0

See more details on using hashes here.

Provenance

The following attestation bundles were made for videx_local-1.0.7-py3-none-any.whl:

Publisher: release-pypi.yml on ws0x/Videx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

1.0.9

2 files

1.0.8

2 files

This release

1.0.7 This release

2 files

1.0.6

2 files

1.0.5

2 files

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