これは、最新の Python および最新の coursera.org で動作する coursera-dl のフォークであり、機能とパッチが追加されています。
Coursera ダウンローダー
導入
特徴
免責事項
インストール手順
Unix システムの代替インストール方法
ArchLinux
依存関係を自分でインストールする
すべてのオペレーティング システムで推奨されるインストール方法
不足している依存関係をインストールする別の方法
ドッカー
窓
Coursera でアカウントを作成する
スクリプトの実行
ダウンロードを再開する
トラブルシューティング
中国問題
このページには 0 個のセクションと 0 個のレクチャーが見つかりました
ダウンロードのタイムアウト
Windows: プロキシのサポート
Windows: プロセスの作成に失敗しました
SSLError: [Errno 1] _ssl.c:504: エラー:14094410:SSL ルーチン:SSL3_READ_BYTES:sslv3 アラート ハンドシェイクの失敗
MathJax.jsの代替 CDN
問題の報告
問題の提出/バグの報告
フィードバック
接触
このスクリプトを使用すると、Coursera クラスの講義リソース (ビデオ、ppt など) を簡単に一括ダウンロードできます。 1 つ以上のクラス名を指定すると、講義ページから週名とクラス名を取得し、関連資料を適切な名前のファイルとディレクトリにダウンロードします。
この作品はもともと [youtube-dl][3] から部分的にインスピレーションを得たもので、私はこれによってカーン アカデミーからのものなど、他の多くの優れたビデオをダウンロードしました。
あらゆる種類のコース (つまり、「古いプラットフォーム」/時間ベースのコースと「新しいプラットフォーム」/オンデマンド コース) のサポート。
ほとんどのインターフェイス (Android デバイスの VLC や MX ビデオなど) で適切に表示および並べ替えられるように、意図的に詳細な名前が付けられています。
正規表現ベースのセクション (週) と講義名フィルターにより、特定のリソースのみをダウンロードします。
必要なリソース タイプを取得するためのファイル形式拡張子フィルター。
デフォルトの引数はcoursera-dl.confファイルからロードされます。
コア機能は Linux、Mac、Windows でテストされています。
cs-dlp 、Coursera がダウンロードへのアクセスを許可する資料のみに使用されることを目的としています。
利用規約に違反する使用は推奨しません。関連する抜粋:
「[...] Coursera は、サイトにアクセスして使用するための個人的、非独占的、譲渡不可のライセンスをお客様に付与します。お客様は、個人的、非商業的使用の場合にのみ、サイトから素材をダウンロードできます。その他の方法でコピーすることはできません。 、いかなるマテリアルも複製、再送信、配布、出版、商業利用、その他の方法で転送することはできません。また、マテリアルの改変や派生作品の作成も禁止されています。」
cs-dlpは、Python 3 と、対象のクラスに登録されている Coursera アカウントが必要です。
注: cs-dlp Python 2 と互換性がありません。
どのオペレーティング システムでも、Python 実行可能ファイルの場所がPATH環境変数に追加されていることを確認し、依存関係をインストールしたら (次のセクションを参照)、基本的な使用法として、スクリプトをメイン ディレクトリから呼び出す必要があります。 project を作成し、その先頭にpythonという単語を追加します。 このドキュメントの「スクリプトの実行」セクションを参照すると、プログラムのより高度な機能を使用することもできます。
注: cs-dlpで使用する特定のコースのコードの名誉に (手動で) すでに同意している必要があります。
コマンド ライン (できれば仮想環境) から次のコマンドを発行します。
git clone https://github.com/raffaem/cs-dlp cd cs-dlp python -m pip install --user .
注 1:インストールされたモジュールは、システムにインストールされている他の Python アプリケーションと競合する可能性があるため、パッケージをマシンにグローバルに (つまり、root/管理者権限で) インストールしないことを強くお勧めします。 pip installには--userオプションを使用することをお勧めします。
cs-dlp現在 AUR パッケージがありません。お手伝い大歓迎!
まだアカウントをお持ちでない場合は、[Coursera][1] アカウントを作成してクラスに登録してください。クラスのリストについては、https://www.coursera.org/courses を参照してください。
Coursera で認証するには、CAUTH Cookie が必要です。
現在サポートされている方法は 2 つあります。cs cs-dlpにブラウザから自動的に取得させる方法と、手動で渡す方法です。
自動方法
Google Chromeのchrome
chromium
opera
opera_gx
brave
edge
vivaldi
firefox
librewolf
safari
お気に入りのブラウザを開いて、Coursera にログインします。
--cauth-auto browserオプションを指定してcs-dlp呼び出します。
browserの有効なオプションは次のとおりです。
手動の方法
CAUTH Cookie を--cauthオプションに渡します。
このユーティリティでサポートされる実行時オプションの完全な最新リファレンスについては、 cs-dlp --helpを参照してください。
Coursera CAUTH Cookie、クラス名、および追加パラメータを指定してスクリプトを実行し、マテリアルをダウンロードします。
cs-dlp --cauth-auto chrome modelthinking-004
コマンド ラインからcs-dlp呼び出す方法の例をいくつか示します。
Multiple classes: cs-dlp --cauth-auto chrome saas historyofrock1-001 algo-2012-002
Filter by section name: cs-dlp --cauth-auto chrome -sf "Chapter_Four" crypto-004
Filter by lecture name: cs-dlp --cauth-auto chrome -lf "3.1_" ml-2012-002
Download only ppt files: cs-dlp --cauth-auto chrome -f "ppt" qcomp-2012-001
Get the preview classes: cs-dlp --cauth-auto chrome -b ni-001
Download videos at 720p: cs-dlp --cauth-auto chrome --video-resolution 720p ni-001
Specify download path: cs-dlp --cauth-auto chrome --path=C:CourseraClasses comnetworks-002
Display help: cs-dlp --help
Maintain a list of classes in a dir:
Initialize: mkdir -p CURRENT/{class1,class2,..classN}
Update: cs-dlp -n --path CURRENT `ls CURRENT`注:色付きの出力を表示するためにlsコマンドのエイリアスが設定されている場合、問題が発生する可能性があります。 特殊文字がスクリプトに送信されないように、必ずlsコマンドをエスケープしてください ( lsを使用してください)。
新しいプラットフォーム (「オンデマンド」) コースはサポートされていることに注意してください。
デフォルトでは、ビデオは 540p の解像度でダウンロードされます。オンデマンド コースの場合、 --video-resolutionフラグは 360p、540p、および 720p の値を受け入れます。
ビデオの代わりに.txtおよび/または.srt字幕ファイルのみをダウンロードするには、 --ignore-formats mp4 --subtitle-language enまたはビデオがエンコードされている形式と字幕に必要な言語を使用します。
優先パラメータを保存したい場合は、スクリプトが実行される場所に、次の形式でcoursera-dl.confという名前のファイルを作成します。
--subtitle-language en,zh-CN|zh-TW --download-quizzes #--mathjax-cdn https://cdn.bootcss.com/mathjax/2.7.1/MathJax.js # more other parameters
ファイルで指定されたパラメータは、コマンドラインで再度指定すると上書きされます。
注: coursera-dl.confでは、すべてのパラメータを引用符で囲む必要はありません。
デフォルト モードでは、 CTRL + C を押してダウンロード プロセスを中断すると、部分的にダウンロードされたファイルがディスクから削除されるため、ダウンロード プロセスを最初から開始する必要があります。突然のシステムクラッシュなど、キーボード割り込み ( CTRL + C ) 以外の何かによってダウンロードが中断された場合、部分的にダウンロードされたファイルはディスク上に残り、次回プロセスを再開するときに、これらのファイルはダウンロード リストから破棄されます。ジョブを実行して、次回開始する前に手動で削除してください。このため、停止した場所からダウンロードを続行する--resumeというオプションを追加しました。
cs-dlp --cauth-auto chrome --resume sdn1-001
このオプションは外部ダウンローダーでも使用できます。
cs-dlp --cauth-auto chrome --wget --resume sdn1-001
注意 1 : 一部の外部ダウンローダーは独自の組み込み再開機能を使用しており、他のダウンローダーと互換性がない可能性があるため、自己責任で使用してください。
注 2 : 再開モードでは、中断されたファイルはディスクから削除されないことに注意してください。
授業資料のダウンロード時に問題が発生した場合は、次のいずれかの操作で問題が解決するかどうかを確認してください。
使用しているクラス名が、そのクラスの URL で使用されているリソース名に対応していることを確認してください: https://www.coursera.org/learn/<CLASS_NAME>/home/welcome
--clear-cacheオプションを使用して、キャッシュされた Cookie/資格情報を消去しようとしましたか?
多くのコース (おそらくほとんど?) はコース終了後しばらくしてから教材を削除する可能性がありますが、他のコースでは同じコースの次のセッション/開講まで教材を保持する場合があることに注意してください (学術的不正の問題を避けるため、どうやら)。
つまり、コース終了後にダウンロードできるという保証はなく、残念ながら、これについては私たちがお手伝いできることは何もありません。
Netscape スタイルの Cookie ファイルをブラウザ拡張子 ([1][9]、[2][10]) とともにエクスポートし、 -cオプションとともに使用できます。これは、パスワードによる認証が機能しない場合に便利です (認証プロセスは時々変更されます)。
まだ開始されていないが、以前の反復が行われたコースの場合は、最後のコースのすべてのクラスを含むプレビューが利用できる場合があります。これらのファイルは、 --previewパラメーターを渡すことでダウンロードできます。
Could not find class: <CLASS_NAME>のようなエラーが発生した場合は、次のようにします。
コース名が正しいことを確認してください。 coursera の現在のクラス名は、短いコース名 ( classなど) とコースの現在のバージョン (数字) で構成されます。たとえば、 classという名前のクラスの場合、 class-001 、 class-002などを使用する必要があります。
次に、コースに登録していることを確認します。正式に登録されておらず、 Web サイト経由で優等コースに同意していない場合は、コース教材にアクセスすることはできません。
中国在住でビデオのダウンロードに問題がある場合は、ホスト ファイル (/etc/hosts) に「52.84.167.78 d3c33hcgiwev3.cloudfront.net」を追加し、「ipconfig/flushdns」で DNS を更新すると機能する可能性があります (https:詳細については、//github.com/googlehosts/hosts)。
まず、ダウンロードしたいコースに登録していることを確認してください。
多くの古いコースはすでに登録を終了しているため、選択肢にない場合がほとんどです。この場合は、 --previewオプションを使用してダウンロードしてみてください。一部のコースでは、登録せずに講義資料をダウンロードできますが、これは一般的ではなく、すべてのコースで機能することが保証されません。
最後に、少なくともすべてのコース教材をリストしたインデックス ファイルがあれば、ビデオをダウンロードできます。登録している友人がそのコース ページを保存してくれるかもしれません。その場合は、 --process_local_pageオプションを使用します。
あるいは、この問題のために設計されたさまざまなブラウザ拡張機能を試してみることもできます。
上記のいずれもうまくいかない場合は、私たちにできることは何もありません。
cs-dlp は外部ダウンローダーをサポートしていますが、これらはシラバスが解析された後の資料 (ビデオ、PDF、一部の配布資料、追加ファイルなど) をダウンロードするためにのみ使用されることに注意してください (シラバスは常に内部ダウンローダーを使用してダウンロードされます)。このような素材のダウンロードで問題が発生した場合は、外部ダウンローダーの使用を開始し、そのタイムアウト値を構成することをお勧めします。たとえば、 --ariaオプションを渡すことで、aria2c ダウンローダーを使用できます。
cs-dlp --cauth-auto chrome --path . --aria2 <course-name>
そして、タイムアウトを減らすために、これを aria2c の設定ファイル~/.aria2/aria2.confに追加します。
connect-timeout=2 timeout=2 bt-stop-timeout=1
内部ダウンローダーのタイムアウト構成はサポートされていません。
プロキシの背後で Windows を使用している場合は、スクリプトを実行する前に次のように環境変数を設定します。
set HTTP_PROXY=http://host:port set HTTPS_PROXY=http://host:port
関連ディスカッション: #205
MathJax.jsの代替 CDNコース ページを保存するときに、ヘッダーにMathJax.js挿入することで、数式のMathJaxレンダリングを有効にしました。このスクリプトは、mathjax.org が提供する cdn サービスを使用しています。ただし、その URL は一部の国/地域ではアクセスできないため、 --mathjax-cdn <MATHJAX_CDN>パラメーターを指定して、お住まいの地域でアクセス可能なMathJax.jsファイルを指定できます。
問題を報告する前に、次の手順に従ってください。
最新バージョンのスクリプトを実行していることを確認してください
問題が解決しない場合は、お気軽にバグトラッカーで問題を開いてください。問題テンプレートにできるだけ多くの情報を記入してください。