一个 edX 课程下载脚本,改自 edx-dl 项目 ( https://github.com/coursera-dl/edx-dl )。
看起来原来的项目已经无人维护了,按照 edX 官方提供的 API 修改了原来的代码。由于本人比较菜、没怎么写过 python 代码,也顺便删掉了一些看得不顺眼的功能(具体见下)。
首先,你要有一个 edX 的账号,并且你要 enroll 进你想下载的课程里。
然后,在命令行里输入 python edxdlr.py
,后面跟上命令。
两个常用命令:
python edxdlr.py -u USERNAME -p PASSWORD --list-courses
python edxdlr.py -u USERNAME -p PASSWORD COURSEID
其它命令可 python edxdlr.py --help
来查看。
COURSEID 即课程 ID。举个例子,如果你的课程链接是 https://learning.edx.org/course/course-v1:MichiganX+py4e101x+2T2021a/home ,那么课程 ID 就是中间的那一串 course-v1:MichiganX+py4e101x+2T2021a。
需要 python 3.6 或更高环境,以及下列依赖:
可用 pip install -r requirements.txt
安装。
--process k
。--download-m3u8
高清下载--download-m3u8
选项使用 m3u8 方式将下载最高清晰度的视频。如果没有 ffmpeg 来转码,文件夹内将会保留合并后尚未转码的 ts 文件,需使用可解码的播放器(如 VLC)才能播放。
--short-names
短文件名--process k
多进程下载 (testing)--process k
,其中 k 为建立的进程数量。该数值不建议过高,过高的进程数将占用大量内存,并可能有 IP 封禁的风险。这程序会不会记录我的密码? 会,但只在运行时候记住。下次运行还要再输入一次。(你不给也没法登录啊)
访问不了 edx? 这我帮不了你。理论上,如果你网页能直接登录,这个脚本也可以访问。
有课程下不了? 在浏览器里登录账号后,在 dashboard 里确认你的课程符合上面说的课程链接格式,且是 Started 或 Archived。旧格式课程可使用原来的 edx-dl 下载。如果还是下载不了,发个 issue,带上课程链接和报错信息我看看。
一些字幕无法下载?
这是一个已知问题,新版的 edx 字幕的接口有些复杂,我需要更多时间来处理。如果遇到字幕错误导致无法下载,请先暂时不要在下载参数中加上 --download-subtitles
,以确保其它内容正常下载。
其它程序崩溃问题? 任何出错,都先看看浏览器里自己的账号能不能登录、dashboard 能不能看到、课程链接对不对。如果都正常,请发个 issue,带上课程链接和报错信息我看看。
本程序仅提供一种非浏览器方式访问 edX 网站的方法。使用者在使用本程序时需要满足 edX 的使用条款 (Terms of Service | edX),限使用者本人出于个人学习目的使用。任何使用者的不当操作与本程序无关。