AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 634584
Accepted
Eka
Eka
Asked: 2015-06-11 01:37:38 +0800 CST2015-06-11 01:37:38 +0800 CST 2015-06-11 01:37:38 +0800 CST

如何使用 youtube-dl 下载 youtube 视频作为最佳质量的音频 mp3 [重复]

  • 772
这个问题在这里已经有了答案:
如何从 YouTube 视频下载 MP3 曲目 (7 个回答)
5 年前关闭。

我想以最佳质量将 YouTube 视频下载为 mp3 文件。下面的代码有助于下载 youtube 视频,m4a而不是我们mp3

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

你能告诉我如何使用bestaudio参数将 YouTube 视频下载为mp3

sound
  • 4 4 个回答
  • 248201 Views

4 个回答

  • Voted
  1. Best Answer
    Maythux
    2015-06-11T03:33:21+08:002015-06-11T03:33:21+08:00

    来自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
    

    所以你的命令可能是:

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

    使用--audio-quality 0最高的编码质量,但会不必要地增加文件大小。默认值为 5,根据源质量可能是更好的选择。

    因此,如果质量和文件大小对您很重要,您应该避免重新编码并使用 Youtube 的原生音乐格式:

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

    导致m4a文件或

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

    可能会产生一个ogg文件。

    您可以列出可用的格式

    youtube-dl -F <Video-URL>
    
    • 127
  2. Luis Gneiting
    2016-10-03T08:43:07+08:002016-10-03T08:43:07+08:00

    如果你只想要 mp3 文件:

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

    如果您不想删除原始文件:

    youtube-dl -f bestaudio  "https://www.youtube.com/playlist?list=PLYRruMbyFRcBVdVN8v4FNkIKkXvL-bZn_" --exec "ffmpeg -i {}  -codec:a libmp3lame -qscale:a 0 {}.mp3 "
    
    • 15
  3. Khang .NT
    2016-03-22T18:04:19+08:002016-03-22T18:04:19+08:00

    我推荐使用Pafy(Python),非常容易获得音频链接,如果需要可以直接下载:

    • https://pypi.python.org/pypi/pafy
    • http://pythonhosted.org/pafy/
    #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()
    
    • 8
  4. Wilf
    2015-06-11T04:35:43+08:002015-06-11T04:35:43+08:00

    还值得注意的是其他部分man youtube-dl(在线副本可在此处找到):

    (对于那些想 TL; DR 的人,只需阅读第 4 段,您就可以使用youtube-dl -x URL它,因为无论如何它应该下载最好的质量 :)

    也youtube-dl -f bestaudio URL适用于我的经验!然而,大多数情况下,使用这两个选项时,您将需要使用ffmpeg或类似方法转换为 MP3 - 因为您已经在编辑文件,您还可以标记它(使用旧的 ID3 版本以获得大多数设备兼容性!)。

    格式选择

    默认情况下 youtube-dl 尝试下载最好的质量,但有时您可能想下载其他格式。最简单的情况是请求特定格式,例如-f 22. 您可以使用 获取可用格式的列表--list-formats,您还可以使用文件扩展名(目前它支持 aac、m4a、mp3、mp4、ogg、wav、webm)或特殊名称 best、bestvideo、bestaudio 和 worst。

    如果您想下载多个视频并且它们没有可用的相同格式,您可以使用斜线指定偏好顺序,如-f 22/17/18. 您还可以通过将条件放在方括号中来过滤视频结果,如-f "best[height=720]"(或-f "[filesize>10M]")。这适用于文件大小、高度、宽度、tbr、abr、vbr、asr 和 fps 以及比较 <、<=、>、>=、=、!= 和 ext、编解码器、vcodec、容器和协议以及比较 =, != 。除非您在运算符后加上问号 (?),否则将排除值未知的格式。您可以组合格式过滤器,因此 -f "[height <=? 720][tbr>500]"选择比特率至少为 500 KBit/s 的高达 720p 的视频(或高度未知的视频)。

    使用逗号下载多种格式,例如-f 136/137/mp4/bestvideo,140/m4a/bestaudio. 可以使用(需要ffmpeg或avconv)将两种格式的视频和音频合并成一个文件-f <video-format>+<audio-format>,例如-f bestvideo+bestaudio.

    自 2015 年 4 月末和版本 2015.04.26 以来,youtube-dl-f bestvideo+bestaudio/best用作默认格式选择(参见#5447、#5456)。如果安装了 ffmpeg 或 avconv,这将导致单独下载 bestvideo 和 bestaudio,并将它们混合到一个文件中,从而提供最佳的整体质量。否则它会回退到最佳并导致下载作为单个文件提供的最佳可用质量。不是来自 YouTube 的视频也需要 best,因为它们不在两个不同的文件中提供音频和视频。如果您只想下载一些破折号格式(例如,如果您对获取分辨率高于 1080p 的视频不感兴趣),您可以添加-f bestvideo[height<=?1080]+bestaudio/best到你的配置文件。请注意,如果您使用 youtube-dl 流式传输到标准输出(然后很可能将其通过管道传输到您的媒体播放器),即您将输出模板明确指定为 -o -,youtube-dl 仍使用-f best格式选择以便立即开始向您的内容传送播放器,而不是等到 bestvideo 和 bestaudio 下载并混合后。

    如果您想保留旧的格式选择行为(在 youtube-dl 2015.04.26 之前),即您想要下载质量最好的媒体作为单个文件,您应该明确指定您的选择-f best。您可能希望将它添加到配置文件 (#configuration),以免每次运行 youtube-dl 时都输入它。

    ...

    你能把 -b 选项放回去吗?

    大多数问这个问题的人都不知道 youtube-dl 现在默认下载 YouTube 报告的最高可用质量,在某些情况下为 1080p 或 720p,因此您不再需要 -b 选项。对于某些特定的视频,YouTube 可能不会报告它们以您感兴趣的特定高质量格式提供。在这种情况下,只需使用-f选项请求它,youtube-dl 就会尝试下载它。

    Youtube(可能因为它应该是一个视频播放网站)显然也将音频(见此处)压缩到 120~KBs,这是相当低的,但在大多数情况下似乎还可以。

    比较下载的视频,可以查询下载的视频/音轨(可能需要用avprobe代替ffprobe)看哪个最好:

    $ 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
    
    • 5

相关问题

  • 从网络广播录制声音

  • 播放声音时延迟

  • 5.1环绕声[关闭]

  • 声音,在多个程序之间停止

  • 即使插入耳机,我的扬声器也会发出声音[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve