นี่คือทางแยกของ coursera-dl ที่ทำงานร่วมกับ Python สมัยใหม่และ coursera.org สมัยใหม่ พร้อมด้วยฟีเจอร์และแพตช์เพิ่มเติม
โปรแกรมดาวน์โหลด Coursera
การแนะนำ
คุณสมบัติ
ข้อสงวนสิทธิ์
คำแนะนำในการติดตั้ง
วิธีการติดตั้งทางเลือกสำหรับระบบ Unix
อาร์คลินุกซ์
การติดตั้งการพึ่งพาของคุณเอง
วิธีการติดตั้งที่แนะนำสำหรับระบบปฏิบัติการทั้งหมด
วิธีอื่นในการติดตั้งการขึ้นต่อกันที่ขาดหายไป
นักเทียบท่า
หน้าต่าง
สร้างบัญชีกับ Coursera
กำลังเรียกใช้สคริปต์
กำลังดำเนินการดาวน์โหลดต่อ
การแก้ไขปัญหา
ปัญหาของจีน
พบ 0 ส่วน และ 0 การบรรยาย ในหน้านี้
หมดเวลาการดาวน์โหลด
Windows: รองรับพรอกซี
Windows: ไม่สามารถสร้างกระบวนการได้
SSLError: [ข้อผิดพลาด 1] _ssl.c:504: ข้อผิดพลาด: 14094410: รูทีน SSL: SSL3_READ_BYTES: sslv3 การแจ้งเตือนการจับมือกันล้มเหลว
CDN ทางเลือกสำหรับ MathJax.js
การรายงานปัญหา
ยื่นปัญหา/รายงานข้อผิดพลาด
ข้อเสนอแนะ
ติดต่อ
สคริปต์นี้ช่วยให้ดาวน์โหลดทรัพยากรการบรรยายเป็นชุด (เช่น วิดีโอ, PPT ฯลฯ) สำหรับชั้นเรียน Coursera ได้ง่ายขึ้น เมื่อระบุชื่อชั้นเรียนตั้งแต่หนึ่งชื่อขึ้นไป ระบบจะรับชื่อสัปดาห์และชื่อชั้นเรียนจากหน้า การบรรยาย จากนั้นดาวน์โหลดสื่อที่เกี่ยวข้องลงในไฟล์และไดเร็กทอรีที่มีชื่ออย่างเหมาะสม
เดิมงานนี้ได้รับแรงบันดาลใจบางส่วนจาก [youtube-dl][3] ซึ่งฉันได้ดาวน์โหลดวิดีโอดีๆ อื่นๆ มากมาย เช่น วิดีโอจาก Khan Academy
รองรับหลักสูตรทุกประเภท (เช่น "แพลตฟอร์มเก่า"/ตามเวลา และ "แพลตฟอร์มใหม่"/หลักสูตรตามความต้องการ)
ชื่อที่มีรายละเอียดโดยเจตนา เพื่อให้แสดงและจัดเรียงอย่างเหมาะสมบนอินเทอร์เฟซส่วนใหญ่ (เช่น VLC หรือ MX Video บนอุปกรณ์ Android)
ส่วนที่ใช้ Regex (สัปดาห์) และตัวกรองชื่อการบรรยายเพื่อดาวน์โหลดเฉพาะแหล่งข้อมูลบางอย่าง
ตัวกรองนามสกุลรูปแบบไฟล์เพื่อดึงประเภททรัพยากรที่คุณต้องการ
อาร์กิวเมนต์เริ่มต้นที่โหลดจากไฟล์ coursera-dl.conf
ฟังก์ชันการทำงานหลักที่ทดสอบบน Linux, Mac และ Windows
cs-dlp
มีไว้เพื่อใช้สำหรับเนื้อหาของคุณที่ Coursera ให้คุณเข้าถึงการดาวน์โหลดเท่านั้น
เราไม่สนับสนุนการใช้งานใด ๆ ที่ละเมิดข้อกำหนดการใช้งาน ข้อความที่ตัดตอนมาที่เกี่ยวข้อง:
"[...] Coursera ให้สิทธิ์ใช้งานส่วนบุคคล ไม่ผูกขาด และไม่สามารถโอนสิทธิ์แก่คุณได้ในการเข้าถึงและใช้งานไซต์ คุณสามารถดาวน์โหลดเนื้อหาจากไซต์ได้เฉพาะเพื่อการใช้งานส่วนบุคคลที่ไม่ใช่เชิงพาณิชย์เท่านั้น คุณไม่สามารถคัดลอกเป็นอย่างอื่นได้ ทำซ้ำ ส่งซ้ำ แจกจ่าย เผยแพร่ ใช้ประโยชน์ในเชิงพาณิชย์ หรือโอนสื่อใดๆ และห้ามดัดแปลงหรือสร้างผลงานลอกเลียนแบบของวัสดุดังกล่าว"
cs-dlp
ต้องใช้ Python 3 และบัญชี Coursera ที่ลงทะเบียนในชั้นเรียนที่สนใจ
หมายเหตุ: cs-dlp
เข้ากันไม่ได้กับ Python 2
บนระบบปฏิบัติการใดๆ ตรวจสอบให้แน่ใจว่าตำแหน่งปฏิบัติการ Python ถูกเพิ่มลงในตัวแปรสภาพแวดล้อม PATH
ของคุณ และเมื่อคุณติดตั้งการขึ้นต่อกันแล้ว (ดูหัวข้อถัดไป) สำหรับการใช้งาน พื้นฐาน คุณจะต้องเรียกใช้สคริปต์จากไดเร็กทอรีหลักของ project และเติมคำว่า python
นำหน้า คุณยังสามารถใช้คุณสมบัติขั้นสูงเพิ่มเติมของโปรแกรมได้โดยดูที่ส่วน "การเรียกใช้สคริปต์" ของเอกสารนี้
หมายเหตุ: คุณต้องตกลง (ด้วยตนเอง) กับ Honor of Code ของหลักสูตรเฉพาะที่คุณต้องการใช้กับ cs-dlp
แล้ว
จากบรรทัดคำสั่ง (โดยเฉพาะจากสภาพแวดล้อมเสมือน) เพียงออกคำสั่ง:
git clone https://github.com/raffaem/cs-dlp cd cs-dlp python -m pip install --user .
หมายเหตุ 1: เราขอแนะนำอย่างยิ่งให้คุณ อย่า ติดตั้งแพ็คเกจทั่วโลกบนเครื่องของคุณ (เช่น ด้วยสิทธิ์รูท/ผู้ดูแลระบบ) เนื่องจากโมดูลที่ติดตั้งอาจขัดแย้งกับแอปพลิเคชัน Python อื่น ๆ ที่คุณติดตั้งในระบบของคุณ ต้องการใช้ตัวเลือก --user
เพื่อ pip install
cs-dlp
ไม่มีแพ็คเกจ AUR ในปัจจุบัน ช่วยด้วย!
หากคุณยังไม่มี ให้สร้างบัญชี [Coursera][1] และลงทะเบียนในชั้นเรียน ดู https://www.coursera.org/courses สำหรับรายชื่อชั้นเรียน
ในการตรวจสอบสิทธิ์กับ Coursera คุณต้องมีคุกกี้ CAUTH
ขณะนี้มีวิธีที่รองรับสองวิธี: คุณสามารถให้ cs-dlp
รับมันโดยอัตโนมัติจากเบราว์เซอร์ของคุณ หรือคุณสามารถส่งผ่านด้วยตนเองได้
วิธีอัตโนมัติ
chrome
สำหรับกูเกิลโครม
chromium
opera
opera_gx
brave
edge
vivaldi
firefox
librewolf
safari
เปิดเบราว์เซอร์ที่คุณชื่นชอบและเข้าสู่ระบบ Coursera
โทร cs-dlp
พร้อมตัวเลือก --cauth-auto browser
ตัวเลือกที่ถูกต้องสำหรับ browser
คือ:
วิธีด้วยตนเอง
ส่งคุกกี้ CAUTH ไปยังตัวเลือก --cauth
โปรดดูที่ cs-dlp --help
สำหรับการอ้างอิงที่สมบูรณ์และทันสมัยเกี่ยวกับตัวเลือกรันไทม์ที่ยูทิลิตี้นี้สนับสนุน
เรียกใช้สคริปต์เพื่อดาวน์โหลดสื่อการสอนโดยระบุคุกกี้ Coursera CAUTH ชื่อคลาส และพารามิเตอร์เพิ่มเติม:
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 ไฟล์ที่ดาวน์โหลดบางส่วนจะถูกลบออกจากดิสก์ของคุณและคุณต้องเริ่มกระบวนการดาวน์โหลดตั้งแต่ต้น หากการดาวน์โหลดของคุณถูกขัดจังหวะด้วยสิ่งอื่นที่ไม่ใช่ KeyboardInterrupt ( 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/
คุณได้ลองล้างคุกกี้/ข้อมูลรับรองแคชด้วยตัวเลือก --clear-cache
แล้วหรือยัง?
โปรดทราบว่าหลายหลักสูตร (ส่วนใหญ่อาจจะ?) อาจนำสื่อการสอนออกหลังจากผ่านไประยะหนึ่งหลังจากจบหลักสูตร ในขณะที่หลักสูตรอื่นๆ อาจเก็บสื่อการสอนไว้ในช่วงถัดไป/การนำเสนอของหลักสูตรเดียวกัน (เพื่อหลีกเลี่ยงปัญหาเรื่องความไม่ซื่อสัตย์ทางวิชาการ เห็นได้ชัดว่า).
กล่าวโดยสรุป เราไม่สามารถรับประกันได้ว่าคุณจะสามารถดาวน์โหลดได้หลังจากจบหลักสูตร และน่าเสียดายที่เราไม่สามารถช่วยเหลือคุณได้
สามารถส่งออกไฟล์คุกกี้สไตล์ Netscape พร้อมส่วนขยายเบราว์เซอร์ ([1][9], [2][10]) และใช้กับตัวเลือก -c
สิ่งนี้มีประโยชน์เมื่อการรับรองความถูกต้องด้วยรหัสผ่านไม่ทำงาน (ขั้นตอนการรับรองความถูกต้องมีการเปลี่ยนแปลงเป็นครั้งคราว)
สำหรับหลักสูตรที่ยังไม่ได้เริ่ม แต่มีการวนซ้ำก่อนหน้านี้ บางครั้งอาจมีการแสดงตัวอย่างซึ่งประกอบด้วยชั้นเรียนทั้งหมดจากหลักสูตรที่แล้ว คุณสามารถดาวน์โหลดไฟล์เหล่านี้ได้โดยส่งพารามิเตอร์ --preview
หากคุณได้รับข้อผิดพลาดเช่น Could not find class:
ดังนั้น:
ตรวจสอบชื่อรายวิชาให้ถูกต้อง ชื่อชั้นเรียนปัจจุบันใน Coursera ประกอบด้วยชื่อหลักสูตรระยะสั้น เช่น class
และเวอร์ชันปัจจุบันของหลักสูตร (ตัวเลข) ตัวอย่างเช่น สำหรับคลาสที่ชื่อ class
คุณจะต้องใช้ class-001
, class-002
เป็นต้น
ประการที่สอง ตรวจสอบว่าคุณได้ลงทะเบียนในหลักสูตรนี้แล้ว คุณจะไม่สามารถเข้าถึงเนื้อหาหลักสูตรได้ หากคุณไม่ได้ลงทะเบียนอย่างเป็นทางการและตกลงที่จะเข้าร่วมหลักสูตรเกียรตินิยม ผ่านทางเว็บไซต์
หากคุณมาจากประเทศจีนและประสบปัญหาในการดาวน์โหลดวิดีโอ การเพิ่ม "52.84.167.78 d3c33hcgiwev3.cloudfront.net" ในไฟล์โฮสต์ (/etc/hosts) และการรีเฟรช DNS ด้วย "ipconfig/flushdns" อาจใช้งานได้ (ดู https: //github.com/googlehosts/hosts สำหรับข้อมูลเพิ่มเติม)
ก่อนอื่น ตรวจสอบให้แน่ใจว่าคุณได้ลงทะเบียนในหลักสูตรที่คุณต้องการดาวน์โหลดแล้ว
หลักสูตรเก่าหลายหลักสูตรได้ปิดรับสมัครไปแล้ว ดังนั้นจึงมักไม่มีทางเลือก ในกรณีนี้ ให้ลองดาวน์โหลดด้วยตัวเลือก --preview
บางหลักสูตรอนุญาตให้ดาวน์โหลดสื่อการสอนได้โดยไม่ต้องลงทะเบียน แต่ไม่ใช่เรื่องปกติและไม่รับประกันว่าจะใช้ได้กับทุกหลักสูตร
สุดท้ายนี้ คุณสามารถดาวน์โหลดวิดีโอได้หากคุณมีไฟล์ดัชนีที่แสดงรายการเนื้อหาหลักสูตรทั้งหมด บางทีเพื่อนของคุณที่ลงทะเบียนไว้อาจบันทึกหน้าหลักสูตรนั้นไว้ให้คุณได้ ในกรณีนั้นให้ใช้ตัวเลือก --process_local_page
หรือคุณอาจต้องการลองใช้ส่วนขยายเบราว์เซอร์ต่างๆ ที่ออกแบบมาเพื่อปัญหานี้
หากวิธีข้างต้นไม่ได้ผลสำหรับคุณ เราก็ไม่สามารถทำอะไรได้
cs-dlp รองรับตัวดาวน์โหลดภายนอก แต่โปรดทราบว่าพวกมันใช้เพื่อดาวน์โหลดเนื้อหาหลังจากแยกวิเคราะห์หลักสูตรแล้วเท่านั้น เช่น วิดีโอ, PDF, เอกสารประกอบคำบรรยายบางส่วน และไฟล์เพิ่มเติม (หลักสูตรจะถูกดาวน์โหลดโดยใช้ตัวดาวน์โหลดภายในเสมอ) หากคุณประสบปัญหาในการดาวน์โหลดสื่อดังกล่าว คุณอาจต้องการเริ่มใช้โปรแกรมดาวน์โหลดภายนอกและกำหนดค่าการหมดเวลา ตัวอย่างเช่น คุณสามารถใช้ aria2c downloader โดยส่งตัวเลือก --aria
:
cs-dlp --cauth-auto chrome --path . --aria2
และใส่สิ่งนี้ลงในไฟล์กำหนดค่าของ 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
เมื่อบันทึกหน้าหลักสูตร เราได้เปิดใช้งานการเรนเดอร์ MathJax
สำหรับสมการทางคณิตศาสตร์ โดยการแทรก MathJax.js
ในส่วนหัว สคริปต์กำลังใช้บริการ cdn ที่จัดทำโดย mathjax.org อย่างไรก็ตาม URL นั้นไม่สามารถเข้าถึงได้ในบางประเทศ/ภูมิภาค คุณสามารถระบุพารามิเตอร์ --mathjax-cdn
เพื่อระบุไฟล์ MathJax.js
ที่สามารถเข้าถึงได้ในภูมิภาคของคุณ
ก่อนที่จะรายงานปัญหาใดๆ โปรดทำตามขั้นตอนด้านล่าง:
ตรวจสอบว่าคุณใช้งานสคริปต์เวอร์ชันล่าสุด
หากปัญหายังคงอยู่ อย่าลังเลที่จะเปิดปัญหาในตัวติดตามข้อบกพร่องของเรา โปรดกรอกเทมเพลตปัญหาด้วย ข้อมูลให้มากที่สุด