youtube-dl参数配合ffmpeg可以自动完成视频向音频的转换,首要任务是安装ffmpeg。Mac上安装ffmpeg得用安装工具brew,详细参见24.5 Mac上安装工具Homebrew,简单说来就是:
- 搜索homebrew找到它的老巢(sh)
- 拷贝主页上的安装命令:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
打开Mac的终端,粘贴拷贝来的安装命令,按回车键开始安装。
- 安装完毕后,在终端敲入命令行:
brew install ffmpeg
安装ffmpeg。
windows用户:
- 访问ffmpeg网站(org)的下载页面根据自己的操作系统选择下载安装文件。安装文件是个压缩文件,如果没有解压软件,可以去下载安装免费的压缩管理软件7-zip。
- 在C盘根目录下建立ffmpeg文件夹C:\ffmpeg,将ffmpeg安装文件解压到文件夹C:\ffmpeg下
- 点击wiondows左下角的“开始”菜单,右击“计算机”,在右键菜单中选择属性。弹出的系统窗口中,点击“高级系统设置”(Advanced system setting)链接。点击系统属性窗口中底端的环境变量(Environment Variables)按钮,在"用户变量"(User variables for …)区域选择PATH条目,点击编辑按钮。
- 在“变量值”(Variable value)栏,在其原始内容后添加路径C:\ffmpeg\bin。如果将ffmpeg拷贝到了其他路径,那么需要添加其他路径。点击确认保存更改。如果在这个窗口输入的内容有误,那么有可能会造成Windows无法正常启动。如果在"用户变量"设置下没有PATH条目,点击新建按钮创建。在变量名栏输入PATH。注意不要够删除在PATH中已有的内容。
- 打开命令提示符窗口,输入命令“ffmpeg –version”。如果命令提示窗口返回FFmpeg的版本信息,说明安装成功了。如果收到“libstdc++ -6 is missing”的错误消息,那么可能需要安装Microsoft Visual C++ Redistributable Package,该软件包可以在微软网站免费获取。
ffmpeg安装完毕后就可以跟youtube-dl下载选项里的postprocessors参数配合使用了。postprocessors这个参数设定下载完毕后如何处理:
ydl_opts = {
……
'postprocessors': [
{
'key': 'FFmpegExtractAudio', # 指定用FFmpeg从视频中提取音频
'preferredcodec': 'mp3', # 指定音频格式
},
],
'keepvideo': True, # 默认视频转换成音频后删掉视频文件,设置为True后不删除视频,测试时反复运行,视频不必每次都下载
……
}
用ffmpeg将视频的音频抽取出来,转成指定格式(mp3)的音频文件,完整代码:
# 给出视频链接,用youtube-dl下载视频,在ffmpeg帮助下将视频转换成mp3音频
import youtube_dl
# 音频文件存放的目标字串
audioFile = '/Users/shiying/Documents/PythonABC_Book/bookProg/demo/tmp/'
# 下载视频的链接
videoPage = 'https://www.bilibili.com/video/BV1vW411X7nj'
# 设置下载选项
ydl_opts = {
'outtmpl': audioFile+'%(title)s.%(ext)s', # 定义输出模版
'format': 'best', # 下载品质最好的视频
'postprocessors': [
{
'key': 'FFmpegExtractAudio', # 指定用FFmpeg从视频中提取音频
'preferredcodec': 'mp3', # 指定目标音频格式
},
],
}
ydl = youtube_dl.YoutubeDL(ydl_opts) # 生成下载对象
ydl.download([videoPage]) # 下载视频