来自YouTube的使用youtube-dl
的{{3}}上有一个few posts,但这些都不是具体或太有帮助的。我想知道从Python脚本中最好的方法是什么。
例如,这是下载视频的README示例:
import youtube_dl
ydl_opts = {}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
ydl.download(['http://www.youtube.com/watch?v=BaW_jenozKc'])
显然,如果你只是关心音频,你宁愿不下载整个视频......
downloading audio来源只是非常有用(例如,不是很有用)。
有关如何编写此脚本的任何建议吗?
答案 0 :(得分:41)
继续阅读developer instructions中的修改示例:
from __future__ import unicode_literals
import youtube_dl
ydl_opts = {
'format': 'bestaudio/best',
'postprocessors': [{
'key': 'FFmpegExtractAudio',
'preferredcodec': 'mp3',
'preferredquality': '192',
}],
}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
ydl.download(['http://www.youtube.com/watch?v=BaW_jenozKc'])
如果可能/支持,这将下载音频文件。如果文件已经不是mp3,则使用ffmpeg或avconv将下载的文件转换为mp3。有关详细信息,请参阅当前版本的youtube-dl中的format
和postprocessors
文档条目。
答案 1 :(得分:2)
使用postprocessors
参数。所有可用的后处理器的列表都可以在here中找到。
如果您要传递ffmpeg
库中未包含的其他avconv
或youtube-dl
选项(例如音频比特率--ar <BR>
中的ffmpeg
) ,将postprocessor_args
添加为列表。
与将ffmpeg
设置为avconv
的{{1}}相比,您还更喜欢prefer_ffmpeg
。
并将原始音频文件和转换后的音频文件都设置为True
到'keepvideo'
。
例如:
True
所有可用选项的列表在documentation中。您可以阅读ffmpeg posprocessor的代码here。
一个简单的示例在其GitHub README中。
答案 2 :(得分:1)
由于youtube_dl已停产,您可以使用tube_dl
用法:
pip install tube_dl
from tube_dl import Youtube
就您而言,这是仅获取音频的方法。
from tube_dl import Youtube
youtube('Your URL').formats.filter(only_audio=True)[0]**.download(convert='mp3')
**您可以使用自己喜欢的质量而不是0。 只需输入:
print(youtube('Your URL').formats.filter(only_audio=True))
这将打印所有支持的音频。然后指定您选择的索引并下载