Ini adalah fork dari coursera-dl yang bekerja dengan Python modern dan coursera.org modern, dengan fitur dan patch tambahan.
Pengunduh Kursus
Perkenalan
Fitur
Penafian
Petunjuk instalasi
Metode instalasi alternatif untuk sistem Unix
Linux Agung
Menginstal dependensi Anda sendiri
Metode instalasi yang disarankan untuk semua Sistem Operasi
Cara alternatif untuk menginstal dependensi yang hilang
Buruh pelabuhan
jendela
Buat akun dengan Coursera
Menjalankan skrip
Melanjutkan pengunduhan
Pemecahan masalah
masalah Tiongkok
Ditemukan 0 bagian dan 0 ceramah di halaman ini
Batas waktu pengunduhan
Windows: dukungan proksi
Windows: Gagal membuat proses
SSLError: [Errno 1] _ssl.c:504: error:14094410:SSL rutin:SSL3_READ_BYTES:sslv3 peringatan kegagalan jabat tangan
CDN alternatif untuk MathJax.js
Masalah pelaporan
Mengajukan masalah/Melaporkan bug
Masukan
Kontak
Skrip ini mempermudah pengunduhan sumber daya kuliah secara batch (misalnya, video, ppt, dll) untuk kelas Coursera. Diberikan satu atau lebih nama kelas, ia memperoleh nama minggu dan kelas dari halaman perkuliahan , dan kemudian mengunduh materi terkait ke dalam file dan direktori dengan nama yang sesuai.
Karya ini awalnya sebagian terinspirasi oleh [youtube-dl] [3] yang dengannya saya telah mengunduh banyak video bagus lainnya seperti yang berasal dari Khan Academy.
Dukungan untuk semua jenis kursus (yaitu, kursus "Platform Lama"/berbasis waktu serta "Platform Baru"/sesuai permintaan).
Nama yang sengaja dirinci, sehingga akan ditampilkan dan diurutkan dengan benar di sebagian besar antarmuka (misalnya, Video VLC atau MX di perangkat Android).
Filter bagian (minggu) dan nama kuliah berbasis regex untuk mengunduh sumber daya tertentu saja.
Filter ekstensi format file untuk mengambil jenis sumber daya yang Anda inginkan.
Argumen default diambil dari file coursera-dl.conf
.
Fungsionalitas inti diuji di Linux, Mac dan Windows.
cs-dlp
dimaksudkan untuk digunakan hanya untuk materi Anda yang diberi akses oleh Coursera untuk Anda unduh.
Kami tidak menganjurkan penggunaan apa pun yang melanggar Ketentuan Penggunaan mereka. Kutipan yang relevan:
"[...] Coursera memberi Anda lisensi pribadi, non-eksklusif, dan tidak dapat dipindahtangankan untuk mengakses dan menggunakan Situs. Anda dapat mengunduh materi dari Situs hanya untuk penggunaan pribadi dan non-komersial. Anda tidak boleh menyalin , mereproduksi, mentransmisikan ulang, mendistribusikan, menerbitkan, mengeksploitasi secara komersial, atau mentransfer materi apa pun, dan Anda juga tidak boleh memodifikasi atau membuat karya turunan dari materi tersebut."
cs-dlp
memerlukan Python 3 dan akun Coursera yang terdaftar di kelas yang diminati.
Catatan: cs-dlp
tidak kompatibel dengan Python 2.
Pada sistem operasi apa pun, pastikan bahwa lokasi eksekusi Python ditambahkan ke variabel lingkungan PATH
Anda dan, setelah dependensi diinstal (lihat bagian selanjutnya), untuk penggunaan dasar , Anda perlu menjalankan skrip dari direktori utama sistem operasi. proyek dan tambahkan dengan kata python
. Anda juga dapat menggunakan fitur program yang lebih canggih dengan melihat bagian "Menjalankan skrip" pada dokumen ini.
Catatan: Anda harus sudah (secara manual) menyetujui Kehormatan Kode kursus tertentu yang ingin Anda gunakan dengan cs-dlp
.
Dari baris perintah (sebaiknya, dari lingkungan virtual), cukup jalankan perintah:
git clone https://github.com/raffaem/cs-dlp cd cs-dlp python -m pip install --user .
Catatan 1: Kami sangat menyarankan agar Anda tidak menginstal paket secara global pada mesin Anda (yaitu, dengan hak akses root/administrator), karena modul yang diinstal mungkin bertentangan dengan aplikasi Python lain yang telah Anda instal di sistem Anda. Lebih suka menggunakan opsi --user
untuk pip install
.
cs-dlp
saat ini tidak memiliki paket AUR. Selamat datang bantuan!
Jika Anda belum memilikinya, buat akun [Kursus] [1] dan daftar di kelas. Lihat https://www.coursera.org/courses untuk daftar kelas.
Untuk mengautentikasi dengan Coursera, Anda memerlukan cookie CAUTH.
Saat ini ada dua cara yang didukung untuk melakukannya: Anda dapat meminta cs-dlp
mendapatkannya secara otomatis dari browser Anda, atau Anda dapat meneruskannya secara manual.
Cara otomatis
chrome
untuk Google Chrome
chromium
opera
opera_gx
brave
edge
vivaldi
firefox
librewolf
safari
Buka browser favorit Anda dan masuk ke Coursera
Panggil cs-dlp
dengan opsi --cauth-auto browser
.
Opsi yang valid untuk browser
adalah:
cara manual
Berikan cookie CAUTH ke opsi --cauth
.
Lihat cs-dlp --help
untuk referensi lengkap dan terkini mengenai opsi runtime yang didukung oleh utilitas ini.
Jalankan skrip untuk mengunduh materi dengan menyediakan cookie Coursera CAUTH Anda, nama kelas, serta parameter tambahan apa pun:
cs-dlp --cauth-auto chrome modelthinking-004
Berikut beberapa contoh cara memanggil cs-dlp
dari baris perintah:
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`
Catatan: Jika perintah ls
Anda memiliki alias untuk menampilkan keluaran berwarna, Anda mungkin mengalami masalah. Pastikan untuk keluar dari perintah ls
(gunakan ls
) untuk memastikan tidak ada karakter khusus yang dikirim ke skrip.
Perhatikan bahwa kami mendukung kursus Platform Baru ("sesuai permintaan").
Secara default, video diunduh pada resolusi 540p. Untuk kursus berdasarkan permintaan, tanda --video-resolution
menerima nilai 360p, 540p, dan 720p.
Untuk mengunduh file subtitle .txt
dan/atau .srt
saja, bukan videonya, gunakan --ignore-formats mp4 --subtitle-language en
atau format apa pun yang digunakan untuk mengkodekan video dan bahasa yang diinginkan untuk subtitle.
Jika Anda ingin menyimpan parameter pilihan Anda, buatlah file bernama coursera-dl.conf
di mana skrip seharusnya dijalankan, dengan format berikut:
--subtitle-language en,zh-CN|zh-TW --download-quizzes #--mathjax-cdn https://cdn.bootcss.com/mathjax/2.7.1/MathJax.js # more other parameters
Parameter yang ditentukan dalam file akan ditimpa jika diberikan lagi pada baris perintah.
Catatan: Di coursera-dl.conf
, semua parameter tidak boleh diapit dengan tanda kutip.
Dalam mode default, ketika Anda menghentikan proses pengunduhan dengan menekan CTRL + C , sebagian file yang diunduh akan dihapus dari disk Anda dan Anda harus memulai proses pengunduhan dari awal. Jika pengunduhan Anda terganggu oleh sesuatu selain KeyboardInterrupt ( CTRL + C ) seperti kerusakan sistem yang tiba-tiba, berkas yang diunduh sebagian akan tetap ada di disk Anda dan saat berikutnya Anda memulai proses lagi, berkas ini akan dibuang dari daftar unduhan!, maka dari itu tugas Anda untuk menghapusnya secara manual sebelum memulai berikutnya. Karena alasan ini kami menambahkan opsi bernama --resume
yang melanjutkan unduhan Anda dari tempat mereka berhenti:
cs-dlp --cauth-auto chrome --resume sdn1-001
Opsi ini juga dapat digunakan dengan pengunduh eksternal:
cs-dlp --cauth-auto chrome --wget --resume sdn1-001
Catatan 1 : Beberapa pengunduh eksternal menggunakan fitur resume bawaannya yang mungkin tidak kompatibel dengan pengunduh lain, jadi gunakanlah dengan risiko yang Anda tanggung sendiri.
Catatan 2 : Ingatlah bahwa dalam mode resume, file yang terputus TIDAK AKAN dihapus dari disk Anda.
Jika Anda mengalami masalah saat mengunduh materi kelas, coba lihat apakah salah satu tindakan berikut dapat menyelesaikan masalah Anda:
Pastikan nama kelas yang Anda gunakan sesuai dengan nama sumber daya yang digunakan dalam URL kelas tersebut: https://www.coursera.org/learn/
Sudahkah Anda mencoba membersihkan cookie/kredensial yang di-cache dengan opsi --clear-cache
?
Perhatikan bahwa banyak mata kuliah (mungkin sebagian besar?) mungkin menghapus materi setelah beberapa saat setelah kursus selesai, sementara mata kuliah lain mungkin menyimpan materi hingga sesi berikutnya/penawaran mata kuliah yang sama (untuk menghindari masalah ketidakjujuran akademik, tampaknya).
Singkatnya, tidak ada jaminan bahwa Anda akan dapat mengunduh setelah kursus selesai dan, sayangnya, kami tidak dapat membantu Anda dalam hal ini.
Seseorang dapat mengekspor file cookie gaya Netscape dengan ekstensi browser ([1][9], [2][10]) dan menggunakannya dengan opsi -c
. Ini berguna ketika otentikasi melalui kata sandi tidak berfungsi (proses otentikasi kadang-kadang berubah).
Untuk mata kuliah yang belum dimulai, namun sudah memiliki iterasi sebelumnya terkadang tersedia preview yang berisi semua kelas dari mata kuliah terakhir. File-file ini dapat diunduh dengan meneruskan parameter --preview
.
Jika Anda mendapatkan pesan kesalahan seperti Could not find class:
, maka:
Verifikasi bahwa nama kursus sudah benar. Nama kelas saat ini di coursera disusun berdasarkan nama kursus singkat, misalnya class
dan versi kursus saat ini (angka). Misalnya, untuk kelas bernama class
, Anda harus menggunakan class-001
, class-002
dll.
Kedua, verifikasi bahwa Anda terdaftar dalam kursus tersebut. Anda tidak akan dapat mengakses materi kursus jika Anda tidak terdaftar secara resmi dan menyetujui kursus kehormatan melalui website .
Jika Anda berasal dari Tiongkok dan mengalami masalah saat mengunduh video, menambahkan "52.84.167.78 d3c33hcgiwev3.cloudfront.net" di file host (/etc/hosts) dan memperbarui DNS dengan "ipconfig/flushdns" mungkin berhasil (lihat https: //github.com/googlehosts/hosts untuk info lebih lanjut).
Pertama-tama, pastikan Anda terdaftar pada kursus yang ingin Anda unduh.
Banyak kursus lama yang telah menutup pendaftaran sehingga sering kali hal ini bukanlah suatu pilihan. Dalam hal ini, coba unduh dengan opsi --preview
. Beberapa mata kuliah mengizinkan pengunduhan materi perkuliahan tanpa mendaftar, namun hal ini tidak umum dan tidak ada jaminan berhasil untuk setiap mata kuliah.
Terakhir, Anda dapat mendownload video jika Anda memiliki, setidaknya, file indeks yang mencantumkan semua materi kursus. Mungkin teman Anda yang terdaftar dapat menyimpan halaman kursus tersebut untuk Anda. Dalam hal ini gunakan opsi --process_local_page
.
Alternatifnya, Anda mungkin ingin mencoba berbagai ekstensi browser yang dirancang untuk masalah ini.
Jika cara di atas tidak berhasil untuk Anda, kami tidak dapat melakukan apa pun.
cs-dlp mendukung pengunduh eksternal namun perhatikan bahwa pengunduh tersebut hanya digunakan untuk mengunduh materi setelah silabus diuraikan, misalnya video, PDF, beberapa handout, dan file tambahan (silabus selalu diunduh menggunakan pengunduh internal). Jika Anda mengalami masalah saat mengunduh materi tersebut, Anda mungkin ingin mulai menggunakan pengunduh eksternal dan mengonfigurasi nilai batas waktu. Misalnya, Anda dapat menggunakan pengunduh aria2c dengan meneruskan opsi --aria
:
cs-dlp --cauth-auto chrome --path . --aria2
Dan masukkan ini ke dalam file konfigurasi aria2c ~/.aria2/aria2.conf
untuk mengurangi waktu tunggu:
connect-timeout=2 timeout=2 bt-stop-timeout=1
Konfigurasi batas waktu untuk pengunduh internal tidak didukung.
Jika Anda menggunakan Windows yang menggunakan proxy, atur variabel lingkungan sebelum menjalankan skrip sebagai berikut:
set HTTP_PROXY=http://host:port set HTTPS_PROXY=http://host:port
Diskusi terkait: #205
MathJax.js
Saat menyimpan halaman kursus, kami mengaktifkan rendering MathJax
untuk persamaan matematika, dengan memasukkan MathJax.js
di header. Script menggunakan layanan cdn yang disediakan oleh mathjax.org. Namun, url tersebut tidak dapat diakses di beberapa negara/wilayah, Anda dapat memberikan parameter --mathjax-cdn
untuk menentukan file MathJax.js
yang dapat diakses di wilayah Anda.
Sebelum melaporkan masalah apa pun, ikuti langkah-langkah di bawah ini:
Pastikan Anda menjalankan skrip versi terbaru
Jika masalah masih berlanjut, silakan buka masalah di pelacak bug kami, harap isi templat masalah dengan informasi sebanyak mungkin .