【Windows + Docker】Courseraの教材をダウンロードする
Courseraでは受講しているコースの教材をダウンロードすることができます。
各レクチャーのページの「Downloads」タブからそのレクチャーの教材をダウンロードできますが、コースの教材をすべてダウンロードしたい場合には個別でするのは現実的ではありません。

教材をダウンロードするためのプログラムとしてはcoursera-dlがありますが、最終更新日が古くうまく動きませんでした。
そこで、このリポジトリのフォークであるcoursera-helperを使います。
ドキュメントにはPythonライブラリをインストール&実行する方法とDockerで行う方法が記載されています。今回私はDockerで行う方法でうまくいきましたので記事にします。(ローカルにPythonをインストールしていないため前者は試していません)
環境
- Windows11
- Dockerインストール済み
- Python未インストール
手順
基本的にはリポジトリのREADMEの通りにすれば良いですが、一部私のWindows環境では動かない部分がありましたので修正しています。
CAUTHの取得
プログラムから教材をダウンロードするために認証をする必要があります。現在、Dockerで行う方法ではユーザ名とパスワードで認証できないようなので、CAUTHという値を取得する必要があります。
Courseraにログインし、F12で開発者ツールを開きます。
下の画像のように、Applicationタブ⇒Cookies⇒CourseraのURLを開き、CAUTHというNameを見つけます。見つけたら、対応するValueをコピーします。

実行
次に、教材を保存したいフォルダを決めます。コマンドプロンプトを開き、そのフォルダに移動します。Dockerを実行するとカレントディレクトリにダウンロードした教材が保存されます。

コマンドプロンプトに以下のコマンドを入力します。リポジトリにあるコマンドでは%cd%
ではなく$(pwd)
でローカルのディレクトリを指定していますが、Windows環境のためかうまく動かなかったので、変更しています。
docker run --rm -it -v "%cd%:/courses" csyezheng/coursera-helper --cauth CAUTHの値 コースの名前
コースの名前は、Courseraでコースを開いたときのURLから取得できます。画像の青い部分です。

Enterを押して実行します。初めて実行するときはDockerイメージが存在しないため、まずDockerイメージをPullする処理が入ります。その後、教材がダウンロードされます。
フォルダを見ると教材がダウンロードされています。
