Compare commits

..

10 Commits

Author SHA1 Message Date
3e3f08222b 1 2026-03-13 13:48:24 +08:00
f632764ab1 1 2026-03-13 13:38:49 +08:00
35d9e49e81 1 2026-03-13 13:28:40 +08:00
07672c0d2f Merge branch 'main' of gitea.aizhangz.shop:chuyuxun/XueXiTongSrtDownloads 2026-03-10 14:47:00 +08:00
7ed465d608 1 2026-03-10 14:37:23 +08:00
4f348f03ca 1 2026-03-10 14:13:12 +08:00
1f952ee770 1 2026-03-10 13:51:29 +08:00
13086e5e54 1 2026-03-10 13:43:29 +08:00
0f4c1e398c Create 1.txt 2026-03-10 13:39:01 +08:00
ChuXun
4566dff957 1 2026-03-10 13:34:35 +08:00
8 changed files with 68 additions and 46 deletions

0
3.md
View File

107
README.md
View File

@@ -1,54 +1,83 @@
# Chaoxing 课程字幕批量下载工具 # Chaoxing 课程字幕下载与清洗工具
本项目包含自动化脚本可批量提取超星课程视频字幕SRT支持 Cookie 配置和多课程处理 本项目用于从超星学习通课程页面批量提取字幕信息并下载 `SRT`,再转换为纯文本,方便后续整理复习资料
## 使用方法 ## 当前实际流程
`学生学习页面.html` + `.env` -> `srt_downloader.py` -> `subtitles/*.txt`(字幕索引JSON) + `srt/*.srt` -> `handle.exe`(提取正文) -> `SrtToTxt.bat`(改后缀) -> `docs/清洗提示词.md`
### 1. 环境准备 ## 环境要求
- 安装 Python 3.x - Python 3.9+
- 安装依赖包: - Windows`handle.exe``SrtToTxt.bat` 为 Windows 工具)
- Python 依赖:
```bash ```bash
pip install requests beautifulsoup4 python-dotenv pip install requests beautifulsoup4 python-dotenv
``` ```
### 2. 配置 Cookie ## 配置
- 在项目根目录下创建 `.env` 文件(已自动生成),内容如下 在项目根目录准备 `.env`
```env
CHAOXING_COOKIE=你的超星登录Cookie
```
- 如 Cookie 过期或更换账号,直接修改 `.env` 文件即可。
### 3. 下载课程 HTML ```env
- 用浏览器保存你要下载字幕的课程页面(建议保存课程目录页或视频列表页),如 `course.html`。 CHAOXING_COOKIE=你的完整Cookie字符串
- 将 HTML 文件放到脚本所在目录。 COURSE_URL=https://mooc1.chaoxing.com/mooc-ans/mycourse/studentstudy?courseId=...&clazzid=...&cpi=...
```
### 4. 提取字幕 JSON 链接 说明:
- 运行 `subtitle_downloader.py`,自动解析 HTML提取所有字幕 JSON 链接,保存为 `subtitles/课程名.txt` - `CHAOXING_COOKIE` 用于访问课程接口Cookie 失效后需要更新
```bash - `COURSE_URL` 用于自动解析 `courseId/clazzid/cpi`。
python subtitle_downloader.py - 如果项目根目录已有 `学生学习页面.html`,脚本会优先使用本地 HTML如果没有会尝试用 `COURSE_URL` 在线下载页面。
```
- 如需处理其他课程,只需更换 HTML 文件并重新运行脚本。
### 5. 下载 SRT 字幕文件 ## 使用步骤
- 运行 `srt_fetcher.py`,自动读取 `subtitles/` 下所有 `.txt`,下载对应 SRT 文件到 `srt/` 文件夹。
```bash
python srt_fetcher.py
```
## 文件说明 ### 1) 获取课程页面(两种方式任选其一)
- `downloader.py`:通用文件下载脚本(如需下载其他资源可用) - 方式 A推荐在浏览器中保存课程目录页为 `学生学习页面.html`,放到项目根目录。
- `subtitle_downloader.py`:解析课程 HTML提取字幕 JSON 链接 - 方式 B只配置 `.env` 中的 `COURSE_URL`,由脚本自动下载页面。
- `srt_fetcher.py`:批量下载 SRT 字幕文件
- `.env`:存储 Cookie ### 2) 下载字幕索引和 SRT
- `subtitles/`:保存每个课程的字幕 JSON 链接 在项目根目录执行:
- `srt/`:保存下载的 SRT 字幕文件
```bash
python srt_downloader.py
```
执行后会生成:
- `subtitles/*.txt`:每节课对应的字幕轨道 JSON通常包含 `url` 字段)
- `srt/*.srt`:下载后的字幕文件
### 3) 提取字幕正文(可选)
进入 `srt/` 目录运行 `handle.exe`(或编译 `sourse/handle.cpp`
- 输入:`*.srt`
- 输出:`handled_*.srt`(仅保留字幕文本行)
### 4) 批量改后缀为 txt可选
在包含 `*.srt` 的目录运行:
```bat
SrtToTxt.bat
```
脚本会把当前目录下 `.srt` 批量重命名为 `.txt`。
### 5) 进一步清洗整理(可选)
可参考:
- `docs/清洗提示词.md`
用于将字幕整理成适合开卷考试复习的结构化讲义。
## 目录说明
- `srt_downloader.py`:主脚本(解析课程章节、拉取字幕索引、下载 SRT
- `subtitles/`:每节课字幕索引 JSON 文本
- `srt/`:字幕文件与处理结果
- `sourse/handle.cpp``handle.exe` 对应源码
- `SrtToTxt.bat`:批量重命名后缀
- `学生学习页面.html`:课程页面样本
- `学生学习页面_files/`:页面依赖资源(含 `cards.html`
- `docs/清洗提示词.md`:后续文本清洗提示词模板
## 常见问题 ## 常见问题
- Cookie 失效:请重新获取并更新 `.env` 文件 - `subtitles` 某些文件只有 2 字节或为空:通常是该章节无字幕、权限不足或 Cookie 过期。
- 页面结构变化:如遇解析失败,请反馈或自行调整 `subtitle_downloader.py` 的解析逻辑 - 下载失败 / 返回登录页:优先检查 `CHAOXING_COOKIE` 是否可用。
- SRT 下载失败:检查 Cookie 是否有效,或字幕 JSON 链接是否正确 - 章节解析不到:课程页面结构变化时,需调整 `srt_downloader.py` 中 `parse_knowledge_entries` 的选择器逻辑。
- 文件名异常:脚本会自动替换 Windows 非法文件名字符。
## 手动下载每一章节第一篇内容!!
## 免责声明 ## 免责声明
脚本仅供学习交流使用,请勿用于任何商业或非法用途。 项目仅供学习与技术交流,请遵守平台服务条款及相关法律法规,不得用于非法或商业侵权用途。

Binary file not shown.

BIN
tools.zip

Binary file not shown.

View File

@@ -1,7 +0,0 @@
学生学习页面
cookie
url
py
handle.exe
srtTotxt.bat
清洗提示词.md