1、Youtube-dl工具
强大的视频下载工具Youtube-dl项目由Ricardo Garcia创建于2008年,源代码由Python编写,托管在GitHub上,最初仅支持YouTube,但随着项目的发展,也开始支持其他视频网站,优势在于使用简单、功能齐全、体积小巧,但唯一遗憾的是国内使用需要开启代理。
该脚本源代码基于Python 编写,需要安装 Python 3.2以上版本,根据python的安装不同,确保已经在PATH中已经配置环境,我通过Anaconda安装,所以PATH配置如下:
D:\anaconda3
D:\anaconda3\Scripts
D:\anaconda3\Library\bin
准备工作完成后,按Win+R或直接在任务栏搜索框,输入“cmd”,再输入以下命令,即可自动下载安装Youtube-dl工具,
#直接安装 youtube-dl
pip install youtube-dl
#更新安装 youtube-dl
pip install --upgrade youtube-dl
在同样的命令窗口下,输入如下指令,检测是否安装成功,
youtube-dl --version
若出现下图内容即成功。
2、FFmpeg组件
FFmpeg是处理多媒体内容(例如音频、视频、字幕和相关元数据)的库和工具的集合。FFmpeg是处理多媒体内容(例如音频、视频、字幕和相关元数据)的库和工具的集合。从组件下载地址下载完成后,解压到想要的位置即可。(我下载的是gpl-shared版)
在这里使用FFmpeg的原因是:Youtube-dl下载的内容可能是音视频分开下载的(某些分辨率或者某些站点),用视频剪辑软件合并又要浪费一定的时间,而安装FFmpeg之后,则可以自动合并(merge)。
FFmpeg分为3个版本:Static,Shared,Dev。前两个版本可以直接在命令行中使用,他们的区别在于:
- Static里面只有3个应用程序:ffmpeg.exe,ffplay.exe,ffprobe.exe,每个exe的体积都很大,相关的Dll已经被编译到exe里面去了。
- Shared里面除了3个应用程序:ffmpeg.exe,ffplay.exe,ffprobe.exe之外,还有一些Dll,比如说avcodec-54.dll之类的。Shared里面的exe体积很小,他们在运行的时候,到相应的Dll中调用功能。
- Dev版本是用于开发的,里面包含了include(头文件xxx.h)和lib(库文件xxx.lib),这个版本不包含exe文件。
最后,确保已经在PATH中已经配置环境,我的配置如下:
D:\FFmpeg\bin
按Win+R或直接在任务栏搜索框,输入“cmd”,再输入以下命令,检测是否安装成功,
ffmpeg -version
若出现下图内容即成功。
3、使用方法
按Win+R或直接在任务栏搜索框,输入“cmd”,再输入以下命令,
- 获取视频格式列表
youtube-dl -F URL
- 下载指定格式(format)视频
youtube-dl -f format URL youtube-dl -f bestvideo+bestaudio URL
format可以使用上面列出的,也可以使用如下单词: best 选择最佳质量的音/视频文件 worst 选择质量最差的格式(视频和音频) bestvideo 选择最佳质量的仅视频格式(例如DASH视频),可能无法使用。 worstvideo选择质量最差的纯视频格式,可能无法使用。 bestaudio 选择最优质的音频格式,可能无法使用。 worstaudio 选择质量最差的音频格式,可能无法使用。 - 不支持直接指定输出位置,但可以采用以下方法:① 使用’-o’参数,同时指定输出目录和保存的文件名称。如
youtube-dl -o 'E:\00-录截屏&下载\Youtube下载内容' URL
如果只写了保存文件名称,则会默认保存在user目录之下,如果没有写‘-o’参数,则默认为视频标题,默认保存在user下。 ② 使用’cd’命令进入到文件保存位置,再下载。
懒人脚本
桌面新建记事本(或使用Notepad 命令),复制粘贴以下代码,另存为“视频下载工具(Youtube-dl).bat”,,要注意“另存为”时,将右下角编码"UTF-8”更改为“ANSI",否则运行时会乱码,脚本代码如下,
@echo off
::olor 02
::==========================目录设置========================
::默认下载目录
:default_save_dir
set default_dir=E:\00-录截屏&下载\Youtube下载内容
pushd %default_dir%
echo 默认保存路径是:%cd%
set /p mode=是否需要重新设置保存目录?(y/n)
if /i %mode%==y call :set_dir
if /i %mode%==n call :download
if /i not %mode%==y if /i not %mode%==n echo 输入有误
echo.
call :default_save_dir
::==========================下载========================
::下载视频,不点击退出则可一直在上述文件夹下下载
:download
echo.
set /p url=请输入视频URL:
set url=%url:&=^^^&%
::打印可供下载的视频格式
youtube-dl -F %url%
if errorlevel 1 goto :download
echo.
set /p code=请输入视频格式(format):
::开始下载
youtube-dl -f %code% %url%
goto :download
::::==========================手动设置目录========================
:set_dir
echo.
set /p dir=请输入保存路径:
set dir=%dir:/=\%
::保存并切换到该目录
pushd %dir%
::比较当前路径与前面输入的路径是否一致,%cd%表示当前的绝对路径
if /i not %dir%==%cd% goto :set_dir
echo 现在的下载目录为:%cd%
由于懒人脚本内使用了>-F,会输出不同质量的组合,需要自己挑选想要的视频、音频组合方案,然后填写对应的组合序号,如︰单独下载视频136,单独下载音频140,合并下载音视频136+140
输入完成对应的组合序号后就需要耐心等待下载完成了,感觉下载慢可在youtube-dl那一行后加上–proxy”你的代理服务器地址”
- 在使用之前需要开启网络代理。
- 视频编码avc1:也就是 h264的格式,一般现在经常使用的格式,许多up主也是以这种格式上传的。webm:内封的是vp9格式,属于Google为了避免 h265的高额费用开发的自有格式,在大部分时候是比avc1要小一些的。av01:比较新的格式,后缀也是mp4,但目前阶段基本没法硬解,同等清晰度下生成的文件比较小。best:下载youtube-dl自认为最好的版本,然而并没有什么卵用。
- 音频编码
在利于封装的原则下,avc1和av01首选 m4a,最后生成的是 mp4文件,webm对应opus音频。需 要注意的是 Youtube在处理m4a音频时,16kHz以上有“剃头”现象。
Youtube-dl 也适用于其他网站,经常使用Youtube-dl下载视频,建议保存最新版本。
版权归原作者 Cho1ce 所有, 如有侵权,请联系我们删除。