使用python scrip中的youtube dl从youtube视频中仅下载音频

2024-10-05 13:13:43 发布

您现在位置:Python中文网/ 问答频道 /正文

YouTube上有一个fewposts在使用youtube-dldownloading audio上,但是没有一个是具体的或者太有用的。我想知道从一个Python脚本中做这件事的最佳方法是什么。

例如,以下是下载视频的自述文件示例:

import youtube_dl

ydl_opts = {}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
    ydl.download(['http://www.youtube.com/watch?v=BaW_jenozKc'])

显然,如果你只关心音频,你宁愿不下载整个视频。。。

youtube-dl源代码非常有用(也就是说,不是很有用)。

你有什么建议吗?


Tags: 方法import脚本示例视频youtubewith自述文件
2条回答

使用postprocessors参数。可以找到所有可用后处理器的列表here

如果要传递附加的ffmpegavconv选项,这些选项不包含在youtube-dl库中(如ffmpeg中的音频比特率--ar <BR>),请将postprocessor_args添加为列表。

您也可以选择ffmpeg而不是avconvprefer_ffmpeg设置为True

同时保留原始和转换的音频文件集'keepvideo'True

例如:

from __future__ import unicode_literals
import youtube_dl

ydl_opts = {
    'format': 'bestaudio/best',
    'postprocessors': [{
        'key': 'FFmpegExtractAudio',
        'preferredcodec': 'wav',
        'preferredquality': '192'
    }],
    'postprocessor_args': [
        '-ar', '16000'
    ],
    'prefer_ffmpeg': True,
    'keepvideo': True
}

with youtube_dl.YoutubeDL(ydl_opts) as ydl:
    ydl.download(['http://www.youtube.com/watch?v=BaW_jenozKc'])

所有可用选项的列表都在documentation中。您可以读取ffmpeg posprocessor的代码here

还有一个不那么复杂的例子在他们的GitHubREADME中。

请继续阅读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,则使用ffmpegavconv将下载的文件转换为mp3。有关详细信息,请参阅youtube dl当前版本中的^{}^{}文档条目。

相关问题 更多 >

    热门问题