VideoDL:一个 Python 脚本搞定 50 多个平台的视频下载
VideoDL:一个 Python 脚本搞定 50 多个平台的视频下载
videodl 在 GitHub 上已经拿到 2,081 Star 了。
这是一个纯 Python 写的视频下载工具,支持 B 站、抖音、YouTube、快手、小红书等 50 多个平台,还内置了 40 多个通用解析接口做兜底。命令行和 Python API 都能用,安装后一条命令就能下视频。

1、这工具是干嘛的
videodl 的核心逻辑很简单:给一个视频链接,它自动匹配对应的平台解析器,提取出真实的下载地址,然后把视频存到本地。
国内平台覆盖了 B 站、抖音、快手、小红书、优酷、爱奇艺、腾讯视频、芒果 TV、虎牙、微博、西瓜视频、知乎、央视网、学习强国等;海外平台包括 YouTube、TED、Dailymotion、Reddit、Rutube、FIFA+、Player.pl 等。每个平台都有独立的解析模块,代码结构清晰,想加新平台直接仿写即可。
除了专属解析器,作者还准备了 40 多个通用解析接口。这些接口来自第三方在线解析服务,比如 SnapAny、GreenVideo、万能视频下载器等。当专属解析器失效时,工具会自动 fallback 到通用接口逐个尝试,直到解析成功。

2、为什么要用它
做过视频采集或数据集构建的人知道,各个平台的视频格式和反爬策略千差万别。B 站的流是 DASH 分段,抖音的链接带签名参数,YouTube 的解析逻辑经常变,央视网和腾讯视频还涉及 m3u8 加密流。每个平台单独写抓取脚本,维护成本很高,平台一改规则脚本就报废。
videodl 把这一层抽象掉了。它给每个平台写了专门的解析器,同时用通用接口兜底。解析失败时自动切换下一个接口,不需要人工干预。这种双层设计让工具在面对平台变动时更有韧性。
作者还搭了一个在线状态面板,每天通过 GitHub Actions 自动采样测试各个平台的解析可用性,结果公开在页面上。用户下载前可以先看面板,确认目标平台当前是否正常。这种持续维护在同类工具里不多见。
3、安装与使用
安装很简单,pip 直接装:
pip install videofetch
命令行下载一条视频:
videodl -i "https://www.bilibili.com/video/BV13x41117TL"
不指定 URL 时进入交互模式,按提示输入链接即可。输入 q 退出,r 重启界面。
指定平台解析器会更快:
videodl -i "URL" -a "BilibiliVideoClient"
也可以同时指定多个平台:
videodl -i "URL" -a "AcFunVideoClient,BilibiliVideoClient"
只用通用解析器:
videodl -i "URL" -g
Python 里调用同样直接:
from videodl import videodl
video_client = videodl.VideoClient()
video_infos = video_client.parsefromurl("https://www.bilibili.com/video/BV13x41117TL")
video_client.download(video_infos)
也可以先解析、检查信息后再下载:
video_infos = video_client.parsefromurl("URL")
for info in video_infos:
print(info["title"], info["download_url"])
video_client.download(video_infos)
解析结果是一个 VideoInfo 对象列表,包含视频标题、下载地址、保存路径、格式后缀、错误信息等字段。支持用点号或中括号访问属性。
配置输出目录、请求头、代理、线程数都很灵活,通过 init_video_clients_cfg 和 requests_overrides 参数传入即可。
4、依赖与注意事项
FFmpeg 是必装的,处理 HLS 流和合并分段视频都靠它。装完后在终端运行 ffmpeg -version 确认能正常调用。
N_m3u8DL-RE 建议也装上,这是专门处理加密和反防盗链的 m3u8 下载器,支持并行下载和重试,速度比 FFmpeg 快不少。没有它的话,央视网、腾讯视频、爱奇艺、福克斯新闻等平台的解析会受限。
如果要用 YouTube、央视网、腾讯视频的解析,还需要 Node.js。Bento4 则用于处理某些加密媒体的解密流程。aria2c 可选,用来加速 MP4 下载和断点续传。
工具采用 PolyForm Noncommercial 协议,仅限学习用途,商用禁止。下载付费内容需要先购买对应平台的会员,尊重版权。
5、适合哪些人用
- 做视频数据集、需要批量采集多平台素材的研究人员
- 写爬虫或媒体处理管线、需要一个统一视频下载层的开发者
- 想学习视频解析原理、参考各平台反爬策略实现的人
浙公网安备 33010602011771号