课程视频下载器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_b22a52ba/course-video-downloader。
技能介绍
要解决什么问题
多数网课平台的付费或登录视频只能在线观看:浏览器里播放流畅,想离线保存却很麻烦。手动逐个下载动辄几小时,通用下载工具又常被登录墙和动态加载的播放器挡在门外。这个技能的目标是跳过中间环节——不录屏,而是让浏览器像真人一样打开课程页面,拿到视频源文件的真实地址,再用 Python 直接下载。
它是如何工作的
核心流程分六步,全程由 Agent 驱动 browser 工具完成:
- 打开页面:接收课程链接后用
browser导航打开 - 检测登录墙:分析页面快照中的"登录""请先登录"等文本或登录表单;命中时通过
browser.request_manual()弹出浏览器交还控制权,等你手动登录完成后再继续 - 分析页面结构:定位章节列表、
<video>标签和 iframe 嵌入,必要时逐个点击展开折叠的章节 - 提取视频直链:按页面情况选择四种策略之一:
- video 标签的 src 直接为 mp4/webm/ogg
- 从 Network 请求或页面 JS 变量中找到 m3u8 地址
- 注入 XHR/Fetch 拦截器,捕获视频数据加载时的请求 URL
- 进入 iframe 的文档上下文提取
- 下载视频:m3u8 流用
ffmpeg合并,普通直链用 Python 下载 - 批量处理:按目录顺序逐章节抓取,记录已下载列表,支持断点续传
下载文件统一保存到 output/course_videos/,命名格式为 {序号}_{章节标题}.mp4,同时生成 download_log.txt 记录每个文件的下载状态和失败原因。
适用边界与注意点
- 无法录屏:浏览器自动化没有录屏能力,但直链下载画质更好、速度更快
- DRM 加密无法绕过:blob URL 或 Widevine/PlayReady 加密流只能建议用 OBS 手动录屏
- 防盗链:网易云课堂等平台需要正确的
Referer和Cookie才能下载成功 - 平台差异:腾讯课堂需要 cookie 鉴权,B站可用 BV 直链,超星学习通需进入 iframe 上下文,各家适配程度不同
使用场景
- 下载付费网课视频:用户购买的腾讯课堂课程有登录墙和m3u8流,需绕过验证并下载直链,直链画质更好
- 批量保存课程章节视频:某超星学习通课程有20个章节,需逐个进入章节页提取视频并断点续传,避免重复下载
- 提取B站课程视频直链:用户想下载B站付费课程视频,技能通过解析BV号直链并直接下载,不依赖录屏工具
- 下载iframe嵌入的课程视频:学堂在线课程视频嵌在iframe内,需进入iframe文档上下文提取真实视频地址
适合人员
- 上网课的学生:购买平台课程后想离线观看,无录屏工具且需要画质清晰的视频文件
- 整理课程资料的教育机构员工:需批量下载多个平台的课程视频,要求断点续传避免重复工作
- 喜欢收藏网课的学习者:常收集超星、学堂在线等平台的课程,不同平台页面结构差异大
- 研究课程内容的分析师:需要离线分析课程视频,要求获取原始文件而非录屏后的压缩视频