【问题标题】:Download the best quality audio file with youtube-dl [closed]使用 youtube-dl 下载最优质的音频文件 [关闭]
【发布时间】:2018-09-23 02:21:05
【问题描述】:

我刚刚下载了 youtube-dl,所以我可以从 youtube 下载视频和音频文件。

我想从以下视频中下载最好的音频:https://www.youtube.com/watch?v=uWusmdmc0to

当我使用 youtube-dl 搜索所有格式时,我得到以下结果:

格式代码扩展解析说明 249 仅 webm 音频 DASH 音频 58k,作品@ 50k,18.99MiB 250 webm 仅音频 DASH 音频 75k , opus @ 70k, 25.20MiB 140 m4a 仅音频 DASH 音频 131k , m4a_dash 容器, mp4a.40.2@128k, 52.40MiB 251 仅 webm 音频 DASH 音频 147k,作品@160k,50.95MiB 171 仅 webm 音频 DASH 音频 149k,vorbis@128k,52.64MiB 278 webm 256x144 144p 109k,webm 容器,vp9,25fps,仅视频,34.62MiB 160 mp4 256x144 144p 117k,avc1.4d400c,25fps,仅视频,37.86MiB 242 webm 426x240 240p 245k,vp9,25fps,仅视频,75.13MiB 133 mp4 426x240 240p 258k,avc1.4d4015,25fps,仅视频,81.39MiB 243 webm 640x360 360p 492k,vp9,25fps,仅视频,142.99MiB 134 mp4 640x360 360p 673k,avc1.4d401e,25fps,仅视频,215.29MiB 244 webm 854x480 480p 828k,vp9,25fps,仅视频,256.58MiB 135 mp4 854x480 480p 1516k,avc1.4d401e,25fps,仅视频,408.56MiB 247 webm 1280x720 720p 1882k,vp9,25fps,仅视频,526.18MiB 136 mp4 1280x720 720p 3012k,avc1.4d401f,25fps,仅视频,803.36MiB 248 webm 1920x1080 1080p 3622k,vp9,25fps,仅视频,938.81MiB 137 mp4 1920x1080 1080p 4724k,avc1.640028,25fps,仅视频,1.44GiB 271 webm 2560x1440 1440p 9253k,vp9,25fps,仅视频,2.86GiB 313 webm 3840x2160 2160p 18685k,vp9,25fps,仅视频,6.33GiB 17 3gp 176x144 小,mp4v.20.3,mp4a.40.2@ 24k 36 3gp 320x180 小,mp4v.20.3,mp4a.40.2 43 webm 640x360 中,vp8.0,vorbis@128k 18 mp4 640x360 中等,avc1.42001E,mp4a.40.2@ 96k 22 mp4 1280x720 hd720,avc1.64001F,mp4a.40.2@192k(最佳)

获得最佳音频文件的最佳选择是什么?前五个只是音频。我需要在这里选一个吗?还是最后一个 MP4 HD720 是最好的选择,然后再转换成 MP3?

谢谢!

【问题讨论】:

  • 选项171vorbis@128k 是该视频可用的最佳音频。对其他人来说可能会有所不同。重新编码将丢失更多数据,无论以何种方式或以何种方式进行!为什么不进行自己的测试、比较输出、耳机、汽车等。看看什么适合您的需求
  • 格式码251"opus@160k"是这种情况下最好的音频质量。 Opus 编解码器比 Vorbis 更新了十年,在表示可听声音方面更有效。

标签: audio youtube youtube-dl


【解决方案1】:

如果您想要 mp3,请告诉 youtube-dl:

youtube-dl -x --audio-format mp3 https://www.youtube.com/watch?v=uWusmdmc0to

将为您提供音频版本(-x--extract-audio 的缩写)或转换为mp3(即--audio-format 选项)。 youtube-dl 会自动选择质量最好、最合适的格式。

请注意,列出的品质只是猜测。在实践中,opus 优于其他任何东西,但选择 vorbis 是为了兼容(参考this related answer of mine for more details),所以会选择它。

虽然您可以使用-f 选择特定格式,但它适用于因带宽或存储空间有限而希望降低质量的人,或者用于调试。默认情况下,youtube-dl 已经下载了最高质量。

【讨论】:

  • 感谢您的回复。我在更多网站上读到 Opus 是最好的。但是为什么 youtube-dl 在我使用时会下载 Vorbis 文件: youtube-dl -f bestaudio youtube.com/watch?v=uWusmdmc0to ??这不是最好的。
  • 如链接答案中所述,这是因为兼容性问题。如果你可以播放/转换作品,你可以传入-f 'bestaudio[format="opus"]/bestaudio/best'
  • @phihag 这给了我错误ValueError: Invalid filter specification u'format="opus"'
  • @ColinD 请ask a separate question instead,或者提交youtube-dl bug。你可以notify me of the question via email or so。当使用 -v 选项(以及您拥有的所有选项)调用时,不要忘记包含 youtube-dl 的 整个 输出。还要确保您使用的是最新版本的 youtube-dl,至少 2018.12.17。
  • 我想知道为什么 --audio-format 不能与 -f bestaudio 一起使用?
【解决方案2】:

要执行此命令,您需要安装 ffmpeg(youtube-dl 用于转换的音频和视频转换器)

从单个电影下载音频:

youtube-dl -f "bestaudio/best" -ciw -o "%(title)s.%(ext)s" -v --extract-audio --audio-quality 0 --audio-format mp3  https://www.youtube.com/watch?v=c29tZVZpZGVvUGxheWxpc3RQYXJ0

只下载音频(没有视频)并将其转换为mp3

选项--audio-quality 0 在那里非常重要!
如果没有此选项,您会在mp3 压缩过程中损失一些音质。

--audio-quality 0 告诉 youtube-dl 以最佳质量保存音频文件(转换为 mp3 时)。
如果没有这个选项,mp3 音频质量默认设置为0-9 scale 中的5,其中0 是最好的质量,9 是最差的质量。所以默认情况下质量更差。 面向非高级用户的 Youtube 流,可变比特率高达 160kbpsopus 格式。 Opus 格式比 mp3 更新,并且比 mp3 具有更好的压缩率,保持相同的质量。所以160kbps opus = ~256kbps mp3。
默认音频质量时(0-9 scale 中的5)mp3 比特率限制为160kbps,这意味着在压缩过程中会丢失一些音质。当音频质量设置为 0 时,mp3 会上升到 300kbps 保留原始质量。

从一个频道下载所有电影的音频

命令是一样的,但是你应该把链接放到频道而不是链接到单个视频:

youtube-dl -f "bestaudio/best" -ciw -o "%(title)s.%(ext)s" -v --extract-audio --audio-quality 0 --audio-format mp3 https://www.youtube.com/c/someChannelName1232143/videos

从播放列表下载音频

您必须添加--yes-playlist 选项。
你可以放一个播放列表的链接(用playlist字链接):

youtube-dl -f "bestaudio/best" -ciw -o "%(title)s.%(ext)s" -v --extract-audio --audio-format mp3 --audio-quality 0  --yes-playlist https://www.youtube.com/playlist?list=c29tZVZpZGVvVVJMUGFy

或者在播放播放列表时链接到播放列表中的一首歌曲(使用list字链接):

youtube-dl -f "bestaudio/best" -ciw -o "%(title)s.%(ext)s" -v --extract-audio --audio-format mp3 --audio-quality 0  --yes-playlist "https://www.youtube.com/watch?v=c29tZVZpZGVvUGxheWxpc3RQYXJ0&list=c29tZVZpZGVvTGlzdFBhcnRzc29tZVZpZGVvTGlzdFBhcnRz&index=4"

命令选项说明:

-f "bestaudio/best" <- Choose the best audio format.
As there is only audio format listed only the audio is downloaded.

-c <- (--continue) Force resume of partially downloaded files.
By default, youtube-dl will resume downloads if possible.
As docs state maybe it is default, but I put it to make sure it is set.

-i <- (--ignore-errors) Continue on download errors,
for example to skip unavailable videos in a playlist.

-w <- (--no-overtwrites) Do not overwrite files
(If something was already downloaded
and is present in the directory then continue with the next video)

-o "%(title)s.%(ext)s" <- (--output) Output filename template,
in this case it gives you file named movieTitle.mp3
where movieTitle is the title of the video on youtube.

-v <- (--verbose) Print various debugging information

--extract-audio <- (-x) Convert video files to audio-only files
(requires ffmpeg or avconv and ffprobe or avprobe)

--audio-quality 0 <- Specify ffmpeg/avconv audio quality,
insert a value between 0 (better) and 9 (worse) for VBR or a specific
bitrate like 128K (default 5).
Youtube streams for nonpremium users with variable bitrate up to 160kbps in opus format.
Opus format is newer than mp3 and has better compression than mp3
preserving the same quality. So 160kbps opus = ~ 256kbps mp3.  
When audio-quality is default (5 in 0-9 scale) mp3 bitrate
is limited to 160kbps which means that some sound quality is lost during compression.
When audio-quality is set to 0 mp3 goes up to 300kbps preserving original quality.

--audio-format mp3 <-  Specify audio format: "best", "aac", "flac", "mp3", "m4a",
"opus", "vorbis", or "wav"; "best" by default; No effect without -x (--extract-audio).
In this case we choose mp3.
Alternatively you could choose for example opus which
is oryginally provided by youtube and is newer and better than mp3
or flac which is loseless codec.

我提供的所有链接都是假的。我只是在其中放了一些由 base64 编码的随机单词。因此,您必须用自己的链接替换它们才能使其正常工作。

提示:

Youtube-dl gives you opportunity to use your own youtube account to download stuff.
If your account is a premium account you can get
higher 320kbps opus bitrate which is equivalent of ~512kbps mp3.
Using your own account might be possible by setting --username and --pasword
(See Authentication Options in --help)

【讨论】:

  • --audio-quality 0 不会重新编码音频,从而降低质量吗?我们想要原始流(即使它是有损的),而不是有损到有损的转码,对吧?
  • @stackexchange_account1111 老实说,我不知道它在内部是如何工作的,但可以肯定的是,如果您将没有设置 --audio-quality 下载的文件与使用 --audio-quality 下载的另一个文件进行比较参数设置为0 (--audio-quality 0)。第二个不仅比特率更高,而且您还可以听到它具有更好的音质。只需将相同的音频文件下载两次,设置和不设置此参数,然后使用优质音频设备自行比较。
  • @stackexchange_account1111 请注意,即使您没有自行设置--audio-quality 参数,它也会被设置为默认值--audio-quality 5。它在youtube-dl 中指定帮助:"--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 5)"
  • @stackexchange_account1111 可能有损的是从视频格式转换为纯音频格式。我们通过使用--extract-audio 选项来实现它。如帮助所述:"-x, --extract-audio Convert video files to audio-only files (requires ffmpeg or avconvand ffprobe or avprobe)"。当然它可能有点有损,但我不知道它是否真的有损,如果有损我不知道有多少,因为我不知道 ffmpeg(或其他可能的转换工具被使用)在内部工作。
  • @stackexchange_account1111 因此,如果您想确保没有丢失任何内容,可以将其作为电影下载,但听电影不太方便 :) 您也可以在 youtube 上进行,所以为什么还要费心去下载它。当我们假设我们仍然想将它转换为音频时,还有一件事可能是有损的:从opus 格式转换为mp3 格式,但您始终可以使用--audio-format opus 选项以原始格式下载它--audio-format mp3 以降低丢失东西的风险。
【解决方案3】:

下载最佳音频:

youtube-dl -f bestaudio https://www.youtube.com/watch?v=3_y2jVPmPBw --output "out.%(ext)s"

【讨论】:

    【解决方案4】:

    这应该会给你最好的音质:

    youtube-dl --extract-audio "https://www.youtube.com/watch?v=uWusmdmc0to"
    

    我建议不要指定任何音频格式。如果您指定一种音频格式,那么它可能与原始编码不同,您将失去音质。

    【讨论】:

    • 很好的解释。
    【解决方案5】:

    我在 Windows 中使用了一个 bat 文件,它将 youtube url 传递给预设的参数列表,以下载最高质量的音频流并将其保存为 MP3。

    批处理文件包含:

    youtube-dl -f bestaudio -x --audio-format mp3 %*
    

    将批处理文件保存在与youtube-dl相同的目录中(我将其保存为youtube-mp3.bat)在同一目录中安装了ffmpeg

    每当我想下载音频(通常对我来说是一个 youtube DJ 混音)时,我只需将 (youtube) URL 传递给批处理文件。无需记住每次使用的参数。

    youtube-mp3 https://www.youtube.com/?v=xxxxxx   
    

    【讨论】:

      【解决方案6】:

      您可以尝试下载所需格式的音频

      youtube-dl -f m4a https://www.youtube.com/watch\?v\=ZtrEWtk9kbo 
      

      命令。

      有时需要 ffmpeg。

      【讨论】:

        【解决方案7】:

        通过以下方法检查您是否安装了ffmpeg包。

        sudo apt install ffmpeg
        sudo pip install ffmpeg
        

        在上面我得到如下:

        youtube-dl https://www.youtube.com/watch?v=6Qmnh5C4Pmo
        [youtube] 6Qmnh5C4Pmo: Downloading webpage
        [download] Destination: Pipenv Crash Course-6Qmnh5C4Pmo.f248.webm
        [download] 100% of 33.19MiB in 00:26
        [download] Destination: Pipenv Crash Course-6Qmnh5C4Pmo.f251.webm
        [download] 100% of 15.15MiB in 00:09
        [ffmpeg] Merging formats into &quot;Pipenv Crash Course-6Qmnh5C4Pmo.webm&quot;
        Deleting original file Pipenv Crash Course-6Qmnh5C4Pmo.f248.webm (pass -k to keep)
        Deleting original file Pipenv Crash Course-6Qmnh5C4Pmo.f251.webm (pass -k to keep)
        

        【讨论】:

          【解决方案8】:

          这适用于以 M4A(MPEG-4 音频)格式提供音频的网站(例如 YouTube、Facebook 视频):

          youtube-dl -f "bestaudio[ext=m4a]/best[ext=mp4]" -x "https://..."
          

          由于没有指定--audio-format,youtube-dl 不会进行任何重新编码,因此不会损失音频质量。但是,可能会出现质量更好的视频(使用不同的ext=...)。

          【讨论】:

            【解决方案9】:

            我个人目前使用

            youtube-dl -f bestaudio --extract-audio --audio-format mp3 --audio-quality 0
            

            这是所有其他答案的完美结合。 我通过键入创建了别名 youtube-dl-music

            alias youtube-dl-music='youtube-dl -f bestaudio --extract-audio --audio-format mp3 --audio-quality 0'
            

            希望这对那些需要快速复制和粘贴命令的人有所帮助。

            【讨论】:

              【解决方案10】:

              虽然你可以像这样获得最好的音频:

              $ youtube-dl -f bestaudio https://www.youtube.com/watch?v=7E-cwdnsiow
              

              您还可以像这样获得最差的视频和最好的音频:

              $ youtube-dl -f worstvideo+bestaudio https://www.youtube.com/watch?v=7E-cwdnsiow
              

              或者您可以将最佳音频和最佳视频分成两个单独的文件,如下所示:

              $ youtube-dl -f bestvideo,bestaudio https://www.youtube.com/watch?v=7E-cwdnsiow
              

              更好的是,您可以在您认为合理的范围内寻找最佳视频并将其与音频相结合:

              $ youtube-dl -f 'bestvideo[height<=480]+bestaudio/best[height<=480]' https://www.youtube.com/watch?v=7E-cwdnsiow
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2018-08-09
                • 2021-01-13
                • 1970-01-01
                • 1970-01-01
                • 2015-02-12
                • 2023-01-27
                • 2015-10-16
                相关资源
                最近更新 更多