yubal
yubal is a self-hosted YouTube Music downloader that automatically organizes music into artist/album folders, syncs playlists on schedule, and deduplicates tracks. It provides a web UI, browser extensions, and integrates with media servers like Navidrome and Jellyfin.
Key facts
Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.
| Field | Value |
|---|---|
| Repository | guillevc/yubal |
| Owner | guillevc |
| Primary language | Python |
| License | MIT — OSI-approved |
| Stars | 1.4k |
| Forks | 43 |
| Open issues | 24 |
| Latest release | v0.9.1 (2026-06-11) |
| Last updated | 2026-07-06 |
| Source | https://github.com/guillevc/yubal |
What yubal is
Python/FastAPI application with yt-dlp backend, scheduled sync via cron, metadata tagging (ReplayGain, LRC lyrics), multiple audio format support (opus/mp3/m4a), Docker deployment, and M3U playlist generation compatible with standard media servers.
Get the yubal source
Clone the repository and explore it locally.
git clone https://github.com/guillevc/yubal.gitcd yubal# follow the project's README for install & configurationNeed it deployed, integrated, or customized instead? DEV.co ships production installs.
Best use cases
Implementation considerations
- Set PUID/PGID correctly for file permissions; NFS/Unraid mounts may require pre-existing write permissions rather than chown.
- Configure YUBAL_SCHEDULER_CRON for auto-sync intervals; default is daily. Adjust based on playlist update frequency and bandwidth.
- Choose audio format (opus/mp3/m4a) and quality (0–10 transcode level) upfront; changes to existing library require manual re-download.
- For multi-artist tracks, enable media server-specific settings (Jellyfin: 'Use non-standard artists tags'; Gonic: GONIC_MULTI_VALUE_ARTIST=multi).
- Allocate adequate disk space; no built-in quota or cleanup. Archive or rotate old playlists manually if storage is constrained.
When to avoid it — and what to weigh
- You Need Commercial YouTube Music Licensing — yubal automates downloading from YouTube Music; does not address licensing or copyright implications. Verify compliance with your jurisdiction's laws and YouTube's ToS.
- You Require Enterprise SLA/Support — This is a community open-source project (1.4k stars, single maintainer pattern). No commercial support, SLA, or guaranteed uptime.
- Audio Quality Is Mission-Critical — Dependent on YouTube Music's source quality and transcoding artifacts. No lossless option; best available is opus or direct m4a if available upstream.
- You Need Cross-Platform Sync Without Self-Hosting — Requires Docker or manual Python installation on your own hardware. No cloud sync or managed service option.
License & commercial use
MIT License. Permissive OSI license allowing commercial redistribution, modification, and private use with attribution. No copyleft or patent clauses.
MIT permits commercial use of the software itself. However, downloading and storing copyrighted music from YouTube Music raises independent legal/licensing questions outside the software license. Any commercial distribution or service use requires separate review of copyright compliance, YouTube ToS, and local law. Do not assume MIT license covers media licensing liability.
DEV.co evaluation signals
Editorial assessment — not user reviews. Directional, with an explicit confidence level.
| Signal | Assessment |
|---|---|
| Maintenance | Active |
| Documentation | Adequate |
| License clarity | Clear |
| Deployment complexity | Low |
| DEV.co fit | Good |
| Assessment confidence | High |
Runs on localhost by default (YUBAL_HOST=127.0.0.1). CORS set to '*' in Docker defaults; restrict in production. No authentication or authorization layer mentioned. Handles YouTube Music cookies/credentials—review how stored and transmitted. yt-dlp subprocess execution: ensure input validation. Lyrics fetched from external lrclib.net; consider network isolation if required.
Alternatives to consider
Lidarr + Radarr/Sonarr ecosystem
Mature, multi-source music/media management with automation. Higher complexity, steeper learning curve, but more polished UI and larger community.
Beets (Music Tagger)
CLI-first, highly scriptable music organization and tagging. Requires manual download step; playlist sync not built-in. Lower-level control.
Spotdl (Spotify downloader)
Similar workflow but for Spotify. YouTube Music–specific; not an alternative if YouTube Music is your source.
Build on yubal with DEV.co software developers
yubal automates YouTube Music downloads and playlist management for your home server. Explore deployment options, integration with Navidrome, and architecture decisions—or let us help design a music streaming stack.
Talk to DEV.coRelated on DEV.co
Explore the category and the services that help you build with it.
yubal FAQ
Does yubal require a YouTube Music Premium subscription?
Can I run yubal without Docker?
What happens if a track is in multiple subscribed playlists?
Is there a GUI or CLI only?
Software developers & web developers for hire
Adopting yubal is usually one piece of a larger software development effort. As a software development agency, DEV.co provides software development services and web development expertise — pairing senior software developers and web developers with your team to design, build, and operate open-source devops software in production.
Ready to Build a Self-Hosted Music Library?
yubal automates YouTube Music downloads and playlist management for your home server. Explore deployment options, integration with Navidrome, and architecture decisions—or let us help design a music streaming stack.