# 运行自动设置脚本
./setup.sh或者手动安装:
# 1. 安装系统工具(macOS)
brew install yt-dlp ffmpeg
# 2. 安装 Python 依赖
uv sync
# 3. 安装浏览器驱动
uv run playwright install chromium方式 A: 单个视频
- 直接在程序中输入URL
方式 B: 批量下载
- 创建
urls.txt文件(可参考urls.txt.example) - 每行一个URL
https://appezrn4igg1968.h5.xet.citv.cn/p/course/video/v_xxx1
https://appezrn4igg1968.h5.xet.citv.cn/p/course/video/v_xxx2uv run python main.py- 第一次运行选择"是"显示浏览器窗口
- 在弹出的浏览器中扫码或手机号登录
- 登录信息会保存在
browser_session目录 - 后续运行可以选择"否"使用无头模式
- 程序会自动捕获视频地址
- 显示视频列表确认
- 自动下载到
downloads目录
$ uv run python main.py
# 输入选项
选择: 1 (手动输入)
URL: https://appezrn4igg1968.h5.xet.citv.cn/p/course/video/v_xxx
显示浏览器: 是 (首次)创建 my_course.txt:
https://appezrn4igg1968.h5.xet.citv.cn/p/course/video/v_xxx1
https://appezrn4igg1968.h5.xet.citv.cn/p/course/video/v_xxx2
https://appezrn4igg1968.h5.xet.citv.cn/p/course/video/v_xxx3
运行:
$ uv run python main.py
选择: 2 (从文件读取)
文件路径: my_course.txt
显示浏览器: 否 (已登录)查看 examples.py 获取更多示例:
uv run python examples.pyA:
- 确保已登录(首次使用显示浏览器)
- 检查URL是否正确
- 增加等待时间
A:
- 检查 yt-dlp 是否安装:
yt-dlp --version - 检查网络连接
- 查看错误信息
A:
- 程序默认捕获
v.f421220(最高清) - 检查是否所有视频都支持高清
A:
rm -rf browser_session/fetch-video/
├── browser_session/ # 浏览器登录会话
├── downloads/ # 下载的视频文件
│ ├── 01_视频标题1.mp4
│ ├── 02_视频标题2.mp4
│ └── ...
└── captured_videos.json # 捕获的视频信息(可选)
修改代码或在交互时选择"否"跳过下载,保存JSON文件供后续处理。
修改 main.py 中的 output_template:
output_template = str(self.output_dir / f"{safe_title}.%(ext)s")修改并发片段数:
"--concurrent-fragments", "10", # 默认是 5添加 yt-dlp 参数:
"--write-subs",
"--sub-lang", "zh-CN",-
首次使用
- 显示浏览器完成登录
- 测试单个视频
-
批量下载
- 使用无头模式
- 准备好URL列表文件
-
网络优化
- 稳定的网络环境
- 适当的并发数
-
保存记录
- 导出 JSON 文件
- 便于后续管理
# 快速设置
./setup.sh
# 运行主程序
uv run python main.py
# 运行示例
uv run python examples.py
# 清理下载
rm -rf downloads/*
# 重新登录
rm -rf browser_session/- 查看 README.md 获取完整文档
- 检查 examples.py 获取代码示例
- 提交 Issue 报告问题
开始您的第一次下载吧! 🎉