J'essaie donc de télécharger une chaîne youtube entière en utilisant youtube-dl. Je sais que si vous utilisez la commande -F, vous obtenez une liste des types de qualité des vidéos. Ma question est la suivante : comment télécharger la meilleure qualité de toutes les vidéos pour que le téléchargement ne soit pas par défaut à 460p ou quelque chose de faible comme ça.
Réponses
Trop de publicités?Cette réponse ne fonctionnera pas sur les anciennes versions de youtube-dl. Vous devez mettre à jour youtube-dl à la dernière version. Vous pouvez soit installer la dernière version de youtube-dl localement dans un environnement virtuel Python ( virtualenv ), ou vous pouvez télécharger la dernière version de youtube-dl et l'installer avec pip
( sudo apt remove youtube-dl && sudo apt install python-pip && pip install --user youtube-dl
). youtube-dl est également un package snap. Pour l'installer, tapez :
sudo snap install youtube-dl _\# launch it with snap run youtube-dl_
Ouvrez le terminal et tapez :
youtube-dl -f best -ciw -o "%(title)s.%(ext)s" -v <url-of-channel>
...où <url-of-channel>
est remplacé par l'URL du canal.
Nota: Si vous téléchargez beaucoup de vidéos, vous devez changer de répertoire et choisir celui dans lequel vous souhaitez enregistrer les vidéos avant de commencer à les télécharger.
Explication
-f, --format FORMAT
video format code. The special name "best" will pick the best quality.
-c, --continue
force resume of partially downloaded files
-i, --ignore-errors
continue on download errors, for example to skip unavailable videos in a channel
-w, --no-overwrites
do not overwrite files
-o, --output
Output filename template, this example functions similarly to the old --title option
-v, --verbose
print various debugging information
TL;DR utiliser le -f 'bestvideo[height>=720]+bestaudio/best'
pour obtenir une résolution plus élevée. La commande complète que j'ai utilisée est :
youtube-dl -f "bestvideo[height>=720]+bestaudio/best" -ciw -o "%(title)s.%(ext)s" -v <url-of-channel>
Voici pourquoi -f best
pourrait ne pas vous donner la meilleure résolution.
Lorsque vous utilisez le -F
pour énumérer les formats de fichier possibles, il arrive qu'un format 360p soit considéré comme le "meilleur", par exemple :
youtube-dl -F https://www.youtube.com/watch?v=FmZXCqqx6q0
[youtube] FmZXCqqx6q0: Downloading webpage
[info] Available formats for FmZXCqqx6q0:
format code extension resolution note
249 webm audio only tiny 61k , opus @ 50k (48000Hz), 12.74MiB
250 webm audio only tiny 80k , opus @ 70k (48000Hz), 16.87MiB
140 m4a audio only tiny 132k , m4a_dash container, mp4a.40.2@128k (44100Hz), 31.35MiB
251 webm audio only tiny 158k , opus @160k (48000Hz), 33.34MiB
...
244 webm 854x480 480p 271k , vp9, 30fps, video only, 35.05MiB
398 mp4 1280x720 720p 443k , av01.0.05M.08, 30fps, video only, 102.27MiB
247 webm 1280x720 720p 480k , vp9, 30fps, video only, 63.02MiB
136 mp4 1280x720 720p 489k , avc1.4d401f, 30fps, video only, 114.12MiB
18 mp4 640x360 360p 360k , avc1.42001E, 30fps, mp4a.40.2@ 96k (44100Hz), 87.29MiB (best)
Comme vous pouvez le constater, la dernière option est considérée comme la meilleure malgré sa faible résolution. Il y a plusieurs façons de contourner ce problème, j'ai essayé de télécharger à partir d'une chaîne qui télécharge en 720p, donc la façon la plus simple était d'utiliser la fonction -f 'bestvideo[height>=720]+bestaudio/best'
drapeau.
En fonction de votre situation, vous devrez peut-être jouer avec l'expression du sélecteur de format, en passant de 720 à 1080 ou en sélectionnant un format de fichier spécifique comme le mp4.
Pour voir d'autres exemples de sélecteurs de format
Pour voir la répartition complète des options
Vous devrez installer ffmpeg ou convertir à partir de mkv.