Relay
SAVE ANY MEDIA. KEEP IT LOCAL.
One queue for video, audio, and playlists. Any format, no ads, no extensions.
Download · Quick start · Features · FAQ
What is Relay?
Relay is a Media downloader for Python 3.12. One queue for video, audio, and playlists. Any format, no ads, no extensions.
| Platform | Windows, macOS, Linux |
| Runtime | Python 3.12 |
| Engine | yt-dlp + FFmpeg |
| Formats | MP4, MKV, MP3, FLAC, WAV |
| Price | Free, MIT |
v2.2.0 is live. The build in the download folder mirrors the source in this repository.
Preview
Workspace — queue, library, formats, settings.
Features
Any sourceYouTube, SoundCloud, Bandcamp, and direct URLs, with a plugin interface for more. |
Any formatMP4 and MKV up to 4K, MP3, FLAC, WAV, and Opus with embedded cover art. |
PlaylistsQueue channels and playlists with resume and de-duplication. |
SubtitlesDownload, convert, and mux subtitles, including auto-generated tracks. |
MetadataWrite tags, chapters, and cover art so files land clean in any player. |
Batch modeA queue that survives restarts and a CLI that scripts cleanly. |
Quick start
- Install Python 3.12 and FFmpeg.
- Install Relay with pipx install relay-dl.
- Paste a URL or drop a list into the queue.
- Pick a preset and a destination folder.
- Start the queue and let it run.
relay/
├── bin\
├── config\
├── profiles\
└── logs\Uninstall by deleting the folder. Nothing is written outside it and the per-user config directory.
Usage
# install
pipx install relay-dl
# download
relay get https://youtu.be/... --preset 4k
relay get urls.txt --audio flac --jobs 4
# library
relay library --verify- FFmpeg is required and checked at startup.
- Queue state lives in SQLite and resumes.
- Presets cover 4K, 1080p, MP3, and FLAC.
FAQ
Is this legal?
Downloading content you do not own may violate the platform terms and local law. Use it for media you have the right to save.
Why FFmpeg?
Muxing, transcoding, and subtitle work all run through FFmpeg. Relay ships a setup check.
Does it support Spotify?
Spotify streams are DRM-protected. Relay reads public metadata and matches it to a downloadable source when one exists.
Can it resume?
Yes. The queue is stored in SQLite and resumes after a restart.
Repo activity
| Latest release | v2.2.0 — 3 days ago |
| Last commit | core: stability fixes and dependency bump |
| Open issues | 6 |
| Contributors | 9 |
| Update cadence | weekly |
Changelog — v2.2.0
- Stability fixes across the main workflow
- Reduced startup time
- Updated dependencies
- Documentation cleanup
Roadmap
- Video and audio presets
- Playlist queue with resume
- Subtitle muxing
- Metadata and cover art
- Browser companion
- NAS daemon
Project layout
src/ core implementation
docs/ usage, FAQ, publishing notes
assets/ original artwork
CHANGELOG.md release history
DISCLAIMER.md responsible-use noticeLicense
MIT. See LICENSE.
Unofficial project. Relay is not affiliated with any platform or publisher it interoperates with. Use it only on systems you own, and only where such modifications are permitted.