Courseraの動画と字幕を一括でダウンロードする方法

背景

僕はよくCouseraで授業を受けていますが、動画で視聴すると時間がかかってしまうため、字幕や動画をGPTやClaudeのAPIに投げて要約してもらい必要な箇所だけ動画を見ることで効率的に受講しようと考えています。
その前段として、Couseraの動画と字幕をダウンロードしたいと思います。
そこで、受講中の「Coursera講義」をダウンロードする方法という記事を見かけ試してみたのですが、記事や記事内で参照されているライブラリ(dl_coursera)が古い(最終更新日が3年前)からか、僕の環境ではうまく動作しませんでした。
また、別のライブラリを探してみたらcoursera-dlというライブラリがあったのですが、こちらも古い(最終更新日が3年前)からか、僕の環境ではうまく動作しませんでした。
coursera-dlのissueを辿ると、同じエラーでつまづいている人が多く、このissuecs-dlpというforkライブラリで動くというコメントがあったので試したところうまく動作したので、メモ的に記事にします。

参考リンク

環境

  • macOS Ventura 13.5

  • Python 3.9.18

手順

1. 作業用のディレクトリを作成する

mkdir <PATH_TO_WORKING_DIR>
# 例えば、 mkdir download-cousera-class
cd <PATH_TO_WORKING_DIR>
# 例えば、 download-cousera-class

2. pyenvをインストールする

pyenv --version

もし無ければ以下を実行

brew install pyenv
pyenv --version

3. Pythonをインストールする

pyenv install 3.9.18
pyenv local 3.9.18
python3.9 --version
# -> Python 3.9.18

4. 仮想環境を作成する

python3.9 -m venv venv
source venv/bin/activate

5. cs-dlpをインストールする

pip install cs-dlp
cs-dlp --version
# -> 0.12.0b0

6. CAUTH cookieを取得する

Courseraにアクセスしてログインし、開発者ツールを開く

Applicationタブをクリックする

Cookiesのhttps://www.coursera.orgをクリックする

CAUTHをクリックする

右下に出てきたテキストをコピーして控えておく

7. クラス名を取得する

クラスのページのリンクを取得し、https://www.coursera.org/learn/<CLASS_NAME>/home/welcome の<CLASS_NAME>という箇所をコピーして控えておく

8. いざダウンロード

以下のコマンドの<CAUTH>に先ほど控えておいたCAUTH cookieを入れ、<CLASS_NAME>に先ほど控えておいたクラス名をいれ、実行する

coursera-dl --cauth="<CAUTH>" <CLASS_NAME>

動画や字幕がダウンロードできていることを確認できたらokです。

最後に

メモ的に書いたので、もし動かないとかあればコメントしていただければ幸いです。

この記事が気に入ったらサポートをしてみませんか?