{"repo":"ysheba257-lgtm/xiaoe-scraper","free":true,"listed":false,"github":"https://github.com/ysheba257-lgtm/xiaoe-scraper","clone":"git clone https://github.com/ysheba257-lgtm/xiaoe-scraper.git","description":"小鹅通课程视频一键批量下载器 —— 附带完整的浏览器爬虫 Skill","language":"Python","stars":10,"topics":["cdp","course-downloader","ffmpeg","m3u8","playwright","python","scraper","video-downloader","xiaoe","xiaoe-tech"],"license":"MIT","category":"scrapers-browser-automation","readme_excerpt":"xiaoe-scraper 小鹅通课程视频一键批量下载器 —— 附带完整的浏览器爬虫 Skill -- 可直接将文件扔给ai（一键启动）！！ 滚动加载、密码保护、超多个视频的课程页面？一行命令，全自动搞定。 --- 目录 - 环境要求 - 安装 - 完整使用流程 - 第一步：启动带远程调试的 Chrome - 第二步：打开课程页面并登录 - 第三步：一键下载（推荐） - 第四步：分步模式（可选） - 命令行参数 - 工作原理 - 整体架构 - 核心流程 - 踩坑经验 - 项目结构 - 常见问题 - 故障排除 - 贡献 - 许可证 --- 环境要求 工具 版本要求 检查命令 ------ ---------- ---------- Python ≥ 3.10 python --version Chrome / Edge 最新版 ffmpeg ≥ 4.0 ffmpeg -version ffmpeg 必须在系统的 PATH 中。可以从 ffmpeg.org 下载，或通过包管理器安装。 Windows 用户推荐： winget install ffmpeg ，一行搞定。 --- 安装 不需要安装任何浏览器扩展。工具通过 CDP 协议（Chrome DevTools Protocol）直接和你手动启动的 Chrome 通信。 --- 完整使用流程 第一步：启动带远程调试的 Chrome Chrome 默认不会对外开放调试接口，需要手动开启。 Windows — 按 Win + R ，输入： macOS — 打开终端： Linux ： Chrome 136 以上版本对默认用户目录会忽略 --remote-debugging-port 。如果上述命令无效，加上 --user-data-dir 参数： 第二步：打开课程页面并登录 在新启动的 Chrome 窗口中： 1. 打开课程链接（例如 https://u3oz5.xetslk.com/s/xQK7I ） 2. 如果需要登录，完成登录 3. 确认页面已显示课程目录 第三步：一键下载（推荐） 工具会自动完成以下操作： - 连接到 Chrome - 自动输入课程密码 - 滚动加载全部课程（包括虚拟滚动加载的隐藏条目） - 提取每个视频的标题和资源 ID - 逐个打开视频页，捕获 m3u8 链接，立即用 ffmpeg 下载 下载完成后，所有 .mp4 文件按 序号 课程标题.mp4 的命名保存到输出目录。 实战示例 ： 第四步：分步模式（可选） 如果你希望先查看课程列表再决定下载哪些，可以分两步操作： 步骤 A — 提取课程元数据 ： 生成的 items.json 包含所有课程的 id 和标题： 步骤 B — 下载视频 ： 你可以在步骤 B 之前编辑 items.json ，删除不需要的视频条目。 --- 命令行参数 参数 默认值 说明 ------ -------- ------ --password , -p \"\" 课程解锁密码 --out , -o ./videos 视频输出目录 --cdp http://localhost:9222 Chrome 远程调试地址 三个子命令： 命令 用途 ------ ------ all 提取 + 下载，一步完成 extract 只提取课程列表，输出到 JSON download 从 JSON 文件批量下载 --- 工作原理 整体架构 核心流程 1. 连接 Chrome — 通过 CDP 连接到已打开的 Chrome，复用你的登录态 2. 自动解锁 — 检测页面是否需要密","default_branch":null,"files":null,"tree":[],"storefront":"/r/ysheba257-lgtm","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/ysheba257-lgtm/xiaoe-scraper/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}