5.5 KiB
title, created, updated, type, tags, confidence, contested, sources
| title | created | updated | type | tags | confidence | contested | sources | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| yubal | 2026-06-07 | 2026-06-07 | app |
|
medium | false |
|
🎵 yubal
Téléchargeur et tagueur automatique pour YouTube Music : transforme playlists et albums en bibliothèque audio propre et correctement tagguée.
| Métadonnée | Valeur |
|---|---|
| Site web | https://github.com/guillevc/yubal |
| GitHub | https://github.com/guillevc/yubal |
| License | MIT |
| Langage | Python (FastAPI + uv) |
| Étoiles | 41 ⭐ |
| Dernière MAJ | 2026 |
| Catégorie | cat-downloads |
Description
yubal est un projet récent (fin 2025) qui se concentre sur un créneau précis : télécharger depuis YouTube Music avec un taggage propre, prêt à importer dans un lecteur. Là où app-yt-dlp-web-player reste généraliste (vidéo, audio, formats), yubal va plus loin sur la partie musique : récupération des métadonnées YT Music (titre, album, artiste, n° de piste, année, pochette), taggage via mutagen, organisation en arborescence Artiste/Album/## - Titre.ext.
Le fonctionnement est volontairement simple : on colle une URL YouTube Music (track, album ou playlist), yubal télécharge en arrière-plan via yt-dlp, écrit les tags ID3/Vorbis, et expose une UI web légère pour suivre l'avancement. La v0.2 a ajouté le support natif des playlists (très demandé) et la possibilité de synchroniser les métadonnées avec Spotify (pour récupérer les cover arts haute résolution et les tags enrichis comme le BPM, l'ISRRC, etc.).
L'approche est minimaliste : pas de client torrent, pas de PVR, pas d'intégration *arr. C'est un outil périphérique idéal à coupler avec app-lidarr (import manuel), app-navidrome (scanner) ou un simple dossier Dropbox/SMB pour écoute nomade.
Installation
Docker Compose (recommandé)
# docker-compose.yml
services:
yubal:
image: ghcr.io/guillevc/yubal:latest
container_name: yubal
restart: unless-stopped
ports:
- "8484:8484"
environment:
- TZ=Europe/Paris
- DOWNLOAD_DIR=/downloads
- AUDIO_FORMAT=mp3
- AUDIO_QUALITY=320
volumes:
- ./config:/app/config
- /data/music/yubal:/downloads
Installation manuelle
# Prérequis : Python 3.11+, ffmpeg, uv
git clone https://github.com/guillevc/yubal
cd yubal
uv sync
uv run fastapi dev app/main.py
# UI sur http://localhost:8484
Configuration
- Format de sortie :
mp3,flac,opus,m4a— défautmp3pour compatibilité maximale. - Qualité audio : bitrate cible pour les formats lossy (
0= best available). - Dossier de sortie : un seul volume monté, organisation
Artiste/Année - Album/## - Titre.ext. - Spotify sync (optionnel) : client ID + secret pour enrichir les tags via l'API Spotify.
- Cookies navigateur : export
cookies.txtYouTube Music si l'IP est restreinte (rares cas). - Watch folder : un mode watch (à venir) devrait permettre de coller des URLs dans un fichier texte à surveiller.
Alternatives
Open Source
- app-yt-dlp-web-player — UI web générique pour yt-dlp (vidéo + audio), plus large mais sans focus musique.
- app-meetube — fork de MeTube, interface simple, peu de taggage.
- app-spotizerr — focus Spotify uniquement, résolution via YouTube.
- app-music-grabber — complément Lidarr pour backfill multi-sources.
- spotDL — CLI Python référence, pas d'UI web, excellent tagging Spotify→YT.
- youtubedl-material — UI web complète, plus ancien, plus lourd.
Propriétaires (ce que yubal remplace)
- YouTube Music Premium offline — téléchargement只能在应用内,无法在Plex/Navidrome中读取。
- SpotTube Premium — pareil,只能在客户端读。
- Services de ripping payants (tunepat, soundiz) — non self-hosted, abonnement mensuel.
Sécurité
- Cookies YouTube : si vous les fournissez pour contourner des restrictions, ils donnent accès à votre compte Google — à stocker dans
./configchiffré, pas en variable d'environnement Docker inspectable. - Métadonnées Spotify : ne jamais exposer le client secret, yubal ne supporte que OAuth local.
- Droits d'auteur : comme tout outil de la famille yt-dlp, à n'utiliser que sur du contenu sous licence libre (CC-BY) ou vos propres uploads.
- Pas d'auth par défaut : l'UI accepte n'importe quelle URL, ne pas exposer sur Internet sans reverse proxy authentifié (app-traefik + app-authentik).
- Surface d'attaque faible : projet jeune (~1 an), peu de dépendances lourdes, mais bus factor 1 (un seul mainteneur actif).
Ressources
- Repository : https://github.com/guillevc/yubal
- Release notes v0.2 (playlists) : https://www.reddit.com/r/selfhosted/comments/1qknc0i/
- yt-dlp upstream : https://github.com/yt-dlp/yt-dlp
- mutagen (lib de taggage) : https://mutagen.readthedocs.io/
- selfh.st downloads : https://selfh.st/apps/?tag=downloads
Pages Liées
- cat-downloads — catégorie parente
- app-lidarr — peut ingérer les downloads
- app-navidrome — serveur de streaming musical
- app-yt-dlp-web-player — alternative généraliste
- app-spotizerr — alternative focus Spotify
- app-traefik — reverse proxy HTTPS
- app-authentik — SSO
- recettes-docker-compose — templates
- securisation-home-lab — bonnes pratiques