- Python 100%
| invidious_cli.py | ||
| README.md | ||
| requirements.txt | ||
inv_cli_downloader
A terminal user interface (TUI) utility for searching videos via the Invidious API and downloading them in 720p quality using the embedded yt-dlp engine.
Features
Asynchronous Search: API requests are handled non-blockingly via httpx, keeping the UI responsive during search operations.
Background Downloading: Video downloading runs in a separate thread (threading), allowing you to continue browsing search results while files download.
Integrated Progress Bar: Real-time download progress, percentages, and ETA are displayed directly inside the Textual status panel.
Automated Stream Merging: Downloads video targets in 720p with the correct audio stream automatically embedded into a standard .mp4 container.
Requirements and Installation
This script requires Python 3.8 or higher. Root privileges are not required.
All external libraries are managed via requirements.txt. To install them, run:
pip install -r requirements.txt
Note: If pip or installed tools are not recognized by your shell after installation, ensure your local binary directory is added to your user's PATH:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc source ~/.bashrc
Usage
Launch the interface by running:
python invidious_cli.py
Controls (Keybindings)
`` Enter inside the input field — Submit search query.
Up / Down Arrows or Mouse Click — Navigate the search results (displays the top 20 videos).
Enter on a selected list item — Initiate video download.
Q — Safely exit the application. ``
Configuration
By default, the script connects to the https://yt.chocolatemoo53.com instance. To switch to a different node, edit the INVIDIOUS_INSTANCE constant at the top of invidious_cli.py:
INVIDIOUS_INSTANCE = "[https://your-preferred-instance.com](https://your-preferred-instance.com)"
License
MIT