Files
wiki/Catalogue-Self-Hosted/apps/app-yubal.md
T
2026-06-09 18:40:21 +02:00

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
catalogue
downloads
youtube
music
python
yt-dlp
tagging
medium false
https://selfh.st/apps/?tag=downloads
https://github.com/guillevc/yubal

🎵 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éfaut mp3 pour 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.txt YouTube 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 ./config chiffré, 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

Pages Liées