返回 Skill 列表
extension
分类: 数据与分析需要 API Key

智慧平台课程下载器

下载国家中小学智慧教育平台课程资源:视频(m3u8→mp4)/课件(PDF→pptx)/教学设计练习(PDF→docx)

person作者: user_73cb5b59hubcommunity

智慧教育平台课程包下载器

下载 basic.smartedu.cn(国家中小学智慧教育平台)的课程包全套资源,并转换成常用格式:

| 资源 | 源格式 | 输出格式 | |---|---|---| | 视频课程 | AES-128 加密 HLS (m3u8) | mp4 | | 课件 | PDF | pptx(整页保真) | | 教学设计 / 学习任务单 / 课后练习 | PDF | docx(文本可编辑) |

触发条件

当用户满足以下任一情况时使用本 skill:

  • 给出类似 https://basic.smartedu.cn/syncClassroom/classActivity?activityId=... 的课程链接
  • 直接提供 activityId
  • 要求「下载智慧平台的课程 / 课件 / 视频 / 教案 / 学习任务单 / 课后练习」

核心约束

  1. 必须拿到 access_token 才能下载文件。资源清单接口本身公开,但所有视频/文档文件托管在私有 CDN,需 X-ND-AUTH 头。token 来自用户已登录的浏览器,无法伪造,需用户配合提供(详见下方)。
  2. token 有时效(数小时)。若下载报 401/清单为空,请用户重新取 token 后重跑。
  3. 不要重写脚本:直接调用 {skill_base}/scripts/download_course.py,通过命令行参数传参,不要为绕开流程另写 ad-hoc 下载代码。
  4. Windows 上请用 WorkBuddy 管理的 Python(如 C:/Users/Administrator/.workbuddy/binaries/python/versions/3.13.12/python.exe)运行;脚本会自动安装所需依赖。

工作流程

第 1 步:从用户处获取两样东西

  • activityId:课程链接里 activityId= 后面的字符串。
  • access_token:引导用户按下方方法从浏览器取得。

第 2 步:获取 access_token(交给用户操作)

请用户在其已登录智慧平台的浏览器中操作:

  1. F12 → Application(应用) → 左侧 Local Storagehttps://basic.smartedu.cn
  2. 找到值里含 access_token 的键,复制其完整 Value(或其中 access_token 字段)
  3. 把字符串发回

若用户愿意用 Console,可用 Snippets 面板运行 token 提取脚本(见 references/api_notes.md 第 3 节)。拿到后保存为文件,例如 token.txt,后续用 --token-file 传入,避免命令行泄露。

第 3 步:运行下载脚本

python "{skill_base}/scripts/download_course.py" \
  --activity-id <activityId> \
  --token-file token.txt \
  --out ./下载输出目录

也可直接 --token <ACCESS_TOKEN>。可选参数:

  • --quality 720|480|360:视频清晰度(默认 720)
  • --no-pdf:不保留平台原始 PDF 副本

脚本会:自动装依赖 → 拉取资源清单 → 下载并转换每个资源 → 打印成功/失败清单。

第 4 步:交付与说明

  • 输出目录结构:<课程名>/视频课程/课件/教学设计/学习任务单/课后练习/,每类含转换后的目标文件 +(默认)原始 PDF 副本。
  • 向用户说明两点限制:
    • 课件 pptx 为「整页图片式」,视觉一致但文字不可直接选中编辑;
    • token 过期后再次下载需重新取。

排错

| 现象 | 处理 | |---|---| | 清单下载 401 / 空 | activityId 错误或 token 失效,重取 token | | 视频失败 | 检查网络;密钥接口需走 signs+sign 流程(脚本已内置,无需手动) | | No module named fitz/Crypto... | 脚本应已自动安装;若沙箱禁联网,手动 python -m pip install PyMuPDF python-pptx python-docx pycryptodome imageio-ffmpeg | | pptx/docx 打开为空 | 平台源 PDF 为扫描图,docx 会退化为嵌图;pptx 不受影响 |

详细接口、鉴权与解密算法见 references/api_notes.md