VideoDL 是一个轻量级的 Python 视频下载器
📦 VideoDL (videofetch) 详细部署教程
VideoDL 是一个轻量级的 Python 视频下载器,支持抖音、快手、B站、YouTube 等海量流媒体平台的高清无水印视频下载。它通过模块化的视频客户端解析视频源,并提供命令行和 Python 接口,方便集成。本文将指导您完成从安装到使用的全过程。
⚙️ 部署前准备
1. 核心环境要求
- Python 版本:Python 3.6 或更高版本。
- 包管理工具:
pip。
2. 必须安装的依赖工具
VideoDL 的核心功能依赖于一些外部命令行工具,尤其推荐安装 FFmpeg 和 N_m3u8DL-RE,以确保最佳的解析和下载体验。
| 工具 | 用途 | 重要性 | 验证命令 |
|---|---|---|---|
| FFmpeg | 处理 HLS (m3u8) 流媒体、视频合并与转码。几乎所有流媒体下载都需要它。 | 必须 | ffmpeg -version |
| N_m3u8DL-RE | 专业的 m3u8 下载器,支持加密、防盗链、非标准流,下载速度更快。 | 强烈推荐 | N_m3u8DL-RE --version |
| aria2c | 多线程下载工具,可加速 MP4 等文件下载并支持断点续传。 | 可选 | aria2c --version |
| Bento4 | 工具集,其中 mp4decrypt 用于处理某些加密的媒体流。 |
可选(特定平台) | mp4decrypt --version |
| Node.js | 用于执行 YouTube、CCTV 等特定平台解析所需的 JavaScript。 | 可选(特定平台) | node -v |
安装提示:请将上述工具的可执行文件路径添加到系统环境变量
PATH中,以便 VideoDL 可以直接调用。
🚀 安装 VideoDL
VideoDL 的 Python 包名为 videofetch,提供三种安装方式,推荐通过 pip 安装。
方式一:通过 pip 安装(推荐)
1 | pip install videofetch --upgrade |
安装后,即可在终端中使用 videodl 命令。
方式二:从 GitHub 仓库直接安装
1 | pip install git+https://github.com/CharlesPikachu/videodl.git@master |
方式三:克隆源码后安装(适合开发或定制)
1 | git clone https://github.com/CharlesPikachu/videodl.git |
⚡ 快速使用指南
VideoDL 提供了灵活的使用方式,包括命令行一键下载和交互式模式。
命令行使用
1. 下载单个视频(最常用)
1 | videodl -i "视频URL" |
例如:
1 | videodl -i "https://www.acfun.cn/v/ac36491489" |
2. 指定解析客户端(提高效率)
如果你知道视频来源,可以直接指定客户端,避免全局搜索:
1 | videodl -i "URL" -a "AcFunVideoClient" |
或同时指定多个:
1 | videodl -i "URL" -a "AcFunVideoClient,BilibiliVideoClient" |
3. 强制使用通用解析器
当平台专用解析器失效时,可以尝试通用解析器:
1 | videodl -i "URL" -g |
4. 设置自定义配置
通过 JSON 字符串传递配置,例如更改下载目录:
1 | videodl -i "URL" -a "AcFunVideoClient" -c '{"AcFunVideoClient": {"work_dir": "downloads"}}' |
5. 启动交互模式
如果不提供 -i 参数,会进入交互式终端,按提示输入 URL:
1 | videodl |
在交互模式中,可以输入 q 退出,输入 r 重启界面。
在 Python 脚本中使用
VideoDL 也可以作为 Python 库集成到你的项目中。
1. 解析并下载
1 | from videodl import videodl |
2. 指定解析客户端
1 | video_client = videodl.VideoClient( |
3. 启用下载加速器
1 | # 对解析结果启用 aria2c |
📊 解析客户端说明
VideoDL 支持两种类型的解析客户端:
- 平台专用客户端:针对特定网站(如 B站、抖音)定制的解析逻辑,通常能提供最佳质量。
- 通用解析器:通过调用第三方聚合解析 API 工作,可在专用客户端失效时作为备选。
解析时,VideoDL 会优先尝试平台专用客户端,如果失败则自动按顺序尝试通用解析器。
❓ 常见问题 (FAQ)
- Q: 为什么下载失败,提示找不到
ffmpeg或N_m3u8DL-RE?- A: 这是最常见的问题。VideoDL 依赖这些外部工具来处理流媒体。请确保它们已正确安装,并且其所在目录已添加到系统
PATH环境变量中。安装后需要重启终端。
- A: 这是最常见的问题。VideoDL 依赖这些外部工具来处理流媒体。请确保它们已正确安装,并且其所在目录已添加到系统
- Q: 如何更新 VideoDL 到最新版本?
- A: 执行
pip install videofetch --upgrade即可。
- A: 执行
- Q: 下载的视频带有广告或水印?
- A: 如果使用通用解析器,广告可能由第三方解析服务插入,非 VideoDL 自身行为。可以尝试更换其他解析客户端(如使用
-a IM1907VideoClient等)或使用 FFmpeg 手动裁剪广告片段。
- A: 如果使用通用解析器,广告可能由第三方解析服务插入,非 VideoDL 自身行为。可以尝试更换其他解析客户端(如使用
- Q: 某平台的视频突然无法下载了?
- A: 网站接口会经常变动。请先尝试更新 VideoDL 到最新版本。如果问题依旧,欢迎在项目的 GitHub Issues 中反馈。
- Q:
videodl命令找不到?- A: 这通常意味着 Python 的脚本目录(如
~/.local/bin或 Python 安装目录下的Scripts)不在系统PATH中。请检查并添加该路径。
- A: 这通常意味着 Python 的脚本目录(如
更详细的命令参数、API 文档和高级用法,请查阅 VideoDL 官方文档。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 极客的赛博空间 | 专注 AI 与技术分享!
评论


