Comment télécharger des vidéos sur youtube en qualité audio mp3 en utilisant youtube-dl [dupliquer]

39

Je souhaite télécharger des vidéos YouTube sous forme de fichiers MP3 de la meilleure qualité possible. Le code ci-dessous permet de télécharger des vidéos YouTube en m4a mais pas nous mp3

youtube-dl -f bestaudio --audio-quality 0 --audio-format mp3 https://www.youtube.com/playlist?list=PLYRruMbyFRcBVdVN8v4FNkIKkXvL-bZn_

pouvez-vous me dire comment utiliser le paramètre bestaudio pour télécharger la vidéo YouTube en tant que mp3

    
posée Eka 10.06.2015 - 11:37
la source

4 réponses

57

De man youtube-dl :

-x, --extract-audio                  Convert video files to audio-only files (requires ffmpeg or avconv and ffprobe or avprobe)
    --audio-format FORMAT            Specify audio format: "best", "aac", "vorbis", "mp3", "m4a", "opus", or "wav"; "best" by default
    --audio-quality QUALITY          Specify ffmpeg/avconv audio quality, insert a value between 0 (better) and 9 (worse) for VBR or a specific bitrate like 128K (default

Votre commande pourrait donc être:

youtube-dl -f bestaudio --extract-audio --audio-format mp3 --audio-quality 0 <Video-URL>

Le --audio-quality 0 utilise la qualité d'encodage la plus élevée mais peut augmenter inutilement la taille de votre fichier. La valeur par défaut est 5 et peut être un meilleur choix en fonction de la qualité de la source.

Donc, si la qualité et la taille des fichiers comptent pour vous, vous devez éviter de réencoder et de conserver les formats musicaux natifs de Youtube:

youtube-dl -f bestaudio[ext=m4a] --embed-thumbnail --add-metadata <Video-URL>

résultant en un fichier m4a ou

youtube-dl -f bestaudio --extract-audio --embed-thumbnail --add-metadata <Video-URL>

résultant probablement en un fichier ogg .

Vous pouvez lister le format disponible avec

youtube-dl -F <Video-URL>
    
réponse donnée Maythux 10.06.2015 - 13:33
la source
8

Je recommande d'utiliser Pafy (Python), très facile d'obtenir un lien audio, et vous pouvez télécharger directement si vous voulez:

#python3
import pafy
video = pafy.new('video id or video url')
bestaudio = video.getbestaudio()
bestaudio.bitrate #get bit rate
bestaudio.extension #extension of audio fileurl
...
bestaudio.url #get url
...
#download if you want
bestaudio.download()
    
réponse donnée Khang .NT 22.03.2016 - 03:04
la source
6

Si vous ne voulez que le fichier mp3:

youtube-dl -f bestaudio  "https://www.youtube.com/playlist?list=PLYRruMbyFRcBVdVN8v4FNkIKkXvL-bZn_" --exec "ffmpeg -i {}  -codec:a libmp3lame -qscale:a 0 {}.mp3 && rm {} "

Si vous ne souhaitez pas supprimer le fichier d'origine:

youtube-dl -f bestaudio  "https://www.youtube.com/playlist?list=PLYRruMbyFRcBVdVN8v4FNkIKkXvL-bZn_" --exec "ffmpeg -i {}  -codec:a libmp3lame -qscale:a 0 {}.mp3 "
    
réponse donnée Luis Gneiting 02.10.2016 - 18:43
la source
5

Il est également utile de noter les autres éléments de man youtube-dl (une copie en ligne peut être trouvée ici ):

(Pour ceux qui pensent TL; DR, lisez simplement le 4ème paragraphe, et vous pouvez utiliser youtube-dl -x URL car il devrait de toute façon télécharger la meilleure qualité:)

Aussi, youtube-dl -f bestaudio URL travaille dans mon expérience! Cependant, avec ces deux options, la plupart du temps, vous devrez convertir en MP3 en utilisant ffmpeg ou similaire - puisque vous êtes déjà en éditant le fichier, vous pouvez également le marquer (utilisez l’ancienne version ID3 pour la plupart des appareils compatibles!).

  

SELECTION DU FORMAT

     

Par défaut, youtube-dl essaie de télécharger la meilleure qualité, mais parfois vous pouvez télécharger un autre format. Le cas le plus simple demande un format spécifique, par exemple -f 22 . Vous pouvez obtenir la liste des formats disponibles en utilisant --list-formats , vous pouvez également utiliser une extension de fichier (actuellement compatible aac, m4a, mp3, mp4, ogg, wav, webm) ou les meilleurs noms, bestvideo, bestaudio et pire.

     

Si vous souhaitez télécharger plusieurs vidéos sans disposer des mêmes formats, vous pouvez spécifier l'ordre de préférence à l'aide de barres obliques, comme -f 22/17/18 . Vous pouvez également filtrer les résultats de la vidéo en mettant une condition entre parenthèses, comme dans -f "best[height=720]" (ou -f "[filesize>10M]" ). Cela fonctionne pour taille de fichier, hauteur, largeur, tbr, abr, vbr, asr et fps et les comparaisons & lt ;, lt; =, & gt ;, & gt; =, =,! = Et pour ext, codec, vcodec, conteneur, et protocole et les comparaisons =,! =. Les formats pour lesquels la valeur n'est pas connue sont exclus sauf si vous mettez un point d'interrogation (?) Après l'opérateur. Vous pouvez combiner des filtres de format afin que -f "[height <=? 720][tbr>500]" sélectionne des vidéos de 720p (ou des vidéos dont la hauteur n'est pas connue) avec un débit d'au moins 500 kbits / s.

     

Utilisez des virgules pour télécharger plusieurs formats, tels que -f 136/137/mp4/bestvideo,140/m4a/bestaudio. Vous pouvez fusionner la vidéo et   audio de deux formats en un seul          fichier utilisant -f <video-format>+<audio-format> (nécessite ffmpeg ou avconv), par exemple -f bestvideo+bestaudio.

     

Depuis fin avril 2015 et la version 2015.04.26, youtube-dl utilise -f bestvideo+bestaudio/best comme sélection de format par défaut (voir # 5447, # 5456). Si ffmpeg ou avconv sont installés, cela se traduit par le téléchargement de bestvideo et bestaudio séparément et leur fusion en un seul fichier offrant la meilleure qualité globale disponible. Dans le cas contraire, le résultat est meilleur et le téléchargement de la meilleure qualité disponible est fourni sous la forme d'un fichier unique. Le mieux est également nécessaire pour les vidéos qui ne proviennent pas de YouTube, car elles ne fournissent pas l'audio et la vidéo dans deux fichiers différents. Si vous souhaitez uniquement télécharger certains formats de tableau de bord (par exemple, si vous ne souhaitez pas obtenir des vidéos d'une résolution supérieure à 1080p), vous pouvez ajouter -f bestvideo[height<=?1080]+bestaudio/best à votre fichier de configuration. Notez que si vous utilisez youtube-dl pour diffuser sur stdout (et le plus susceptible de le rediriger vers votre lecteur multimédia alors), c'est-à-dire que vous spécifiez explicitement le modèle de sortie -o - , youtube-dl utilise toujours la sélection -f best Lancez la diffusion du contenu immédiatement sur votre lecteur et ne pas attendre le téléchargement et le multiplexage de bestvideo et bestaudio.

     

Si vous souhaitez conserver l’ancien comportement de la sélection de format (avant YouTube-dl 2015.04.26), c’est-à-dire que vous souhaitez télécharger au mieux   Les médias de qualité disponibles étant un fichier unique, vous devez spécifier explicitement votre choix avec -f best . Vous voudrez peut-être l'ajouter au fichier de configuration (#configuration) afin de ne pas le taper chaque fois que vous exécutez youtube-dl.

     

...

     

Pouvez-vous, s'il vous plaît, remettre l'option -b?

     

La plupart des utilisateurs de cette question ne sont pas conscients du fait que YouTube-dl télécharge désormais par défaut la meilleure qualité disponible signalée par YouTube, qui sera dans certains cas 1080p ou 720p, vous n'avez donc plus besoin de l'option -b. Pour certaines vidéos spécifiques, peut-être que YouTube ne les signale pas comme étant disponibles dans un format spécifique de haute qualité qui vous intéresse. Dans ce cas, il vous suffit de le demander avec l'option -f et youtube-dl tentera de le télécharger.

Youtube (probablement comme supposé être un site de lecture vidéo) compresse aussi apparemment l’audio (voir ici ) jusqu'à 120 ~ Ko, ce qui est assez faible mais semble pour la plupart OK.

Pour comparer les vidéos téléchargées, vous pouvez interroger les pistes vidéo / audio téléchargées (vous devrez peut-être utiliser avprobe au lieu de ffprobe ) pour voir lequel est le meilleur:

$ ffprobe -hide_banner output-output-loads-of-options.webm
Input #0, matroska,webm, from 'output-output-loads-of-options.webm':
  Metadata:
    encoder         : google
  Duration: 00:04:02.63, start: 0.000000, bitrate: 118 kb/s
    Stream #0:0(eng): Audio: vorbis, 44100 Hz, stereo, fltp (default)
$ ffprobe -hide_banner output_with_just_-x.ogg 

Input #0, ogg, from 'output_with_just_-x':
  Duration: 00:04:02.65, start: 0.000000, bitrate: 117 kb/s
    Stream #0:0(eng): Audio: vorbis, 44100 Hz, stereo, fltp, 128 kb/s
    Metadata:
      LANGUAGE        : eng
      ENCODER         : Lavf56.4.101
    
réponse donnée Wilf 10.06.2015 - 14:35
la source

Lire d'autres questions sur les étiquettes