curlでCourseraからビデオをダウンロードする方法は?


4

Courseraからビデオをダウンロードするのは、ターミナルにリンクをコピーして貼り付けるほど簡単ではありません。また、ブラウザからファイルにクッキーをエクスポートして、次のことを試してみましcookie.txtた。

curl --cookie cookie.txt "https://class.coursera.org/comnetworks-2012-001/lecture/download.mp4?lecture_id=37"

この質問で提案されたようにdownload.mp4?lecture_id=37、それは何も入っていないという名前のファイルを作成します。

誰かがそれらのビデオ講義をダウンロードする方法を教えてもらえますか?ブラウザでそれらをダウンロードすることはリスクであるためです(接続が遅いため、偶然エラーが発生した場合、再ダウンロードに時間がかかりすぎます)。


--user-agent <agent string>スイッチを介してリクエストのユーザーエージェントを指定する必要があるかもしれません。一般的なの<agent string>Mozilla/5.0です。
user1146332

@ user1146332既にファイル(使用しているブラウザのユーザーエージェント)に--user-agent設定してい~/.curlrcます。
サントシュクマール

回答:


2

他のWebサービスと同様に、正確なメソッドは大きく変わります。

コーセラ-dlのプロジェクトは、我々はすべての魔法をやろう。コードには、いくつかのリダイレクトをジャンプしてCookieを保持する(これはログインごとにほぼ変化します)が含まれますが、--debug呼び出しcurl方法wgetまたは好みのダウンローダーを表示するオプションを使用して実行できます。

免責事項:私はプロジェクトに貢献しています。


1

サーバー302は、要求されたURIが一時的に移動されたステータスコードで応答します。

http-responseのヘッダーを調べてみると

curl -i --cookie cookie.txt <URL>

有効なlocation指定がある場合、curlはデフォルトでこの新しい場所のリクエストをやり直しません。これをcurl行う-Lには、コマンドラインにスイッチを追加する必要があります。

そう

curl -L --cookie cookie.txt <URL>

仕事をする必要があります。


注:wget代わりに使用curlした場合、説明した内容に直面することはなかったでしょう。


動作しますか?私はまだdownload.mp4?lecture_id=37あなたが説明した方法でcurl を使っています。wgetもあまり役に立たない、wgetが出力されているwelcome?type=logout&visiting=%2Fcomnetworks-2012-001%2Flecture%2Fdownload.mp4?lecture_id=37
サントシュクマール

それは間違いなく動作します。私は両方のビデオをダウンロードcurlしてwget。その間にセッションが終了し、新しい有効なCookieを取得する必要があるようです。
user1146332

あなたの~/.curlrcファイルは何ですか?または、curlに追加で渡すものは何ですか?
サントシュクマール

なしで~/.curlrc curl -L --user-agent "Mozilla/5.0" --cookie <COOKIE> -o <FILE> <URL>私のための作品(ちょうど秒のために再びそれを試してみました)
user1146332


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.