# 自动刷课脚本 (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` 以降低风险。 - **免责声明**:本脚本仅供学习和研究使用,请勿用于商业用途或违反平台规定的行为。作者不对使用本脚本导致的任何后果负责。