[wiki] Téléchargement de vidéos en ligne

Tags: #<Tag:0x00007fe2606d6128> #<Tag:0x00007fe2606d5c78> #<Tag:0x00007fe2606d5868> #<Tag:0x00007fe2606d5390> #<Tag:0x00007fe2606d4d78>

youtube-dl

Niveau requis: débutant

youtube-dl est une application en ligne de commande permettant le téléchargement de vidéos en streaming. Et bien plus encore …
Il supporte de nombreuses plateformes, entre autre Youtube, ArteTv, FranceTV, Dailymotion dont voici la liste complète: sites supportés.

Installation

Installation classique

Youtube-dl se trouve dans les dépôts de Debian 10 (Buster), pour l’installer:

sudo apt install youtube-dl

La mise à jour s’effectuera par un très classiquement:

sudo apt update
sudo apt upgrade

Solution alternative

Certaines plateformes de vidéos changent régulièrement le codage de leurs pages, nécessitant alors d’avoir la version la plus récente du logiciel; ce que ne propose pas Debian de part son principe de fonctionnement.

Donc, avant d’aller plus loin dans la solution proposée ci-dessous, je vous invite fortement à prendre connaissance des recommandations de Debian: ici .

Installation hors dépôts:

sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl
sudo chmod a+rx /usr/local/bin/youtube-dl

La mise à jour s’effectuera comme ceci:

sudo youtube-dl -U

Configuration

Le fichier de configuration peut-être créé ici pour l’ensemble du système:

/etc/youtube-dl/config

ou pour votre propre compte utilisateur (recommandé), là:

~/.config/youtube-dl/config

La création du fichier se fait à l’aide de votre éditeur de texte préféré, il vous suffit d’y inscrire les options désirées (une par ligne) comme ceci par exemple:

--write-thumbnail
--recode-video avi

ce qui aura pour effet et par défaut de télécharger la miniature et ré-encoder la vidéo en avi.
Vous trouverez la liste complète des options dans le man ( man youtube-dl ).

Utilisation

Utilisation classique

Par défaut, la configuration de youtube-dl permet le téléchargement de la bande vidéo et son de la meilleure qualité proposée par la plateforme. La reprise du téléchargement est aussi assurée par défaut.

Pour lancer le téléchargement, ouvrez un terminal, dirigez-vous vers le dossier où vous désirez enregistrer la vidéo ( par exemple: cd ~/Vidéos/concerts/ ), puis saisissez:

youtube-dl URL

URL étant l’adresse de la page comportant la vidéo en question.

Relancer un téléchargement interrompu

Rendez-vous dans le dossier où le téléchargement à été interrompu et ressaisissez:

youtube-dl URL

Choisir la qualité et le format de la vidéo

Les sites vous proposent parfois différentes qualités de vidéos et bandes sonores, pour les lister il vous suffit de saisir:

youtube-dl -F URL

qui vous donnera par exemple ceci (sur ArteTv):

...
[info] Available formats for 097913-001-A:
format code  extension  resolution note
HLS_XQ_1     m3u8       1280x720   VO, Version originale 2200k 
HTTPS_MQ_1   mp4        384x216    VO, Version originale  300k 
HTTPS_HQ_1   mp4        640x360    VO, Version originale  800k 
HTTPS_EQ_1   mp4        720x406    VO, Version originale 1500k 
HTTPS_SQ_1   mp4        1280x720   VO, Version originale 2200k  (best)

Pour sélectionner celle qui vous convient vous pourrez dans l’exemple précédant choisir (avec f minuscule en option cette fois-ci):

youtube-dl -f HTTPS_HQ_1 URL

Autre exemple, dans le cas de bandes son séparées (sur Youtube):

format code  extension  resolution note

249          webm       audio only tiny   52k , opus @ 50k (48000Hz), 5.65MiB
250          webm       audio only tiny   77k , opus @ 70k (48000Hz), 7.75MiB
140          m4a        audio only tiny  131k , m4a_dash container, mp4a.40.2@128k (44100Hz), 14.67MiB
251          webm       audio only tiny  138k , opus @160k (48000Hz), 13.95MiB
160          mp4        256x144    144p   45k , avc1.4d400c, 30fps, video only, 2.67MiB
133          mp4        426x240    240p   62k , avc1.4d4015, 30fps, video only, 3.39MiB
278          webm       256x144    144p   74k , webm container, vp9, 30fps, video only, 5.83MiB
134          mp4        640x360    360p   94k , avc1.4d401e, 30fps, video only, 5.20MiB
242          webm       426x240    240p  119k , vp9, 30fps, video only, 5.84MiB
135          mp4        854x480    480p  129k , avc1.4d401f, 30fps, video only, 7.09MiB
136          mp4        1280x720   720p  190k , avc1.4d401f, 30fps, video only, 11.30MiB
243          webm       640x360    360p  191k , vp9, 30fps, video only, 8.68MiB
244          webm       854x480    480p  259k , vp9, 30fps, video only, 11.62MiB
247          webm       1280x720   720p  381k , vp9, 30fps, video only, 18.18MiB
137          mp4        1920x1080  1080p  525k , avc1.640028, 30fps, video only, 33.23MiB
248          webm       1920x1080  1080p  681k , vp9, 30fps, video only, 42.08MiB
22           mp4        1280x720   720p  228k , avc1.64001F, 30fps, mp4a.40.2@192k (44100Hz)
18           mp4        640x360    360p  329k , avc1.42001E, 30fps, mp4a.40.2@ 96k (44100Hz), 37.37MiB (best)

Dans ce cas vous avez le choix entre vidéo et/ou son, par exemple:

youtube-dl -f 244+140 URL

permet d’obtenir la vidéo au format webm en 854x480 avec une bande son m4a.

Vous l’aurez compris c’est format code qui nous intéresse ici.

Ne conserver que la bande audio

Vous pouvez si le site le permet, ne télécharger que la bande son proposée avec l’option -f (voir chapitre précédent), ou sinon, extraire celle-ci de la vidéo, comme ceci:

youtube-dl -x URL

le fichier audio obtenu sera celui du format de meilleure qualité.

youtube-dl -x --audio-format mp3 URL

permet de choisir le format de sortie préféré, ici mp3 (format disponibles: aac, vorbis, mp3, m4a, opus et wav).

Récupérer les sous-titres et/ou traductions

  1. Commencer par obtenir la liste des sous-titres disponibles:

    youtube-dl --list-subs URL
    

vous donne quelque chose comme ceci:

...
[youtube] Jn7VcOU3x2g: Looking for automatic captions
Available automatic captions for Jn7VcOU3x2g:
Language formats
el       vtt, ttml, srv3, srv2, srv1
eo       vtt, ttml, srv3, srv2, srv1
en       vtt, ttml, srv3, srv2, srv1
eu       vtt, ttml, srv3, srv2, srv1
et       vtt, ttml, srv3, srv2, srv1
es       vtt, ttml, srv3, srv2, srv1
fr       vtt, ttml, srv3, srv2, srv1
ru       vtt, ttml, srv3, srv2, srv1
Available subtitles for Jn7VcOU3x2g:
Language formats
en-US    vtt, ttml, srv3, srv2, srv1

On voit ici deux types de sous-titres, automatic captions qui est une traduction à la volée propre à Youtube et subtitle qui nous indique la présence d’un fichier de sous-titres, ici anglo-américain.

  1. Récupérer la vidéo et le fichier de sous-titres existant:

    youtube-dl --write-sub --sub-lang  'en-US' URL
    
  2. Récupérer la vidéo et une traduction à la volée (Youtube uniquement):

    youtube-dl --write-auto-sub --sub-lang 'fr' URL
    

Dans les deux cas vous obtiendrez avec votre vidéo un fichier de type nom-de-la-vidéo.vtt, celui-ci est à indiquer à votre lecteur préféré, il est de plus facilement modifiable à l’aide de votre éditeur de texte.

Liste de téléchargement (playlist)

youtube-dl -a URL

URL étant ici l’adresse de la playlist.

youtube-dl -a ./liste

liste étant ici le nom de votre propre liste de téléchargement (un simple fichier texte sur votre pc), une seule règle à respecter: un lien de vidéo par ligne. Idéal pour partager facilement ses propres playlist.

Documentation

1 J'aime

Salut,

un wiki sur le téléchargement de vidéos en streaming avec l’excellent Youtube-dl.
Le wiki est ouvert, je vous invite donc si vous le désirez à y participer (voir corriger).

Quelques suggestions cependant (mais faites comme vous voulez, c’est libre -:wink: ):

  • Wiki destiné aux débutants avant tout, soyons clair et concis, même si on ne va pas réinventer l’eau chaude en réexpliquant ce qu’est un terminal, un format audio/vidéo etc…
    Au besoin, amis néophytes servez-vous de la discussion qui suit pour demander précision.

  • Privilégions le langage encyclopédique, à savoir le plus neutre possible. On sait comment les remarques de type humoristique, « privates-jokes » et autres peuvent parfois être mal comprises voire destructrices pour la compréhension des débutants.

  • Évitons de trop surcharger le wiki par des commandes trop spécifiques, le but ici n’est pas de se substituer au manuel (par ailleurs excellent). Les choix fait sont issus d’une utilisation personnelle et courante, même si j’ai pu passer à coté d’autres (n’hésitez pas !).

  • Cependant, il pourrait-être intéressante de créer un paragraphe « Autres exemples », qui comporterait
    des commandes qui même si elles ne sont pas courantes serait « difficiles » à trouver ou pouvant résoudre un problème …

  • Enfin, le plus difficile à détecter pour nous, les anglicismes, jargons trop typés et autres néologismes sont à éviter si possible, pensons encore aux débutants.

J’espère n’être pas trop exigeant, encore une fois c’est vous qui voyez. :wink:

Bonne participation.

ps: histoire de respecter la mise en forme : réalisé en markdown avec vim (ça c’est un détail).

Bonjour,

merci pour le wiki, je suis également utilisateur de youtube-dl.
J’ajouterais volontiers une méthode d’installation alternative:

Installation via pip

Pourquoi ?

Le fonctionnement technique de youtube évolue parfois très rapidement, ce qui peut perturber le fonctionnement d’outils comme youtube-dl. Heureusement pour nous, youtube-dl est fréquemment mis à jour pour s’adapter à ces changements. Malheureusement, les nouvelles versions mettent du temps avant d’arriver dans les dépôts Debian (la dernière version du paquet youtube-dl ne reflète donc pas nécessairement la dernière version du logiciel upstream).
youtube-dl étant écrit dans le langage Python, nous allons utiliser pip pour l’installer (pip est un gestionnaire de paquets python, une sorte d’équivalent à apt-get pour les logiciels en Python).
TL;DR : L’installation via pip permet d’obtenir plus rapidement les mises à jour de youtube-dl, ce qui permet bien souvent de résoudre des erreurs techniques de téléchargement.

Comment ?

  1. Commençons par installer pip lui-même. sudo apt install python3-pip s’en chargera, tout en installant python3 s’il n’est pas déjà présent.
  2. Installation de youtube-dl: il suffit d’exécuter sudo pip3 install youtube-dl
    L’utilisation de youtube-dl est identique quelle que soit la méthode d’installation.

Mise à jour

Pour mettre à jour youtube-dl, il faudra exécuter sudo pip3 install -U youtube-dl

2 J'aimes

Salut Sputnik93,
merci de ta participation, je connaissais la procédure passant par python, penses-tu que la solution que tu proposes est préférable à « ma » solution alternative ( ça n’est pas la mienne, mais celle du site officiel)?
Auquel cas, il n’est peut être pas utile que l’on conserve cette dernière (trop de choix, nuit au choix). Je ne suis pas assez calé pour répondre.
Je te laisses prendre la décision, je préférerais qu’on en propose qu’une histoire de ne pas faire peur au débutants qui ne sauront pas choisir.

Merci encore.

ps: upstream ? je fais plus ou moins parti des débutants moi aussi. Attention au dernier point évoqué dans mon message de présentation :wink: . Rien d’autre à dire sur la rédaction, c’est parfait.

salut
j’utilise la « solution alternative » sans aucun problème .
j’ai simplement ajouté une tâche au calendrier hebdomadaire pour la mise à jour

/etc/cron.weekly$ cat youtube-dl
#! /bin/bash

set -e

/usr/local/bin/youtube-dl -U

j’ai ainsi un mail de résultat


/etc/cron.weekly/youtube-dl:
Updating to version 2020.06.16.1 ...
Updated youtube-dl. Restart youtube-dl to use the new version.

:sunglasses:

j(utilise le paramètre suivant pour que le fichier soit téléchargé avec la date du jour et non pas la date de la mise en ligne sur youtube.

/etc/youtube-dl.conf
--no-mtime

Salut grandtoulab,
merci de ta participation. Qu’est-ce que tu penses de la solution qui passe par pip ? Doit-on la privilégier?
En attendant qu’on prennes une décision, je repositionne la mise en garde Debian de la solution alternative dans le bon chapitre. C’est plus cohérent .

…pas compris ce passage, ni d’ailleurs cette histoire de calendrier hebdomadaire.

Tu veux dire que tu reçois chaque semaine un mail qui d’indique si il y a une mise à jour de Youtube-dl?
Je ne sais pas si c’est vraiment utile, mais j’ai appris quelque chose, merci. :slight_smile:
Pour ma part je ne fais généralement une mise à jour de youtube-dl que quand j’ai un problème.

Anacron permets de gérer des tâches automatiquement lancées périodiquement: quotidiennement, hebdomadairement ou mensuellement.
C’est anacron qui envoie un mail de résultat
voir mon petit billet à ce sujet

Ok, merci. il est temps que je m’intéresse aux taches planifiées, je vais jeter un œil.
Tu pourrais le rajouter à la suite dans le chapitre en « spoiler » en l"intitulant astuce. Qu’est-ce que t’en pense?

Par contre je n’ai toujours pas compris ceci:

De quel fichier sur Youtube parles-tu, de la mise à jour d’une vidéo?

edit: Ok, je crois que j’ai compris, c’est une faute de frappe, tu parles du fichier binaire youtube-dl, c’est ça?

je parle de l’horodatage du fichier, vidéo ou son, téléchargé.
Exemple

~/Vidéos$ youtube-dl -f best https://www.youtube.com/watch?v=Ny1CSQwzMgk
[youtube] Ny1CSQwzMgk: Downloading webpage
[download] Destination: Amour tardif - La Minute Vieille - ARTE-Ny1CSQwzMgk.mp4
[download] 100% of 8.88MiB in 00:07

horodatage du fichier

juil.  1 12:24 'Amour tardif - La Minute Vieille - ARTE-Ny1CSQwzMgk.mp4'

NB
Sur youtube-dl tout est dit ici

Salut grandtoutab,

ok, c’est de ma faute, j’ étais toujours dans la config de cron, quand j’ai lu la seconde partie de ton message :grimacing: Tu pourrais le mettre dans l’exemple du fichier de config du wiki.