1

youtube-dl我想简单地从 youtube 链接中提取 MP3 格式的音频,但如果不从命令行调用该--extract-audio选项,我无法弄清楚如何做到这一点。有没有办法在YoutubeDL类中执行此操作,类似于此处给出的示例?

这是我到目前为止所拥有的,但它仍然会创建一个 mp4 文件。

import youtube_dl

# download using optimal audio settings
ydl_opts = {
    'format': 'bestaudio/best',
    'postprocessors': [{
        'key': 'FFmpegExtractAudio',
        'preferredcodec': 'mp3',
        'preferredquality': '192',
    }],
    'quiet': True,
    'restrictfilenames': True}

ydl = youtube_dl.YoutubeDL(ydl_opts)
ydl.download(['https://www.youtube.com/watch?v=Pnt2cy5MWyw'])

澄清:上面的代码会生成一个 MP3 文件,但它也会生成一个 MP4 视频文件。我希望它生成一个 MP3。

更新:下面是静默设置为 False 时的输出示例:

[youtube] et6sSlEn8LE: Downloading webpage
[youtube] et6sSlEn8LE: Extracting video information
[youtube] et6sSlEn8LE: Downloading DASH manifest
[download] Destination: downloaded_tracks/et6sSlEn8LE.m4a

[download]   0.0% of 7.63MiB at 47.07KiB/s ETA 02:46
[download]   0.0% of 7.63MiB at 138.74KiB/s ETA 00:56
[download]   0.1% of 7.63MiB at 319.81KiB/s ETA 00:24
[download]   0.2% of 7.63MiB at 679.31KiB/s ETA 00:11
[download]   0.4% of 7.63MiB at  1.12MiB/s ETA 00:06
[download]   0.8% of 7.63MiB at  1.19MiB/s ETA 00:06
[download]   1.6% of 7.63MiB at  1.65MiB/s ETA 00:04
[download]   3.3% of 7.63MiB at  2.43MiB/s ETA 00:03
[download]   6.5% of 7.63MiB at  3.38MiB/s ETA 00:02
[download]  13.1% of 7.63MiB at  4.32MiB/s ETA 00:01
[download]  26.2% of 7.63MiB at  4.96MiB/s ETA 00:01
[download]  52.4% of 7.63MiB at  5.15MiB/s ETA 00:00
[download] 100.0% of 7.63MiB at  6.87MiB/s ETA 00:00
[download] 100% of 7.63MiB in 00:01
[ffmpeg] Correcting container in "downloaded_tracks/et6sSlEn8LE.m4a"
[avconv] Destination: downloaded_tracks/et6sSlEn8LE.mp3
Deleting original file downloaded_tracks/et6sSlEn8LE.m4a (pass -k to keep)
4

1 回答 1

0

这段代码应该可以正常工作。如果设置为 ,输出是quiet什么False?确保您使用的是最新版本的 youtube-dl 并安装了 ffmpeg/avconv。ffmpeg/avconv 应该在你的PATH,或者你可以通过添加明确指定'ffmpeg_location': '/path/to/directory/containing/ffmpeg/or/avconv'位置ydl_opts

于 2015-06-14T21:28:40.840 回答