如何在Windows上使用youtube-dl提取音频

b1payxdu  于 2023-10-22  发布在  Windows
关注(0)|答案(5)|浏览(141)

我想从Windows上使用youtube-dl下载的视频中提取音频。我得到了youtube-dl工作,但我无法提取音频。此问题是由于未安装正确的音频代码而导致的。
当我尝试提取音频时,它告诉我以下内容:

WARNING: unable to obtain file audio codes with ffprobe

youtube-dl手册说:

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

如何安装ffprobe或ffmpeg?我是在Windows上安装这个,还是作为Python扩展安装这个?
我的操作系统是Windows 7。

o2g1uqev

o2g1uqev1#

ffmpeg不是Python模块。看看FFmpegExtractAudioPP类中youtube-dl的代码。
它使用这个调用来确定可执行文件是否存在。它检查您的当前路径:

subprocess.Popen([exe, '-version'], stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()

您需要下载Windows builds of ffmpeg并将它们放在当前路径中,可能要确保它们的名称末尾没有.exe

cwtwac6a

cwtwac6a2#

Windows用户的快速修复:
1.从http://ffmpeg.zeranoe.com/builds/下载ffmpeg包,解压缩,将Bin目录的所有内容复制到youtube-dl.exe所在的目录。
1.使用DOS导航到youtube-dl所在的目录,并使用命令运行:

youtube-dl --extract-audio --audio-format mp3
rqcrx0a6

rqcrx0a63#

编辑

未来的用户可能希望从ffmpeg.org下载最新版本

  • 我的代表不允许我添加评论,所以我将在这里。*

截至2020年9月18日,http://ffmpeg.zeranoe.com/builds/已关闭,但仍可通过Web Archive访问。完整的下载仍然可以从这里:
http://web.archive.org/web/20200918193047/https://ffmpeg.zeranoe.com/builds/
我已经从我的Google Drive为Windows用户提供了以下文件/版本,但请不要认为这些是理所当然的,并一如既往地扫描恶意软件或病毒:

ffmpeg-4.2.2-win32-static.zip
ffmpeg-4.2.2-win64-static.zip
ffmpeg-4.2.3-win32-static.zip
ffmpeg-4.2.3-win64-static.zip
ffmpeg-4.3-win32-static.zip
ffmpeg-4.3-win64-static.zip
ffmpeg-4.3.1-win32-static.zip
ffmpeg-4.3.1-win64-static.zip

https://drive.google.com/drive/folders/1oj3VndOC-bGhfpNcHW3otIR--V2wxdG-?usp=sharing
下载后,我在Windows 10上提取了最新版本(4.3.1),并将所有.exe(ffmpegffplayffprobe)复制到与youtube-dl相同的目录中,然后运行:

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

ffx8fchx4#

您可以使用chocolatey轻松获取win-ffmpeg
如果你仍然不能让Youtube-DL和FFMPEG一起工作,
也许你可以分两步来做
1.获取mp4或avi:youtube-dl url
1.提取音频
ffmpeg -i input.mp4 -vn -codec copy out.mp3

llew8vvj

llew8vvj5#

我使用conda-forge上提供的软件包在Windows上实现这一点。在conda环境中安装yt-dlp后,yt-dlp脚本应该在您的%PATH%中。* 注意:* 我用Git Bash测试了这个,而不是Windows Terminal/Powershell

(yt-dlp) $ conda install ffmpeg yt-dlp
(yt-dlp) $ yt-dlp --version
(yt-dlp) $ ffmpeg --version
(yt-dlp) $ yt-dlp --extract-audio --audio-format wav https://www.youtube.com/watch?v=BaW_jenozKc

你也可以用Python代码来实现这一点。下面的大部分Python代码取自yt-dlp文档。

import yt_dlp

URLS = ['https://www.youtube.com/watch?v=BaW_jenozKc']

# https://github.com/yt-dlp/yt-dlp#extract-audio
ydl_opts = {
    'format': 'm4a/bestaudio/best',
    # See help(yt_dlp.postprocessor) for a list of available
    # Postprocessors and their arguments
    'postprocessors': [{  # Extract audio using ffmpeg
        'key': 'FFmpegExtractAudio',
        'preferredcodec': 'wav'
    }]
}
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
    error_code = ydl.download(URLS)

相关问题