智慧教育教材批量下载(扫码/千本/自动归档)

SKILL教育学习
教育学习 未标注权限 许可证不明确
安装这个技能

高效批量下载国家中小学智慧教育平台(basic.smartedu.cn)教材:一次扫码登录即可拉取小学、初中、高中、五·四学制全部电子课本PDF与英语听力音频MP3,覆盖语、数、英、物、化、生、史、地、政九大学科,及人教版、统编版、北师大版、苏教版、外研社版、译林版、湘少版、PEP、冀教版等常见版本。特色:扫码登录免验证、按学段/学科/版本自动归档、断点续传、节流防封、实测批量1093本。学生预习、教师备课、家长辅导、网课学习皆适用。关键词:智慧教育、电子课本、教材PDF、英语听力、MP3下载、学习资料、textbook。

一句话选型结论

按资料字段整理

智慧教育教材批量下载(扫码/千本/自动归档)是教育学习类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类教育学习 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_bade459d/smartedu-downloader
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

教育学习
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_bade459d仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791732056
正文体量8.3 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
讲解知识点

按水平把知识点讲清楚。

出练习题

按章节生成练习与答案。

制定学习计划

按目标和时间排学习节奏。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在教育学习场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
智慧教育教材批量下载(扫码/千本/自动归档)当前 未标注权限 未标注 未标注 未标注 有
食谱创建课堂课程 未标注权限 GitHub 仓库 25.5 万 Codex、Claude、Cursor 有
语言学习 联网访问 ClawHub 市场 23.6 万 OpenClaw 有
learning 效率 只读 ClawHub 市场 19.2 万 OpenClaw 有
学习习惯 未标注权限 ClawHub 市场 10.2 万 OpenClaw 有
日语家教 只读 ClawHub 市场 8.2 万 OpenClaw 有

SKILL.md 全文

8.3 KB
模型实际读到的说明书原文,来自技能仓库

智慧教育平台教材下载器 (smartedu-downloader)

从 国家中小学智慧教育平台(basic.smartedu.cn)下载教材资源:
- 听力音频(MP3,如英语教材的 Listening)
- 教材电子版(PDF 本体)

背景 / 为什么需要登录

  • 平台的资源清单 API 无需登录即可访问,但 2024 年 8 月后,实际文件 CDN(r*-ndr-private.ykt.cbern.com.cn)需要 X-Nd-Auth 鉴权头才能下载。
  • 该鉴权头由登录后 token 里的 access_token + mac_key 通过 HMAC-SHA256 生成。
  • 登录会触发腾讯滑块验证码,无法自动破解。本版支持两种方式:
  • 扫码登录(推荐):不设账号密码,浏览器弹出后用户用手机 App 扫码即完成登录,无需拖滑块。
  • 账号登录:脚本自动填账号密码 + 用户手动拖动滑块。

使用流程

1. 收集参数(向用户询问)

必需:
- 一个或多个教材链接(https://basic.smartedu.cn/tchMaterial/detail?...contentId=<CID>...)

从每个链接的 URL 中提取 contentId 参数值作为 cid。账号密码可选(不提供则扫码登录)。

2. 先探测教材类型(无需登录,推荐先做)

在真正下载前,先用文件服务器镜像确认每个教材是「听力音频」还是「纯PDF」,以及标题,便于给用户预告:

node -e '
const CID="<contentId>";
(async()=>{
  for (const s of ["s-file-1","s-file-2","s-file-3"]) {
    try {
      const r = await fetch(`https://${s}.ykt.cbern.com.cn/zxx/ndrv2/resources/tch_material/details/${CID}.json`);
      if(!r.ok) continue;
      const d = await r.json();
      const hasPdf=(d.ti_items||[]).some(it=>it.ti_format==="pdf"||it.lc_ti_format==="pdf");
      console.log("标题:", (d.global_title&&d.global_title["zh-CN"]), "| PDF:", hasPdf);
      break;
    } catch(e){}
  }
  const a = await (async()=>{for(const s of ["s-file-1","s-file-2","s-file-3"]){try{const r=await fetch(`https://${s}.ykt.cbern.com.cn/zxx/ndrs/resources/${CID}/relation_audios.json`);if(r.ok)return await r.json();}catch(e){}}return[];})();
  console.log("听力数量:", Array.isArray(a)?a.length:0);
})();
'

3. 确保依赖就绪

脚本依赖 playwright(需已安装 chromium 浏览器)。检查:

node -e "require('playwright'); console.log('playwright OK')"

若缺失,需在隔离的 node workspace 安装:npm i playwright && npx playwright install chromium(按运行环境的隔离规则调整路径与 NODE_PATH)。

4. 运行下载脚本

所有参数通过环境变量传入 scripts/smartedu_downloader.js:

变量 说明
SMARTEDU_PHONE / SMARTEDU_PASS 可选。提供则自动填账号密码;不提供则纯扫码登录(推荐)
SMARTEDU_JOBS JSON 数组字符串(可选,与 JOBS_FILE 二选一)
SMARTEDU_JOBS_FILE JSON 数组文件路径(推荐,清单较大时避免 env 参数过长)
SMARTEDU_OUTPUT_DIR 输出根目录(默认 ./smartedu_downloads)
SMARTEDU_MODE audio|pdf|auto(默认 auto:有听力则下听力,否则下PDF)
SMARTEDU_BATCH_DELAY_MS 每本之间最小间隔,默认 3000(节流,保护账号)
SMARTEDU_COOLDOWN_EVERY 每 N 本后冷却,默认 10
SMARTEDU_COOLDOWN_MS 冷却时长,默认 15000

jobs 元素结构:{"cid":"<contentId>","name":"<可选,文件名>","dir":"<可选,子目录如 小学/英语/人教版>"}。
- name 省略时自动用教材官方标题命名。
- dir 用于按 学段/学科/版本 分子目录输出;省略则平铺到输出根目录。
- 断点续传:目标文件已存在且大小合理时自动跳过,可随时中断重跑。

示例(扫码登录 + 从文件读清单 + 按子目录输出):

SMARTEDU_OUTPUT_DIR="/输出/目录" SMARTEDU_MODE="pdf" \
SMARTEDU_JOBS_FILE="/路径/jobs.json" \
NODE_PATH="<node_modules 路径>" node scripts/smartedu_downloader.js

jobs.json 示例:

[
  {"cid":"b7ca9536-ccd7-a4db-56b3-971645c54515","dir":"小学/英语/人教版"},
  {"cid":"540ac93d-67fc-4353-9e49-1ef20d02b5a4","dir":"高中/数学/人教A版"}
]

也可用环境变量直接传小清单:

SMARTEDU_PHONE="手机号" SMARTEDU_PASS="密码" \
SMARTEDU_MODE="auto" \
SMARTEDU_OUTPUT_DIR="/输出/目录" \
SMARTEDU_JOBS='[{"cid":"b7ca9536-ccd7-a4db-56b3-971645c54515"}]' \
NODE_PATH="<node_modules 路径>" node scripts/smartedu_downloader.js

重要:脚本以前台方式运行(headless:false),会弹出真实浏览器窗口。运行后提示用户:
- 若为扫码登录:> 请用手机 App 扫码登录(也可点「登录」后拖滑块),登录成功后页面自动跳转,脚本自动取 token 并下载。
- 若为账号登录:> 浏览器已打开,账号密码已自动填好。请你:1. 点击蓝色「登录」按钮 → 2. 拖动滑块完成验证码 → 3. 等待自动跳转。

脚本最多等待 6 分钟让用户完成登录。不要用后台方式运行,否则无法观察进度、任务易丢失。

5. 校验结果

下载后校验文件完整性:
- MP3:文件头为 ID3(494433) 或帧头 fffb/fff3,大小 > 1KB
- PDF:文件头 %PDF-,末尾 1024 字节内含 %%EOF

然后用 present_files 把输出目录展示给用户。

关键技术细节(供排错)

  • token 存储位置:登录后写入 localStorage,key = ND_UC_AUTH-e5649925-441d-4a53-b525-51a2f1c4e0a8&ncet-xedu&token
  • token 是嵌套结构:{value:"<json字符串>", expire:...},真正的 access_token/mac_key 在 value 里,需先 JSON.parse 外层再解包 .value(脚本已处理)。
  • X-Nd-Auth 生成:MAC id="{access_token}",nonce="{ts}:{rand}",mac="{HMAC_SHA256(mac_key, "{nonce}\n{GET}\n{host}\n{path}\n")}"(mac 为 hex)
  • 登录页表单(账号登录):手机号 #username,密码 #tmpPassword,协议勾选 #agreementCheckbox
  • 常见坑1:轮询时若用户还在 auth 域名(登录页),不能强制 page.goto 跳转,否则验证码界面被冲掉,用户无法操作。脚本仅在离开 auth 域名后才检查/跳转。
  • 常见坑2:用户扫码很快时,自动填账号密码可能失败(页面已跳转)。脚本已将自动填字包在 try/catch 中,失败不中断,直接进入取 token 流程。
  • 常见坑3:有的教材(非英语学科,如语文/数学/道法/历史/地理)没有听力音频(relation_audios 为 0),此时应下 PDF 本体。auto 模式会自动处理。
  • 资源清单 API:
  • 教材详情(含PDF):https://s-file-{1,2,3}.ykt.cbern.com.cn/zxx/ndrv2/resources/tch_material/details/{CID}.json
  • 听力清单:https://s-file-{1,2,3}.ykt.cbern.com.cn/zxx/ndrs/resources/{CID}/relation_audios.json
  • 文件 CDN:r{1,2,3}-ndr-private.ykt.cbern.com.cn(需鉴权)
  • token 有效期内可连续下载多个资源,无需重复登录。
  • 全站目录(无需登录):https://s-file-1.ykt.cbern.com.cn/zxx/ndrs/resources/tch_material/version/data_version.json → 4 个分片 part_100..103.json(共约 3600+ 条,含每条 contentId/标题/学科/版本标签),可用于批量生成 jobs。

安全与隐私

  • 账号密码(如使用)仅用于当次登录,通过环境变量传入,不要写入任何文件或日志。
  • 下载所得为教材公开资源,供用户个人学习使用。

常见问题

5 问
答案由本站依据条目字段整理
智慧教育教材批量下载(扫码/千本/自动归档)怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_bade459d/smartedu-downloader。安装方式为未标注。装完刷新技能列表或重开客户端。

智慧教育教材批量下载(扫码/千本/自动归档)支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

智慧教育教材批量下载(扫码/千本/自动归档)权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

智慧教育教材批量下载(扫码/千本/自动归档)收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

智慧教育教材批量下载(扫码/千本/自动归档)用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。