Skip to content

用于下载西安电子科技大学录直播平台课程视频的工具

License

Notifications You must be signed in to change notification settings

lsy223622/XDUClassVideoDownloader

Repository files navigation

XDUClassVideoDownloader

GitHub repo size GitHub License GitHub Repo stars

GitHub Tag GitHub Release Date GitHub Downloads (all assets, all releases)

Static Badge Static Badge Static Badge

🎉🎉 2.0 大版本更新 增加 Automation.py 随时自动下载全学期课程!🎉🎉

使用须知

  • 请先阅读此 README 再使用本项目。
  • 如果遇到问题可以联系上面的 QQ。
  • 欢迎提出建议和改进意见,能 PR 的话就更好啦。
  • 如果觉得好用请给个 Star 哦。

项目简介

  • 本项目是一个用于下载西安电子科技大学录直播平台课程视频的工具。

  • 只需运行 XDUClassVideoDownloader.py,输入任意一节课的 liveId,即可自动下载 单节课 / 单集(半节课) / 该课程的所有视频

    liveId 是课程直播的唯一标识,可以在课程直播页面的 URL 中找到。如:http://newesxidian.chaoxing.com/live/viewNewCourseLive1?liveId=12345678 中的 12345678

  • 同时会保存选择下载的范围内所有视频的 m3u8 链接到对应的 csv 表格中,方便使用其他方式下载。

  • 2.0 版本增加 Automation.py,只需输入超星 UID,即可自动下载本学期目前所有课程。

    超星 UID 可以在 chaoxing.com 的 cookies 中找到,UID 的值就是超星 UID。

  • 使用 Automation.py 下载时会将 UID 保存到 config.ini 文件中,下次运行时会自动读取,无需再次输入。

  • 可以在 config.ini 文件中选择学期和设置是否下载某一门课。

  • 下载时会自动检查之前是否下载过同一节课,如果已经下载则会跳过。所以可以在一学期中的多个时候随时下载新增的录播视频。

  • 下载的视频按照课程和时间整理,下载多个课程的视频也不会冲突。

  • 文件夹和 csv 表格命名规则:年份-课程号-课程名。

  • 课程视频命名规则:课程号-课程名-年月日-周次-节号-视频来源。

使用方法

Windows 用户看这里!

  • 可以从 Releases 直接下载打包好的 exe 程序,无需以下所有准备步骤,打开 XDUClassVideoDownloader.exe 后输入 liveId,或打开 Automation.exe 后输入 UID,下面的选项参考下方 使用 部分。

使用前的准备步骤

  1. 安装 Python(我用的 3.11.7)。Python 官网下载页面

    • 检查 Python 版本:
    python --version
  2. 在命令行中输入以下命令来使用 pip 安装依赖:requests, tqdm如果缺别的依赖那就装别的依赖

    pip install requests tqdm

XDUClassVideoDownloader.py

  1. 下载本项目。
  2. 运行程序:
    • Windows 用户:双击 windows_run.bat
    • Linux 用户:运行 XDUClassVideoDownloader.py
  3. 输入 liveId 并回车。
  4. 输入 y/n/s 并回车。
    • y:下载 liveId 对应单节课的视频。
    • n:下载这门课程的所有视频。
    • s:下载 liveId 对应的单集(半节课)视频。
    • 不输入直接回车:效果同 y
  5. 输入 y/n 并回车。
    • y:合并上下半节视频。
    • n:不合并上下半节视频。
    • 不输入直接回车:效果同 y
  6. 等待程序执行结束,下载的视频会保存在同目录下对应的文件夹中。

命令行参数

python XDUClassVideoDownloader.py [LIVEID] [-c COMMAND] [-s] [--no-merge]
  • LIVEID (可选):课程的 liveId,不输入则采用交互式方式获取。
  • -c COMMAND (可选):自定义下载命令。使用 {url}, {save_dir}, {filename} 作为替换标记。
  • -s (可选):仅下载单节课视频(-ss:半节课视频)。
  • --no-merge (可选):不合并上下半节课视频。

命令行参数对 Releases 中打包的 exe 程序也有效,在运行 exe 程序时可以直接在后面加上参数。

示例
  • 在 Windows 上运行打包的 exe 使用默认的下载命令仅下载单节课视频

    XDUClassVideoDownloader.exe 1234567890 -s
  • 在 Linux 上运行源码使用自定义下载命令下载一门课程的所有视频

    python XDUClassVideoDownloader.py 1234567890 -c './vsd-upx save {url} -o {save_dir}\{filename} --retry-count 32 -t 16'

Automation.py

  1. 下载本项目。
  2. 运行程序:
    • Windows 用户:双击 automation.bat
    • Linux 用户:运行 Automation.py
  3. 第一次运行:输入 UID 并回车。
  4. 第一次运行会将 UID 和本学期所有课程保存到 config.ini 文件中,可以在配置文件中选择学期和设置是否下载某一门课,编辑完后保存配置文件,在程序窗口中按回车键继续。
  5. 再次运行时如果已存在配置文件:无需输入 UID,直接运行。
  6. 等待程序执行结束,下载的视频会保存在同目录下对应的文件夹中。
  7. 如果变换学期或想重新获取所有课程,删除 config.ini 文件后重新运行程序即可。

命令行参数

python Automation.py [-u UID] [-y YEAR] [-t TERM]
  • -u UID (可选):用户 ID,不输入则采用交互式方式获取。
  • -y YEAR (可选):年份,不输入则采用当前年份。
  • -t TERM (可选):学期,不输入则采用当前学期。

命令行参数对 Releases 中打包的 exe 程序也有效,在运行 exe 程序时可以直接在后面加上参数。

示例
  • 在 Windows 上运行打包的 exe 使用默认的下载命令仅下载单节课视频

    Automation.exe -u 1234567890 -y 2024 -t 1

注意事项

  • 使用本项目下载的视频仅供个人学习使用,请勿传播或用于商业用途。
  • 开发者不对使用本项目导致的任何问题负责。
  • 请遵守相关法律法规,下载视频时请遵守学校相关规定。

使用的二进制文件

  • vsd-upx.exe, vsd-upx
  • vsd.exe, vsd 来自 clitic/vsd
  • 使用 upx 压缩,来自 upx/upx

各种语言的版本

欢迎重写😋

语言 项目地址
Python lsy223622/XDUClassVideoDownloader
Rust canxin121/live_class_downloader
Java NanCunChild/XDUClassVideoDownloader