J'utilise Ubuntu 16.04 LTS. Je souhaite télécharger des vidéos YouTube . Je suis venu à connaître l'outil de ligne de commande youtube-dl
de cette question . Comme mentionné par Yasser, en utilisant la commande,
youtube-dl youtube.com/videolink --format mp4
Je suis en mesure de télécharger ces fichiers vidéo au format MP4.
Maintenant, je veux télécharger dix vidéos de différents canaux. J'ai un fichier texte avec les liens YouTube et les noms sous lesquels je veux les enregistrer. Le fichier texte nommé data.txt
ressemble à ceci:
http://youtube.com/link1 name1
http://youtube.com/link2 name2
http://youtube.com/link3 name3
......... ......
......... ......
http://youtube.com/link10 name10
À présent, je souhaite exécuter la commande youtube-dl
une seule fois pour qu'il prenne automatiquement les arguments de ce fichier texte et les enregistre avec les noms requis.
Si je n'ai que les liens dans data.txt
, c'est-à-dire,
http://youtube.com/link1
http://youtube.com/link2
http://youtube.com/link3
.........
.........
http://youtube.com/link10
Je peux télécharger les vidéos en utilisant la commande une seule fois avec l'option -a
,
youtube-dl --format mp4 -a data.txt
Mais je ne pouvais pas les renommer simultanément. De la page man
de youtube-dl
, j'ai découvert qu'il existe une option --output
pour définir le nom du fichier.
Comment pourrais-je faire ça?
Si vous ne renommez que des fichiers parce que vous n'aimez pas le style utilisé par youtube-dl
, vous pouvez utiliser --output
(ou -o
) avec un modèle pour personnaliser le nom. tous les fichiers des métadonnées Youtube.
Par exemple, -o %(title)s.%(ext)s
le fera oublier les identifiants Youtube de tous les noms de fichiers.
Il y a beaucoup d'options, qui peuvent dépendre de votre version de youtube-dl
, donc vous pouvez trouver tous les détails à ce sujet sur le terminal en tapant:
man youtube-dl
/OUTPUT
Toutefois, si vous souhaitez nommer chaque fichier individuellement, vous pouvez exécuter à la place youtube-dl
une fois pour chaque ligne du fichier texte, comme suit:
(while read URL NAME; do [ "$URL" ] && youtube-dl --format mp4 -o "$NAME" "$URL"; done) < data.txt
Pour chaque ligne, divisez-la à la première exécution d'un ou plusieurs onglets et espaces en une URL et un NOM, puis, si la ligne n'est pas vide, transmettez-les à youtube-dl
. Si la ligne ne contient qu'une URL, le fichier ne sera pas renommé.
Votre solution consiste à utiliser le fichier config
. Sous Linux et OS X, le fichier de configuration système est situé à l'emplacement /etc/youtube-dl.conf
et le fichier de configuration utilisateur à l'emplacement ~/.config/youtube-dl/config
. Notez que le fichier de configuration par défaut peut ne pas exister, vous devrez donc peut-être le créer vous-même. Je n'en avais aucun dans mon ~/.config
, alors j'ai dû créer mon fichier de configuration. Vous pouvez y passer tous les arguments que vous utiliseriez habituellement avec la commande inline dans youtube-dl. Le bon cas d'utilisation est l'authentification avec le fichier .netrc
et l'utilisation courante est le format de sortie. Voici un exemple de fichier config
:
#Authentication with .netrc file
--netrc
# Save all videos in a directory named vimeo in your home directory
-o "~/Vimeo/%(title)s %(upload_date)s i%(id)s.%(ext)s"
# Download best format available via direct link over HTTP/HTTPS protocol
-f '(bestvideo+bestaudio/best)[protocol^=http]'
# Simple file name
--restrict-filenames
Vous pouvez utiliser --ignore-config
si vous souhaitez désactiver le fichier de configuration pour une exécution youtube-dl particulière. En substance, tout comme vous utilisez -a
pour passer en mode de téléchargement par lots, vous pouvez utiliser le fichier config
pour renommer par lots vos téléchargements et des tonnes d’autres personnalisations si vous le souhaitez. Tout est documenté avec de jolis exemples sur documentations officielles youtube-dl , lisez spécialement les sections CONFIGURATION & MODÈLE DE SORTIE .