vid-download
Download video and audio from the terminal, powered by yt-dlp. Supports single or batch downloads, parallel workers, live progress bars, and both a guided interactive mode and fully scriptable CLI flags.
Installation
pip install vid-download
On first run, the tool checks for two required external tools — Deno (needed to solve some sites' JS challenges) and ffmpeg (needed for format conversion/merging) — and offers to install whichever is missing automatically.
Usage
Interactive mode
Run with no arguments for a fully guided flow — it'll ask how many files, prompt for each URL, and ask format/resolution/bitrate per file:
vid-download
Direct mode
Pass one or more URLs directly. Any flag you don't set falls back to an interactive prompt for just that value — you don't have to specify everything at once.
vid-download https://youtu.be/example
vid-download https://youtu.be/one https://youtu.be/two --format mp3 --bitrate 320k
Multiple URLs download in parallel and are automatically zipped into a single archive when finished (unless --no-zip is passed).
Flags
| Flag | Short | Default | Description |
|---|---|---|---|
--format |
-f |
prompt | mp4 or mp3. Applies to every URL passed if set; otherwise asked per URL. |
--resolution |
-r |
Best |
Best / 480P / 720P / 1080P. Used for mp4 only. |
--bitrate |
-b |
192k |
128k / 192k / 256k / 320k. Used for mp3 only. |
--output |
-o |
prompt | Save directory. Created automatically if it doesn't exist. |
--workers |
-w |
min(len(urls), 8) |
Maximum parallel downloads. |
--zip / --no-zip |
on for batches | Force or suppress zipping a multi-URL download. | |
--yes |
-y |
off | Skip all prompts — anything not explicitly flagged uses a default instead. |
--retries |
0 |
Retry count for rate-limited or transient failures. Permanent failures (not found, forbidden) are never retried. | |
--continue-on-error / --stop-on-error |
continue | Whether one failed URL should stop the rest of a batch. |
Fully unattended example
vid-download https://youtu.be/example -f mp4 -r 720P -o ~/Videos -y
Requirements
- Python 3.10+
- Deno and ffmpeg — auto-installed on first run if missing (Windows via winget, macOS via Homebrew, Linux via your system package manager)
License
MIT
Metadata
Release files for vid-download 0.2.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 | |
|---|---|---|---|
| vid_download-0.2.2.tar.gz | 12.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| vid_download-0.2.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 26.3 kB
Release files / vid_download-0.2.2.tar.gz
| Download URL | vid_download-0.2.2.tar.gz |
|---|---|
| Size | 12.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8b1c3933a65be5004d98a2404d15d1819ec9b9d48e8853895b93636b99311d3c
|
|
BLAKE2b-256 checksum How to use checksums |
71c380040faf06271250171b9753a46bde5a9fc62f519b7c014ff9d221e376aa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / vid_download-0.2.2-py3-none-any.whl
| Download URL | vid_download-0.2.2-py3-none-any.whl |
|---|---|
| Size | 13.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5ae5ec7eb8bfe2db316d702a5dfd3a5e4dd44c7dca379b77b70fd00e6eb1dc56
|
|
BLAKE2b-256 checksum How to use checksums |
4fb88aacecb59b10e54fcb0419d67d0233455af5cffb62b19a61ea1f0e63ac7e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|