Software Tuto

Télécharger des vidéos YouTube automatiquement sur Plex

comment télécharger automatiquement des vidéos YouTube que vous avez dans vos playlists sur votre serveur et qu'elle soit reconnue par Plex

Aujourd’hui, on se retrouve pour un article qui va expliquer comment télécharger automatiquement des vidéos YouTube que vous avez dans vos playlists sur votre serveur et qu’elle soit reconnue par Plex avec toutes les metadata.

Je pense que pour certaines personnes faire ça n’est pas très utilise si on peut accéder aux vidéos depuis YouTube, personnellement je fait ça, car pas mal de vidéos que j’ai dans mes playlists YouTube sont supprimé. (sûrement droit d’auteur) Donc pour palier à ce problème, je stocke tout en local sur mon serveur et comme j’utilise Plex que je me suis demandé s’il n’y avait pas moyen pour qu’il reconnaisse automatiquement les vidéos YouTube et il s’avère que ZeroQI a posté sur GitHub une extension pour Plex qui le permet.

Le tuto va être découpé en 4 partie

  1. Installation de l’extension Plex pour YouTube
  2. Création d’une clé d’api YouTube
  3. Installation de YouTubeDL pour télécharger les vidéos
  4. Ajout d’une bibliothèque Plex pour les vidéos

Installation de l’extension Plex

Pour installer une extension Plex, on doit placer les extensions dans le dossier plugins de votre répertoire Plex et de redémarrer. Vous trouverez le logiciel disponible sur GitHub à ce lien.

Pour ceux qui ne savent pas télécharger le code d’un logiciel sur GitHub, vous devez cliquer sur Code, puis Download Zip.

how_download_git_project
Comment télécharger un logiciel sur GitHub/GitLab

Normalement maintenant vous avez un fichier YouTube-Agent.bundle-master.zip qu’il vous suffit de dézipper dans le répertoire Plugin-ins de Plex et de renommer le dossier YouTube-Agent.bundle-master en YouTube-Agent.bundle sinon il ne sera pas reconnu par Plex.

Après avoir redémarré vous pouvez vérifier que le plugin est bien actif en créant une nouvelle bibliothèque de Séries TV puis dans Avancé et dans Agent vous devriez voir YoutubeSeries, si vous le voyez tout est bien installer.

Création d’une clé d’api Youtube

Pour que Plex récupère les metadata de YouTube, (description, date…) il faut créer une api. Pour se faire, vous devez aller sur la console de développeurs de Google ici et cliquer en haut sur Sélectionnez un projet.

Puis vous cliquez sur Nouveau Projet

La, vous rentrez le nom que vous voulez ce n’est pas important et vous cliquez sur Créer

Maintenant que votre projet est créer vous allez cliquer sur Activer les API et les services

Ici, vous écrivez dans la barre de recherche YouTube et vous sélectionnez Youtube Data API v3

Et vous cliquez sur Activer.

Maintenant que l’api YouTube est ajouter à votre projet vous allez générer la clé d’API. Sur votre tableau de bord, cliquez sur Identifiants , Créer des identifiants et sur Clé API

Voilà, maintenant vous avez votre clé d’api copier la quelque part, on l’utilisera à la fin pour la création de la bibliothèque Plex.

Installation de YouTube-Dl pour télécharger les vidéos

Maintenant que le plugin YouTube est bien installer sur Plex, nous allons pouvoir installer YouTubeDL pour télécharger les vidéos YouTube automatiquement, pour ce faire nous allons utiliser Docker et l’image tzahi12345/youtubedl-material. Pour ceux qui n’utilisent pas docker, YouTubeDL est disponible sur windows et linux. Mais je vous laisserez le soin de trouver comment télécharger automatiquement les vidéos YouTube, car ici, nous allons utiliser, une image docker avec une interface graphique qui permet de ne pas utiliser YouTubeDL en ligne de commande.

Pour lancer le container avec docker :

docker run --name YoutubeDL \
	-e TZ="Europe/Paris" \
	-v /yourpath:/app/users \
	-v /yourpath:/app/appdata \
	-v /yourpath:/app/audio \
	-v /yourpath:/app/video \
	-v /yourpath:/app/subscriptions \
	--restart=always 
\
	-p 17442:17442/tcp
 \
	--net=bridge
 \
tzahi12345/youtubedl-material

Pour lancer le container avec Docker-Compose :

version: "2"
services:
    YoutubeDL-Material:
        restart: always
        volumes:
            - ./appdata:/app/appdata
            - ./audio:/app/audio
            - ./video:/app/video
            - ./subscriptions:/app/subscriptions
            - ./users:/app/users
        ports:
            - "17442:17442"
        networks:_mode: "bridge"
        image: tzahi12345/youtubedl-material:latest

Pour les utilisateurs d’Unraid, vous trouverez dans les Community Applications l’image docker directement youtube dl material

Maintenant que vous avez créer votre container Youtube-DL, nous allons accéder à l’interface web pour tout configurer

Interface Web de YoutubeDL-Material
Interface Web de YoutubeDL-Material

Ici, vous avez la possibilité de télécharger directement des vides, mais nous n’allons pas utiliser ça, je vous laisse le soin de découvrir toutes les fonctionnalités du logiciel, pour ce tuto nous allons juste cliquer sur le buton en haut à gauche puis sur Subscriptions. La nous somme sur la partie qui va permet d’ajouter des playlist et des chaînes YouTube.

Vous avez différent moyen pour télécharger des playlists avec youtubeDL, vous pouvez utiliser la méthode qui est sur la page GitHub du projet, mais je ne suis pas fan de celle-ci, car les playlists sont triées en saisons et le nom de la série est le nom de la chaîne. Ce qui donne ceci :

  • Allociné
    • Saison 1 (Série faux raccord)
      • Ep1

Le problème est que l’on n’a pas le nom de playlist, mais seulement saison 1, saison 2, etc.

La méthode que j’utilise consiste à avoir mes playlists visibles directement et non les chaînes YouTube (sauf quand je télécharge toutes les vidéos d’une chaîne YouTube ) et voici le rendu :


Avec cette méthode dans l’ancienne version du plugin on ne pouvait pas récupérer le nom de playlist, on avait seulement le chemin du fichier comme nom de série. (Ex: /movies/Videos/YoutubeTest/YoutubeDL/app/subscriptions/playlists/playlist/Disney) Mais vue que je suis gentil, j’ai modifié le plugin et maintenant tout est automatique. 😋 Comme sur YouTube il n’y a pas d’option pour ajouter de miniature de playlist on ne peut pas en ajouter automatiquement, le plugin va seulement récupérer les screen de toutes les vidéos de la playlist et en prendre un au hasard. Donc pour rendre le tout un peut plus jolie, j’ajoute les miniatures de playlist manuellement.

Ajout de playlists YouTube

Comme je l’ai dit plus haut, j’utilise une méthode particulière pour que Plex reconnaisse chaque playlist comme une série distincte, ce qui a un impact sur la hiérarchie des fichier que nous allons télécharger. Donc il va y avoir 2 méthodes pour télécharger les playlists YouTube, la première pour les playlists que vous avez créer et la seconde pour les playlists d’autre personne.

⚠ Attention vous allez voir ci-dessous qu’il y a des options que je conseille pour éviter que votre IP soit bloqué par YouTube, oui ça peux arriver si vous télécharger beaucoup de vidéos dans un temps restreins YouTube bloque votre IP pour plusieurs jours, donc je vous conseille d’ajouter toutes les options pour éviter ça. Mais il est possible que votre IP soit quand même bloqué, c’est pourquoi dans la suite du tuto, il y aura une partie optionnel pour connecter YoutubeDL à un VPN qui va changer d’IP a chaque blocage de YouTube.

Ajout de toutes vos playlists

Attention avec cette méthode vous allez télécharger toutes vos playlists YouTube qui sont publiques et les playlists que vous avez enregistrer, mais pas vos playlists privées et non répertorié donc vérifier bien les paramètre de vos playlists.

Je vous conseille fortement de mettre toutes vos playlists en non répertorié sauf une et d’ensuite de lancer le téléchargement de toutes vos playlists, car si vous lancer pour la première fois le téléchargement de toutes vos playlists directement, il risque d’avoir des problèmes de téléchargement. Donc laisser seulement une playlist en public et une fois que cette playlist est télécharger replacer vos playlists en public une par une.

  1. Cliquer sur le bouton + en bas a droite de YouTubeDL
  2. Ajouter l’url de vos playlist youtube dans le premier champ (Ex: https://youtube.com/channel/idDeVotreChaine/playlists)
  3. Dans Custom name nous allons ajouter quelques choses de spécial que j’ai choisi de faire. (je fais vraiment rien comme les autre ^^) Vu que vous allez télécharger toutes vos playlists, on va devoir les placer dans un dossier donc vous ajoutez seulement : /playlist
    (Et toutes les autres playlists que vous ajouterez vous allez devoir ajouter /playlist avant le nom de la playlist (Ex: /playlist/Faux Raccord )
  4. Dans Custom file output vous allez ajouter ceci : %(playlist)s [%(playlist_id)s]/%(autonumber)s – %(title)s [%(id)s] Cette commande va créer pour chaque playlist un dossier avec l’id de la playlist, puis elle va nommer chaque vidéo avec son nom, son id et son index ce qui va permettre à Plex de bien la reconnaître.
  5. Dans Custom Args vous allez ajouter plusieurs paramètre dont certain sont recommandé et d’autre optionnel, pour que vous compreniez a quoi sert chaque argument je vais les liste un par un :
    1. -f,,bestvideo[ext=mp4][vcodec!*=av01]+bestaudio[ext=m4a]
      • Evite d’avoir des vidéos en av1 non supporter par Plex
    2. –sleep-interval,,60
      • Attend 60s entre chaque téléchargement (si max-sleep-interval est spécifier il prendre une valeur aléatoire entre les 2)
    3. –max-sleep-interval,,70
      • Temps maximum entre les téléchargement
    4. –user-agent,,Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36
      • Ajout d’un user-agent pour limiter le ban IP
    5. -6
      • Télécharge seulement en IPV6 qui limite le ban IP (attention vérifier que vous avez une IPV6 et si vous utiliser un VPN vérifier que celui-ci en a un aussi sinon les vidéos ne se téléchargeront pas )
    6. –geo-bypass
      • Permet de quand même télécharger les vidéos bloquer dans le pays d’où vous télécharger.
    7. -r,,100M
      • Limite la vitesse de téléchargement (Ex 50K or 4.2M)
    8. -write-sub
      • Télécharge les sous-titre de la vidéo
    9. –sub-lang,,fr,en
      • Ne prend que les sous-titre français et anglais
    10. –restrict-filenames
      • Important, si l’une des playlists a un emoji dans son nom, le plugin plex ne va pas la reconnaitre. Donc cert argument va renommer la playlist sans emoji.
    11. –autonumber-start,,1
      • Permet d’ajouter une variable number qui commence a 1 (qui va servir pour nommer les fichier avec le paramètre autonumber )

Entre chaque arguments que vous coller dans Custom Args il faut ajouter ,, (Ex: –geo-bypass,,-r,,100M,,–write-sub)

Voilà, maintenant vos playlists vont se télécharger automatiquement à chaque fois que vous ajoutez une vidéo dans une de vos playlists ou que vous créer de nouvelles playlists. Je vous conseille de modifier le détail de vérification des playlist toutes les heures dans les paramètres pour éviter que votre IP soit bloqué par YouTube.

Pour ne plus avoir de problème avec votre IP bannie par YouTube, vous trouvez sur mon blog un article sur la connexion de YoutubeDL a un VPN.

Ajout d’une bibliothèque Plex pour les vidéos

Maintenant que vos playlists se télécharge automatiquement, nous allons créer la bibliothèque Plex qui va contenir les vidéos.

  1. Dans Sélectionner le type de votre bibliothèque, vous choisissez Séries TV
  2. Dans Ajouter des dossiers à votre bibliothèque vous sélectionner le répertoire ou sont stocker vos playlists YouTube, attention à bien prendre le dossier playlist que vous avez créez dans Custom name. (Ex: /movies/Videos/YoutubeTest/YoutubeDL/app/subscriptions/playlists/playlist )
  3. Il faut aussi ajouter le dossier channels si vous télécharger toutes les vidéos d’une chaine YouTube.
  4. Dans Avancé, nous allons sélectionner l’agent YoutubeSeries puis vous ajoutez la clé d’api que vous avez créer plus tôt
  5. Dans Saisons vous choisissez Masquer
  6. Optionnel, mais personnellement j’ai cocher désactivé pour les Collections
  7. Cliquer sur Enregistrer les modifications

Pour ceux qui ont télécharger des vidéos avec des sous-titres vous devez aller dans les paramètres de votre serveur Plex, puis dans la partie Agents, de cliquer sur Séries, de choisir YoutubeSeries et de cocher Local Media Assets (TV).

Conclusion

Voilà maintenant vous avez vos playlists YouTube qui sont automatiquement télécharger sur Plex. J’espère que cet article vous aura aidé, faire un tuto pour expliquer tout ça n’aura pas été simple et j’ai passé pas mal d’heures à faire des tests avec YoutubeDL pour vous offrir le tuto le plus complet que je pouvais.

Si vous avez des retours, n’hésitez pas à laisser un petit commentaire, ça fait toujours plaisir ❤

About the author

james adams

Add Comment

Click here to post a comment

Résoudre : *
6 − 1 =