Automatiser Youtube-dl pour télécharger auto des mp3

Automatiser le dl de mp3 des vidéos "A regarder plus tard" dans Youtube

a marqué ce sujet comme résolu.

L'idée

J'ai découvert grace à Korben le soft Youtube-dl qui permet de simplement télécharger (en ligne de commande ou avec une interface visuelle) une vidéo Youtube ou juste sa bande son . J'ai voulu automatiser tout cela avec différents outils .

Fonctionnement

Dépendances logicielles

Pour faire fonctionner tout ça j'utilise plusieurs choses :

Etape 1 : Créer une "recette" IFTT

La première étape est de créer une "recette" IFTT qui va faire une chose simple :

  • Si je clique sur "A regarder plus tard" sur Youtube –> Rajoute l'URL de la vidéo dans un fichier dl.txt sur ma dropbox

Pour cela il faut autoriser IFTT à accéder à votre compte Youtube + votre compte Dropbox. Pas de panique il va vous simplifier la tâche en vous proposant au bon moment de le faire .

Etape 2 : Installer les dépendances nécessaires

Pour cela rien de plus simple je vous renvoi vers les pages correspondantes pour youtube-dl et FFMPEG (qui va nous servir pour obtenir des mp3)

  1. Installation youtube-dl
  2. Installation FFMPEG (Windows)
  3. Installation FFMPEG (Ubuntu)

Personnellement sur Windows l’exécutable n'a jamais fonctionné pour youtube-dl et j'ai donc utilisé le "pip install youtube-dl" dans python comme expliqué sur leur Github

Script Python pour rendre ça automatique

Pour automatiser tout cela j'ai utilisé un script Python simple :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
from __future__ import unicode_literals
import youtube_dl

#Ouverture du fichier d'URL de la dropbox
fichier = open("dl.txt", "r")

#Comptage nombre de ligne
nbLine = 0
for line in fichier:
    nbLine  += 1
    print (nbLine)

#Lecture fichier pour recup URL + DL
fichier.seek(0)
while nbLine > 0:
    url = fichier.readline()
    ydl_opts = {
    'format': 'bestaudio/best',
    'postprocessors': [{
        'key': 'FFmpegExtractAudio',
        'preferredcodec': 'mp3',
        'preferredquality': '192',
    }],
    'quiet': True,
    'restrictfilenames': True}

    with youtube_dl.YoutubeDL(ydl_opts) as ydl:
        ydl.download([url])
    nbLine -=1
fichier.close()

#ré-ouverture en ecriture pour ecraser le contenu
fichier = open("dl.txt", "w")
fichier.close()

Une fois que vous avez crée votre script pensez à l'enregistrer dans le même dossier que le dl.txt (donc normalement dans le dossier IFTT/"nom que vous avez donné" de votre Dropbox

Créer une tache planifiée

Maintenant il ne vous reste plus qu'a créer une tâche planifié de votre choix dans votre OS qui exécutera simplement le script a un moment donné (j'ai personnellement mis le script tous les jours a 23h59) pour qu'il aille télécharger les nouveaux morceaux choisis et vider la liste (pour ne pas télécharger en double)

Voilà voilà vous avez terminé et pouvez profiter de vos mp3 tranquillement (attention à utiliser seulement sur des vidéos avec une bande son libre de droits ! :pirate:

Banni

Je me permets de proposer une version OS X de la chose, puisque ça n'a pas été évoqué (même si le principe proposé d'origine est facilement adaptable à OS X, qui est un Unix avec Python pré-installé). Ma proposition ne nécessite pas d'avoir un compte Youtube (la fonction « À regarder plus tard » utilisée précédemment le nécessite), ni IFTT, ni même Dropbox puisque l'enregistrement sera fait directement sur l'ordinateur. De plus, la conversion sera faite immédiatement, plutôt qu'à 23h59 chaque soir le cas échéant.

L'étape 1 sera longuement détaillée, mais le reste est plus rapide que le script python.

Étape 1 : installation des outils en ligne de commande

Il s'agit d'installer youtube-dl et ffmpeg. Le site consacré à youtube-dl indique comment l'installer sur OS X, mais comme il convient d'y rajouter l'installation de ffmpeg, on va passer par MacPorts, qui permet d'installer plein d'outils et leurs dépendances.

On installe Xcode, qui fournit les outils de compilation

  • Télécharger Xcode sur le Mac App Store (gratuit). Si vous avez un OS X un peu ancien, d'anciennes versions d'Xcode sont disponibles sur https://developer.apple.com
  • Après que Xcode soit téléchargé et installé, tapez xcode-select --install dans le Terminal ; une fenêtre s'affiche pour télécharger des outils supplémentaires. Acceptez.
  • Une fois le téléchargement fait, tapez sudo xcodebuild -license dans le Terminal. Un texte de licence s'affiche, tapez agree puis Entrée.

On installe MacPorts

La page https://www.macports.org/install.php donne les liens de téléchargement (cela correspond au point 3 de la section Quickstart).

Double-cliquez sur le fichier .pkg téléchargé pour procéder à l'installation de MacPorts.

On installe youtube-dl

Après avoir installé MacPorts, ouvrez une nouvelle fenêtre de Terminal et tapez sudo port install youtube-dl. Votre mot de passe de compte OS X administrateur sera demandé (par sécurité, au fur et à mesure que vous entrerez les caractères, ils ne seront pas affichés ; finissez par la touche Entrée).

En fait, en même temps que youtube-dl, ffmpeg sera automatiquement installé (comme dépendance de youtube-dl).

Cela prendra quelques minutes, le temps que les éléments soient téléchargés et compilés. C'est fini lorsque vous voyez la ligne ---> No broken files found. et que vous avez à nouveau la main.

Les binaires installés se trouvent en /opt/local/bin/.

Étape 2 : création du dossier recevant les MP3

Créez dans votre dossier utilisateur (dans le Finder, accessible par exemple par le menu Aller > Départ) un dossier nommé « MP3 ».

Étape 3 : création du service OS X

Lancez le logiciel Automator (situé dans le dossier Applications). Choisissez le type de document « Service ».

Par défaut, le réglage est sur : Le service reçoit la sélection « texte » dans « N'importe quelle application ». Changez en : Le service reçoit la sélection « contenu web » dans « Safari.app ».

  • dans la bibliothèque des actions, choisissez dans la section Internet « Get Current Webpage from Safari » (probablement en raison d'un bug, les actions sont écrites en anglais) et faites glisser sur la zone de droite (il s'affiche « Obtenir la page Web actuelle de Safari »). Cela fournira l'URL de la page actuelle de Safari.

  • dans la bibliothèque des actions, choisissez dans la section Utilitaires « Run AppleScript » et faites-la glisser à droite sous l'action précédente.

  • Entrez le code suivant, en remplacement du code par défaut :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
on run {input, parameters}
    set adresse to first item of input
    if adresse begins with "https://www.youtube.com/watch?v=" then
        do shell script "export PATH=/opt/local/bin;cd ~/MP3;youtube-dl -f bestaudio/best --extract-audio --audio-format mp3 --audio-quality 192K --quiet --restrict-filenames " & adresse
        display notification "Le fichier audio a été créé."
    else
        display dialog "Vous n'êtes pas sur une page Youtube ! Aucune vidéo ne sera convertie en .mp3, désolé." with icon caution buttons {"OK"} default button 1
    end if
    return input
end run

Remarques :

  • display notification n'est disponible qu'à partir d'OS X 10.9. Remplacez par display dialog pour les systèmes plus anciens.

  • si vous avez choisi un autre nom de dossier que « MP3 », il faudra modifier le chemin dans le script en conséquence (cd ~/MP3;).

  • la commande do shell script ne connait pas par défaut les binaires installés en /opt. C'est pourquoi on indique : export PATH=/opt/local/bin;.

Lorsque vous entrez le code, il sera affiché en violet, sans coloration syntaxique. Appuyer sur le bouton représentant un marteau dans l'action « Exécuter un script AppleScript » colorisera le code ou indiquera la présence d'une erreur.

Allez dans le menu Fichier > Enregistrer… et choisissez par exemple le nom « Youtube-mp3 ». L'élément de service sera enregistré dans ~/Library/Services (~ étant le dossier utilisateur courant).

Utilisation

Sur une page web de vidéo de Youtube (pas une vidéo intégrée sur une autre page que Youtube), faites un clic droit sur un élément textuel de la page, et choisissez Services > Youtube-mp3. Une notification apparaitra au bout de quelques secondes, lorsque la vidéo de la page aura été convertie en .mp3. Si vous n'êtes pas sur la page d'une vidéo de Youtube, un message vous indiquera qu'aucune conversion ne sera faite.

+0 -0

Merci de 'info complémentaire mais le service que tu propose c'est youtube-dl oO le concept du mien c'est justement que quel que soit l'endroit ou je suis et le "device" sur lequel je suis si j'aime une vidéo elle est téléchargé chez toi ;)

Merci quand même pour les utilisateurs MAc OS :)

Je suis désolé de rouvrir le sujet, mais je suis tombé dessus en cherchant quelque chose de similaire.

Et du coup, je voulais savoir en quoi la commande suivante seule (lancée à intervalle régulier, via une tâche planifiée) ne suffisait pas :

1
youtube-dl -x ":ytwatchlater" -u "username" -p "password" -o "/chemin/vers/le/fichier/%(title)s.%(ext)s" -f "bestaudio" --mark-watched

Cela implique également d’avoir ffmpeg et youtube-dl installés, ainsi qu’un compte Google.

J’écris cela en considérant qu’au moins un des points suivants est vrai :

  • une vidéo considérée comme vue (--mark-watched) est supprimée de la playlist à regarder plus tard par YouTube, du coup ça ne risque pas de télécharger deux fois (je ne connais pas ce fonctionnement de YouTube, n’ayant pas de compte).
  • tu conserves tous les fichiers téléchargés, étant donné que youtube-dl ne re-télécharge pas les fichiers déjà présents.

Si ça peut aider d’autres personnes tombant sur ce sujet, ou si ça peut t’aider, alors tant mieux ^^ .

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte