78 lines
3.0 KiB
Markdown
78 lines
3.0 KiB
Markdown
# 自动刷课脚本 (Python)
|
||
|
||
这是一个用于自动模拟观看 `zjbc.cjnep.net` 平台课程视频的 Python 脚本。它通过模拟发送心跳包的方式,自动完成课程视频的学习进度。
|
||
|
||
## 功能特点
|
||
|
||
- **自动识别课程**:自动抓取账户下的课程列表和视频章节。
|
||
- **断点续传**:本地记录播放进度 (`progress.json`),中断后可继续播放。
|
||
- **智能跳过**:自动跳过已完成的视频(基于 XML 状态或本地记录)。
|
||
- **时长检测**:如果 XML 配置中缺少视频时长,会自动调用 `ffprobe` 获取实际时长。
|
||
- **防掉线机制**:心跳请求失败自动重试。
|
||
- **极速模式**:支持自定义心跳间隔和每次增加的进度时间(默认配置较为激进,可按需调整)。
|
||
|
||
## 环境要求
|
||
|
||
1. **Python 3.6+**
|
||
2. **FFmpeg 工具集**:脚本依赖 `ffprobe` 来获取视频时长。
|
||
- 请前往 [FFmpeg 官网](https://ffmpeg.org/download.html) 下载。
|
||
- 解压并将 `bin` 目录添加到系统的环境变量 `PATH` 中。
|
||
- 在终端输入 `ffprobe -version` 验证是否安装成功。
|
||
3. **Python 依赖库**:
|
||
```bash
|
||
pip install requests
|
||
```
|
||
|
||
## 使用说明
|
||
|
||
### 1. 获取 Cookie
|
||
|
||
1. 登录您的课程平台账号。
|
||
2. 进入任意一个视频播放页面。
|
||
3. 按 `F12` 打开开发者工具,切换到 **Network (网络)** 选项卡。
|
||
4. 找到相关的请求,在 **Request Headers (请求头)** 中找到 `Cookie` 字段。
|
||
5. 复制整个 Cookie 字符串。
|
||
|
||
### 2. 配置脚本
|
||
|
||
打开 `main.py` 文件,找到以下代码行,将 `cookie` 变量的值替换为您刚才复制的内容:
|
||
|
||
```python
|
||
# [警告] 下方的 cookie 包含敏感登录信息,请勿泄露给他人!
|
||
cookie="您的Cookie字符串粘贴在这里"
|
||
```
|
||
|
||
您也可以根据需要调整以下配置:
|
||
|
||
```python
|
||
# [配置] 心跳间隔(秒)
|
||
HEARTBEAT_INTERVAL = 1
|
||
|
||
# [配置] 每次心跳增加的进度时间(秒)
|
||
ADD_TIME = 120
|
||
```
|
||
|
||
### 3. 运行脚本
|
||
|
||
在终端中运行:
|
||
|
||
```bash
|
||
python main.py
|
||
```
|
||
|
||
- **首次运行**:脚本会自动抓取您的课程列表和视频信息,并保存到 `course_items.json`。
|
||
- **后续运行**:脚本会优先读取本地缓存的课程信息。如果需要重新抓取,请删除 `course_items.json` 文件。
|
||
|
||
## 文件说明
|
||
|
||
- `main.py`: 核心脚本文件。
|
||
- `course_items.json`: 缓存的课程和视频 ID 列表。
|
||
- `progress.json`: 本地存储的视频播放进度,用于断点续传。
|
||
- `course_ids.json`: 临时缓存的课程 ID 列表。
|
||
|
||
## 注意事项
|
||
|
||
- **Cookie 有效期**:Cookie 可能会过期,如果脚本提示认证失败或无法获取数据,请重新获取并更新 Cookie。
|
||
- **风险提示**:默认的心跳间隔较短,建议根据实际情况适当延长 `HEARTBEAT_INTERVAL` 以降低风险。
|
||
- **免责声明**:本脚本仅供学习和研究使用,请勿用于商业用途或违反平台规定的行为。作者不对使用本脚本导致的任何后果负责。
|