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

116 lines
5.9 KiB
Markdown

---
title: YoutubeDL-Material
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, downloads, video, youtube, nodejs, yt-dlp, material-ui, subscriptions]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=downloads, https://github.com/Tzahi12345/YoutubeDL-Material]
---
# YoutubeDL-Material
> GUI web complète pour **yt-dlp** avec support des **playlists**, **abonnements** à des chaînes, **multi-utilisateurs**, **Material Design** et un système de **file d'attente** avancé. Le pendant riche de [[app-metube]].
| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | https://youtubedl-material.tzahi.fr/ |
| **GitHub** | https://github.com/Tzahi12345/YoutubeDL-Material |
| **License** | AGPL-3.0 |
| **Langage** | TypeScript (Node.js / Express + Angular / Material UI) |
| **Étoiles GitHub** | 323 ⭐ |
| **Dernière MAJ** | 2026-05 |
| **Catégorie** | [[cat-downloads]] |
## Description
YoutubeDL-Material (ou YTM) est une **GUI web Material Design** pour **yt-dlp**, écrite en **TypeScript** avec un backend Node.js/Express et un frontend Angular. Là où [[app-metube]] propose une interface minimaliste de type « paste-URL-and-go », YTM va beaucoup plus loin : **abonnements à des chaînes YouTube** (synchronisation automatique), **playlists persistantes**, **file d'attente avancée**, **gestion multi-utilisateurs** avec permissions granulaires, **historique de téléchargements**, et **téléchargement de fichiers multiples en parallèle**.
L'application gère en interne une **base de données SQLite** (par défaut) qui stocke les abonnements, l'historique, les comptes utilisateurs et les métadonnées des fichiers. Une **API REST** exposée permet l'intégration avec des outils externes (Home Assistant, scripts Bash, etc.). Le **frontend Material UI** est responsive et offre une expérience proche de YouTube lui-même, avec un **lecteur vidéo intégré** (via video.js) et un **lecteur audio**.
YoutubeDL-Material est un projet **maintenu activement** (release mensuelle), régulièrement mis à jour pour suivre les changements d'API de YouTube. Le principal cas d'usage est le **« Personal YouTube »** : héberger une instance privée de sa bibliothèque de chaînes favorites, avec téléchargement automatique des nouvelles vidéos et consultation hors-ligne.
## Installation
### Option 1 : Docker Compose (recommandé)
```yaml
services:
youtubedl-material:
image: tzahi12345/youtubedl-material:latest
container_name: youtubedl-material
restart: unless-stopped
ports:
- "8998:8998"
environment:
- TZ=Europe/Paris
- YDLM_DEFAULT_AUDIO_DIRECTORY=/youtube_dl/audio
- YDLM_DEFAULT_VIDEO_DIRECTORY=/youtube_dl/video
volumes:
- ./config:/youtube_dl/config
- ./youtube_dl:/youtube_dl
- ./downloads:/downloads
```
UI sur `http://localhost:8998`. Compte admin créé au premier démarrage, à modifier immédiatement.
### Option 2 : Installation manuelle
```bash
git clone https://github.com/Tzahi12345/YoutubeDL-Material
cd YoutubeDL-Material
npm install
node src/back-end/index.js
# par défaut sur http://localhost:8998
```
## Configuration
1. **Comptes utilisateurs** : *Settings → Users* → créer plusieurs utilisateurs avec des permissions distinctes (admin, downloader, viewer).
2. **Abonnements** : *Subscriptions* → ajouter des chaînes YouTube à scraper. Configurer la fréquence (`subscription_check_interval`).
3. **Playlists** : ajouter des playlists YouTube à suivre ; YTM propose de télécharger les nouvelles entrées automatiquement.
4. **File d'attente** : supporte la **priorité**, la **pause/reprise**, l'**annulation sélective** et la **planification horaire**.
5. **Cookies** : monter un `cookies.txt` dans `/youtube_dl/cookies/` pour les vidéos soumises à authentification.
6. **Format** : `YDL_OPTIONS` permet de passer des flags yt-dlp avancés (qualité max, sponsorblock, format codec).
7. **Notification** : webhooks sortants (Discord, Telegram, NTFY) à la fin d'un téléchargement.
## Alternatives
### Open Source
- [[app-metube]] — Plus minimaliste, pas d'abonnements, plus rapide à déployer
- [[app-cobalt]] — API-first moderne, pas de base de données, plus simple
- **Tube Archivist** — Bibliothèque de chaînes YouTube avec focus sur la collection (Plex/Jellyfin)
- **Piped** / **Invidious** — Frontends alternatifs à YouTube (streaming, pas de téléchargement)
- [[app-plex]] / [[app-jellyfin]] — Media servers (YTM peut alimenter leur bibliothèque)
### Propriétaires
- **YouTube Premium** — Téléchargement hors-ligne officiel, limité à l'app mobile
- **4K Video Downloader** — Desktop, pas de webapp
- **Y2mate** — Site tiers, adwares
## Sécurité
- Changer le **mot de passe admin** créé au premier démarrage
- Activer l'authentification obligatoire (par défaut, YTM peut tourner en mode « open access » à désactiver)
- Restreindre l'accès via reverse proxy authentifié ([[app-authelia]], [[app-nginx-proxy-manager]])
- Les **abonnements** peuvent scrapper massivement YouTube : configurer un rate-limit raisonnable pour ne pas être banni
- ⚠️ Le téléchargement de contenu protégé par le droit d'auteur est **illégal** dans la plupart des juridictions
- Les cookies YouTube doivent être **renouvelés régulièrement** (expiration rapide)
## Ressources
- Site officiel : https://youtubedl-material.tzahi.fr/
- Code source : https://github.com/Tzahi12345/YoutubeDL-Material
- Documentation : https://github.com/Tzahi12345/YoutubeDL-Material/wiki
- yt-dlp (backend) : https://github.com/yt-dlp/yt-dlp
- Discord : https://discord.gg/AdFUBKx
## Pages Liées
- [[cat-downloads]] — Vue d'ensemble de la catégorie Downloads
- [[app-metube]] — Alternative minimaliste
- [[app-cobalt]] — Alternative API-first
- [[app-authelia]] — SSO pour restreindre l'accès
- [[app-jellyfin]] / [[app-plex]] — Media servers qui peuvent exploiter les fichiers
- [[recettes-docker-compose]] — Templates Docker