Riff is a fast, standalone Python tool for exploring YouTube music content, downloading albums and tracks, and managing them locally. It features:
- Artist and album exploration
- Track listing and download
- Persistent caching to speed up repeated queries
- TUI interface using Rich/Textual for a smooth terminal experience
- Single-file executable for easy installation
- Fetch all albums/releases of a YouTube artist
- List tracks from a specific album
- Download tracks efficiently via
yt-dlp - Persistent caching (
~/.cache/riff.cache) with configurable TTL - Standalone single-file executable built with PyInstaller
- Python 3.10+ (for development)
git(optional)sudoprivileges for system-wide install
git clone <repo-url> riff
cd riff
chmod +x ./scripts/install
./scripts/installThis will:
- Create a virtual environment
- Install dependencies
- Build a standalone executable
- Copy it to
/usr/local/bin/riff
After this, you can run:
riffsource ./scripts/sourceme
python src/main.py.
├── src
│ ├── cache.py # Persistent cache class
│ ├── converter.py # Utilities for conversions (optional)
│ ├── downloader.py # yt-dlp download logic
│ ├── metadata.py # Track and album metadata management
│ ├── main.py # CLI entry point
│ └── tui.py # Terminal interface using Rich/Textual
├── scripts
│ ├── sourceme # Optional environment helper
│ └── install # Installation script
├── requirements.txt
└── README.md
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature - Install dependencies in a virtual environment
- Make your changes
- Submit a pull request
MIT License — see LICENSE
