Youtube-dl sert à télécharger des vidéos depuis le terminal. Ça fonctionne comme son nom l’indique avec Youtube mais aussi avec Crunchyroll, Vimeo, Dailymotion, Arte, CNN, bref, un bon gros paquet.
La liste compatible est disponible ici et la documentation complète ici.
Installer Youtube-dl
Sur Raspberry Pi ou n’importe quelle distribution Linux :
On va installer youtube-dl et le placer dans un dossier adapté :
sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl
On donne les droits pour utiliser le programme. Sinon, celui ne sera exécuté qu’en mode super-utilisateur (sudo) ce que nous ne voulons pas.
chmod a+rx /usr/local/bin/youtube-dl
Maintenant faisons un test avec une vidéo choisi au pif.
Choisissez un lien de vidéo en faisant un clique droit et « copier le lien ». Prenons cette vidéo de « C’est ça l’histoire »
youtube-dl -f mp4 --youtube-skip-dash-manifest https://www.youtube.com/watch?v=MPCRIs3Wc1A
Vous voyez donc que la vidéo va être téléchargée.
Une fois la vidéo téléchargée, vous la retrouvez dans le répertoire /home/pi/
Vous pouvez le vérifier en vous rendant dans le répertoire en utilisant la commande « cd ».
cd /home/pi
Puis faite un « ls »
Cette fonction va lister les fichiers présents dans le répertoire.
La vidéo est bien présente.
Faites le test avec VLC, omxplayer, mplayer ou n’importe quel autre lecteur de votre choix.
Maintenant, analysons un peu la ligne de code que nous avons utilisé pour télécharger la vidéo.
« youtube-dl » permet de lancer le programme.
« -f mp4 » nous donne le format voulu de la sortie vidéo.
Il existe beaucoup de format que youtube-dl nous propose. webm (format ouvert) 3gp, aac, flv, m4a, mp3, mp4, ogg, wav, webm
Une liste complète se trouve sur la documentation github des développeurs.
« –youtube-skip-dash-manifest » permet de ne pas télécharger les DASH et d’autres données youtube.
Enfin, on met l’adresse de la vidéo. Privilégiez le https qui vous indique un chiffrement entre vous et la cible. https signifie un protocole http couplé à SSL ce qui, vous assure une certaine confidentialité et sécurité dans vos échanges sur le réseau.
Pour mettre à jour le programme
youtube-dl -U
Simplifions tout ça pour diminuer au maximum la ligne de commande
Nous avons vu que la ligne de commande que nous devons taper est un peu longue. Est-il possible de simplifier tout ça ? Oui.
Pour cela, nous allons créer un fichier de config bien à nous dans un répertoire bien défini.
Rendons nous dans /home/pi/.config et nous allons créer un dossier youtube-dl
cd /home/pi/.config
mkdir youtube-dl
Un simple « ls » et nous voyons que le dossier a bien été créé. Maintenant, rendons nous dans ce dossier et créons notre fichier de configuration personnalisé.
cd youtube-dl
nano config
Une page s’est ouverte, on va voir ce qu’on va écrire dedans.
C’est à dire notre configuration de sortie voulu. Pour reprendre l’exemple d’avant, nous allons enregistrer chaque vidéo au format mp4.
# Format de la video
-f mp4
Le dièse signifie que la ligne ne sera pas lu par youtube-dl. C’est un simple commentaire pour se repérer simplement plus tard quand vous relirez/éditerez votre fichier et pour que les choses soient propres 😉
Maintenant pourquoi ne pas choisir le fichier de destination d’enregistrement des vidéos youtube ?
Pour ma part, je vais choisir le dossier Videos tout simplement.
# Repertoire de la video
-o ~/Videos/%(title)s.%(ext)s
Enfin, nous allons remettre la ligne qui nous permet de ne pas télécharger trop de données depuis youtube
# Youtube garde donc tes data
--youtube-skip-dash-manifest
Et voilà. Un petit Ctrl X pour quitter suivi de « o » pour sauvegarder.
Testons le tout :
youtube-dl https://www.youtube.com/watch?v=o7-d1Mo3kKc
Ça fonctionne parfaitement. Vous pouvez modifier le fichier de conf à votre guise notamment si vous souhaiter télécharger des sous titres. (Voir plus bas)
Si la vidéo est interdite dans mon pays ? (LOOOL)
Rien de plus simple, il faudra passer par un proxy TOR.
sudo apt-get install proxychains tor obfsproxy
Ensuite, la vidéo pourra être téléchargée ainsi :
proxychains youtube-dl https://www.youtube.com/watch?v=Jne9t8sHpUc
Les sous titres !
Tout d’abord, on regarde si des sous titres sont disponibles avec « –list-subs »
Prenons l’exemple d’une vidéo Crunchyroll ici :
youtube-dl --list-subs http://www.crunchyroll.com/gintama/episode-316-farewell-shinsengumi-arc-part-nine-farewell-shinsengumi-690623
On voit que les formats suivant sont disponibles :
Available subtitles for 721807:
Language formats
frFR ass, srt
itIT ass, srt
esLA ass, srt
enUS ass, srt
esES ass, srt
deDE ass, srt
arME ass, srt
ptBR ass, srt
Ici, ce qui nous intéresse sont les sous titres en français, donc « frFR »
on peut télécharger les sous titres au format srt avec la commande :
youtube-dl --write-sub --sub-format srt --sub-lang "frFR" http://www.crunchyroll.com/gintama/episode-316-farewell-shinsengumi-arc-part-nine-farewell-shinsengumi-690623
Un message d’erreur apparait. C’est parce que je n’ai pas le bon format de vidéo. Vous vous souvenez ? On a placé mp4 uniquement en format de sortie désiré.
Cependant si je regarde le format disponible de la vidéo, je vois que c’est uniquement du flv.
Pour ce faire, j’utilise la commande « -F »
youtube-dl -F http://www.crunchyroll.com/gintama/episode-316-farewell-shinsengumi-arc-part-nine-farewell-shinsengumi-690623
C’est bien flv uniquement.
On va donc le noter dans notre ligne de commande :
youtube-dl —f flv --write-sub --sub-format srt --sub-lang "frFR" http://www.crunchyroll.com/gintama/episode-316-farewell-shinsengumi-arc-part-nine-farewell-shinsengumi-690623
Cette fois ci, un autre message d’erreur apparait à propos de RMTP.
rmtpdump ne peut pas être trouvé. Pas de soucis, on va l’installer rapidement avec
sudo apt-get install rmtpdump
On relance :
youtube-dl -f flv --write-sub --sub-format srt --sub-lang "frFR" http://www.crunchyroll.com/gintama/episode-316-farewell-shinsengumi-arc-part-nine-farewell-shinsengumi-690623
Ça fonctionne !
Parce qu’on m’a demandé pour MAC…
Sur MAC :
On commence par installer pip qui est mieux que apt-get au final. (oui je dois refaire un peu le tuto :p)
pip est un meilleur qu’easy_install. Plus puissant, plus souple et plus mieux.
sudo easy_install pip
Ensuite on peut installer youtube-dl avec pip
pip install youtube-dl
En cas de soucis, on peut installer rmtpdump : « pip install rmtpdump »
Le reste est exactement comme sur Raspberry Pi.
Pour plus d’information
Le guide d’utilisation des développeurs (en anglais)
La liste des sites supportés
Le fonctionnement d’SLL par Sebsauvage :
Le travail d’Aeris qui traite de SSL
Et depuis Tor