Skip to main content
 首页 » 编程设计

python之youtube_dl 使用 Python 获取音频链接

2025年05月04日19yjmyzz

我正在尝试使用 youtube_dl 检索 youtube 上纯音频文件的链接。我想知道是否有可能这样做。我在 python 代码中使用 youtube_dl 而不是终端。

非常感谢

请您参考如下方法:

只有极少数 websites supported by youtube-dl实际上提供纯音频文件。但有些确实如此,包括 YouTube 上的大多数视频。对于这些,您可以请求文件类型 bestaudio 并提取信息而不是下载:

from __future__ import unicode_literals  
import youtube_dl 
 
ydl_opts = { 
    'format': 'bestaudio', 
} 
 
with youtube_dl.YoutubeDL(ydl_opts) as ydl: 
    info = ydl.extract_info( 
        'https://www.youtube.com/watch?v=BaW_jenozKc', download=False) 
    print(info['formats'][0]['url']) 

请注意,这将为您提供正确的 URL。但是,如果您更改以下任何内容,则无法保证此 URL 会有效:

  • 使用该 URL 的 IP 地址(换句话说,如果您将此 URL 转移到另一台机器并尝试从那里下载,它将无法工作)。
  • HTTP header (User-Agent 等)。可以在格式字典的 http_headers 键中找到。
  • cookie(可以在 ydl.cookiejar 中找到)。

必须满足这些限制中的哪一个取决于视频,并且可能会突然发生变化。例如,目前看来该 URL 对于许多 YouTube 视频来说已经足够了,但随着时间的推移,YouTube 肯定已经屏蔽了其他 IPv4 地址,甚至屏蔽了某些视频的所有不同 IP 地址,或者仅屏蔽了音乐和其他高度盈利的视频。

另请注意,您将获得的文件格式可能很奇怪。例如,YouTube 过去常常发送大多数播放器无法读取的无效 m4a 文件。你会经常得到 opus ,可能并非所有地方都支持。如果你只想要音频文件,最好让 youtube-dl 下载并转换它,如 documentation 中所述。和其他答案。