MathJax.js
Coursera เป็นผู้นำใน หลักสูตรออนไลน์แบบเปิดขนาดใหญ่ (MOOC) โดยมีชั้นเรียนมากกว่า 300 ชั้นเรียนจาก 62 สถาบันที่แตกต่างกัน ณ เดือนกุมภาพันธ์ 2013 ความช่วยเหลืออันเอื้อเฟื้อจากนักการศึกษาและสถาบันต่างๆ กำลังทำให้การศึกษาที่เป็นเลิศแก่หลายๆ คนที่ไม่สามารถจ่ายได้ มีแม้กระทั่งองค์กรไม่แสวงผลกำไรที่มี "เท้าติดดิน" ในพื้นที่ห่างไกลของโลกที่กำลังช่วยกระจายความมั่งคั่ง (ดูความคิดเห็นด้านล่างจาก Tunapanda)
สคริปต์นี้ช่วยให้ดาวน์โหลดทรัพยากรการบรรยายเป็นชุด (เช่น วิดีโอ, PPT ฯลฯ) สำหรับชั้นเรียน Coursera ได้ง่ายขึ้น เมื่อระบุชื่อชั้นเรียนและข้อมูลประจำตัวบัญชีตั้งแต่หนึ่งชื่อขึ้นไป ระบบจะรับชื่อสัปดาห์และชื่อชั้นเรียนจากหน้า การบรรยาย จากนั้นดาวน์โหลดสื่อที่เกี่ยวข้องลงในไฟล์และไดเร็กทอรีที่มีชื่ออย่างเหมาะสม
เหตุใดสิ่งนี้จึงมีประโยชน์ ยูทิลิตี้เช่น wget สามารถทำงานได้ แต่มีข้อจำกัดดังต่อไปนี้:
wget
ใน for loop จะเลือกวิดีโอพิเศษที่ไม่ได้โพสต์/ลิงก์ และบางครั้งก็ซ้ำกัน ส่วนขยายเบราว์เซอร์เช่น DownloadThemAll ก็เป็นไปได้เช่นกัน แต่ coursera-dl
มีคุณสมบัติเพิ่มเติม เช่น ไฟล์ที่มีชื่ออย่างเหมาะสม
งานนี้เดิมได้รับแรงบันดาลใจบางส่วนจาก youtube-dl ซึ่งฉันได้ดาวน์โหลดวิดีโอดีๆ อื่นๆ มากมาย เช่น วิดีโอจาก Khan Academy
.netrc
coursera-dl.conf
coursera-dl
มีไว้เพื่อใช้เฉพาะกับเนื้อหาของคุณที่ Coursera ให้คุณเข้าถึงเพื่อดาวน์โหลดเท่านั้น
เราไม่สนับสนุนการใช้งานใด ๆ ที่ละเมิดข้อกำหนดการใช้งาน ข้อความที่ตัดตอนมาที่เกี่ยวข้อง:
"[...] Coursera ให้สิทธิ์ใช้งานส่วนบุคคล ไม่ผูกขาด และไม่สามารถโอนสิทธิ์แก่คุณได้ในการเข้าถึงและใช้งานไซต์ คุณสามารถดาวน์โหลดเนื้อหาจากไซต์ได้เฉพาะเพื่อการใช้งานส่วนบุคคลที่ไม่ใช่เชิงพาณิชย์เท่านั้น คุณไม่สามารถคัดลอกเป็นอย่างอื่นได้ ทำซ้ำ ส่งซ้ำ แจกจ่าย เผยแพร่ ใช้ประโยชน์ในเชิงพาณิชย์ หรือโอนสื่อใดๆ และห้ามดัดแปลงหรือสร้างผลงานลอกเลียนแบบของวัสดุดังกล่าว"
coursera-dl
ต้องใช้ Python 2 หรือ Python 3 และบัญชี Coursera ฟรีที่ลงทะเบียนในชั้นเรียนที่สนใจ (ณ เดือนกุมภาพันธ์ 2020 เราจะทดสอบการทำงานของโปรแกรมโดยอัตโนมัติด้วย Python เวอร์ชัน 2.7, Pypy, 3.6, 3.7, 3.8 และ 3.9)
หมายเหตุ: เราขอแนะนำ อย่างยิ่ง ให้คุณใช้ล่าม Python 3 (3.9 หรือใหม่กว่า)
บนระบบปฏิบัติการใดๆ ตรวจสอบให้แน่ใจว่าตำแหน่งปฏิบัติการ Python ถูกเพิ่มลงในตัวแปรสภาพแวดล้อม PATH
ของคุณ และเมื่อคุณติดตั้งการขึ้นต่อกันแล้ว (ดูหัวข้อถัดไป) สำหรับการใช้งาน พื้นฐาน คุณจะต้องเรียกใช้สคริปต์จากไดเร็กทอรีหลักของ project และเติมคำว่า python
นำหน้า คุณยังสามารถใช้คุณสมบัติขั้นสูงเพิ่มเติมของโปรแกรมได้โดยดูที่ส่วน "การเรียกใช้สคริปต์" ของเอกสารนี้
หมายเหตุ: คุณต้องตกลง (ด้วยตนเอง) กับ Honor of Code ของหลักสูตรเฉพาะที่คุณต้องการใช้กับ coursera-dl
แล้ว
จากบรรทัดคำสั่ง (โดยเฉพาะจากสภาพแวดล้อมเสมือน) เพียงออกคำสั่ง:
pip install coursera-dl
สิ่งนี้จะดาวน์โหลดโปรแกรมเวอร์ชันล่าสุดจาก Python Package Index (PyPI) พร้อมกับการอ้างอิงที่จำเป็น ทั้งหมด ณ จุดนี้คุณควรพร้อมที่จะเริ่มใช้งานแล้ว
หากวิธีนี้ใช้ไม่ได้ผล เนื่องจากเวอร์ชัน Python 2 ของคุณเก่าเกินไป (เช่น 2.7.5 บน Ubuntu 14.4) ให้ลอง:
apt-get install python3 python3-pip
pip3 install coursera-dl
แทน.
หมายเหตุ 1: เราขอแนะนำอย่างยิ่งให้คุณ อย่า ติดตั้งแพ็คเกจทั่วโลกบนเครื่องของคุณ (เช่น ด้วยสิทธิ์รูท/ผู้ดูแลระบบ) เนื่องจากโมดูลที่ติดตั้งอาจขัดแย้งกับแอปพลิเคชัน Python อื่น ๆ ที่คุณติดตั้งในระบบของคุณ (หรืออาจรบกวนได้ ด้วย coursera-dl
) ต้องการใช้ตัวเลือก --user
เพื่อ pip install
หากคุณต้องการ
หมายเหตุ 2: ดังที่ได้กล่าวไปแล้ว เราขอแนะนำ อย่างยิ่ง ให้คุณใช้ล่าม Python 3 ใหม่ (เช่น 3.9 หรือใหม่กว่า) เนื่องจาก Python 3 รองรับ SSL/TLS (สำหรับการเชื่อมต่อที่ปลอดภัย) ได้ดีกว่าเวอร์ชันก่อนหน้า
หากคุณต้องใช้ Python 2 ตรวจสอบให้แน่ใจว่าคุณมี Python 2.7.9 เป็นอย่างน้อย (เวอร์ชันที่ใหม่กว่าก็ใช้ได้)
มิฉะนั้น คุณยังคงสามารถใช้ coursera-dl
ได้ แต่คุณจะต้องติดตั้งแพ็คเกจพิเศษ ndg-httpsclient
ซึ่งอาจเกี่ยวข้องกับการคอมไพล์ (อย่างน้อยบนระบบ Linux)
เราขอแนะนำอย่างยิ่งให้คุณพิจารณาติดตั้งแพ็คเกจ Python ด้วย pip เนื่องจากเป็นวิธีที่นิยมใช้ในปัจจุบัน เว้นแต่จะได้รับคำแนะนำเป็นอย่างอื่นโดยสมาชิกโปรเจ็กต์คนใดคนหนึ่ง (เช่น เมื่อทดสอบหรือแก้ไขคุณสมบัติใหม่ หรือใช้ซอร์สโค้ดโดยตรงจาก git ของเรา พื้นที่เก็บข้อมูล) หากคุณใช้ pip
คุณสามารถติดตั้งการขึ้นต่อกันทั้งหมดจากไฟล์ข้อกำหนดได้โดยตรงโดยใช้ pip install -r requirements.txt
เราขอแนะนำอย่างยิ่งให้คุณติดตั้ง coursera-dl
และการขึ้นต่อกันทั้งหมดในลักษณะที่ ไม่ รบกวนการติดตั้ง Python ส่วนที่เหลือของคุณ ซึ่งสามารถทำได้โดยการสร้าง สภาพแวดล้อมเสมือน หรือ "virtualenv"
สำหรับการตั้งค่าเริ่มต้น ในระบบปฏิบัติการแบบ Unix โปรดใช้ขั้นตอนต่อไปนี้ (สร้าง/ปรับไดเร็กทอรี /directory/where/I/want/my/courses
ก่อน):
cd /directory/where/I/want/my/courses
virtualenv my-coursera
cd my-coursera
source bin/activate
git clone https://github.com/coursera-dl/coursera-dl
cd coursera-dl
pip install -r requirements.txt
./coursera-dl ...
หากต้องการดาวน์โหลดวิดีโอใหม่จากชั้นเรียนของคุณเพิ่มเติม เพียงดำเนินการ:
cd /directory/where/I/want/my/courses/my-coursera
source bin/activate
cd coursera-dl
./coursera-dl ...
เรากำลังดำเนินการปรับปรุงกระบวนการทั้งหมดนี้เพื่อให้ง่ายที่สุดเท่าที่จะเป็นไปได้ แต่เพื่อรองรับ Python เวอร์ชันเก่า และเพื่อรับมือกับ Coursera ที่ปิดใช้งาน SSLv3 เราจำเป็นต้องดำเนินการขั้นตอนเพิ่มเติมเล็กน้อย ไม่ว่าในกรณีใด ขอแนะนำ เป็นอย่างยิ่ง ให้คุณติดตั้ง Python reatreter เวอร์ชันล่าสุดที่คุณสามารถทำได้เสมอ
แพ็คเกจ AUR: coursera-dl
คำเตือน: ไม่แนะนำวิธีนี้ เว้นแต่คุณจะมีประสบการณ์ทำงานกับสภาพแวดล้อม Python หลายตัว
คุณสามารถใช้โปรแกรม pip
เพื่อติดตั้งการขึ้นต่อกันของคุณเอง ทั้งหมดนี้แสดงรายการอยู่ในไฟล์ requirements.txt
(และการขึ้นต่อกันเพิ่มเติมที่จำเป็นสำหรับการพัฒนาแสดงอยู่ในไฟล์ requirements-dev.txt
)
หากต้องการใช้วิธีนี้ คุณจะต้องดำเนินการดังนี้:
pip install -r requirements.txt
pip install -r requirements-dev.txt
บรรทัดที่สองข้างต้นควรใช้เฉพาะในกรณีที่คุณต้องการช่วยในการพัฒนา (และยินดีรับความช่วยเหลือ เสมอ ) หรือหากผู้ดูแลโครงการขอให้คุณติดตั้งแพ็คเกจเพิ่มเติมเพื่อวัตถุประสงค์ในการแก้ไขจุดบกพร่อง
อีกครั้ง ก่อนที่จะยื่นรายงานข้อบกพร่อง หากคุณติดตั้งการขึ้นต่อกันด้วยตนเอง โปรดตรวจสอบว่าเวอร์ชันของโมดูลของคุณอย่างน้อยอยู่ในรายการในไฟล์ requirements.txt
(และไฟล์ requirements-dev.txt
หากมี)
หากคุณต้องการคุณสามารถเรียกใช้ซอฟต์แวร์นี้ภายใน Docker:
docker run --rm -it -v
"$(pwd):/courses"
courseradl/courseradl -u <USER> -p <PASSWORD>
หรือใช้ไฟล์ netrc:
docker run --rm -it
-v "$(pwd):/courses" -v "$HOME/.netrc:/netrc"
courseradl/courseradl -n /netrc
dir การทำงานจริงสำหรับ coursera-dl คือ /courses หลักสูตรทั้งหมดจะถูกดาวน์โหลดที่นั่น หากคุณไม่ได้ระบุเป็นอย่างอื่น
python -m pip install coursera-dl
ตรวจสอบให้แน่ใจว่าได้เพิ่มเส้นทางการติดตั้ง Python ให้กับตัวแปรสภาพแวดล้อมของระบบ PATH สามารถพบได้ในแผงควบคุม > ระบบ > การตั้งค่าระบบขั้นสูง > ตัวแปรสภาพแวดล้อม
Example:
C:Python39Scripts;C:Python39;
หรือหากคุณมีสิทธิ์ในการติดตั้งแบบจำกัดและคุณได้ติดตั้ง Python ภายใต้ AppData ให้เพิ่มสิ่งนี้ลงใน PATH ของคุณ
Example:
C:Users<user>AppDataLocalProgramsPythonPython39-32Scripts;C:Users<user>AppDataLocalProgramsPythonPython39-32;
Coursera-dl สามารถเรียกใช้จาก commandline หรือ powershell ได้แล้ว
หากคุณยังไม่มี ให้สร้างบัญชี Coursera และลงทะเบียนในชั้นเรียน ดู https://www.coursera.org/courses สำหรับรายชื่อชั้นเรียน
โปรดดูที่ coursera-dl --help
สำหรับการอ้างอิงที่สมบูรณ์และทันสมัยเกี่ยวกับตัวเลือกรันไทม์ที่ยูทิลิตี้นี้สนับสนุน
เรียกใช้สคริปต์เพื่อดาวน์โหลดสื่อการสอนโดยระบุข้อมูลรับรองบัญชี Coursera ของคุณ (เช่น ที่อยู่อีเมลและรหัสผ่าน หรือไฟล์ ~/.netrc
) ชื่อคลาส และพารามิเตอร์เพิ่มเติมใดๆ:
General: coursera-dl -u <user> -p <pass> modelthinking-004
With CAUTH parameter: coursera-dl -ca 'some-ca-value-from-browser' modelthinking-004
หากคุณไม่ต้องการพิมพ์รหัสผ่านในบรรทัดคำสั่งเป็นข้อความธรรมดา คุณสามารถใช้สคริปต์โดยไม่มีตัวเลือก -p
ได้ ในกรณีนี้ คุณจะได้รับแจ้งให้ใส่รหัสผ่านเมื่อสคริปต์ทำงาน
ต่อไปนี้คือตัวอย่างบางส่วนของวิธีเรียกใช้ coursera-dl
จากบรรทัดคำสั่ง:
Without -p field: coursera-dl -u <user> modelthinking-004
Multiple classes: coursera-dl -u <user> -p <pass> saas historyofrock1-001 algo-2012-002
Filter by section name: coursera-dl -u <user> -p <pass> -sf "Chapter_Four" crypto-004
Filter by lecture name: coursera-dl -u <user> -p <pass> -lf "3.1_" ml-2012-002
Download only ppt files: coursera-dl -u <user> -p <pass> -f "ppt" qcomp-2012-001
Use a ~/.netrc file: coursera-dl -n -- matrix-001
Get the preview classes: coursera-dl -n -b ni-001
Download videos at 720p: coursera-dl -n --video-resolution 720p ni-001
Specify download path: coursera-dl -n --path=C:CourseraClasses comnetworks-002
Display help: coursera-dl --help
Maintain a list of classes in a dir:
Initialize: mkdir -p CURRENT/{class1,class2,..classN}
Update: coursera-dl -n --path CURRENT `ls CURRENT`
หมายเหตุ: หากคำสั่ง ls
ของคุณมีนามแฝงเพื่อแสดงเอาต์พุตที่เป็นสี คุณอาจประสบปัญหา อย่าลืมหลีกเลี่ยงคำสั่ง ls
(ใช้ ls
) เพื่อให้แน่ใจว่าไม่มีการส่งอักขระพิเศษไปยังสคริปต์
โปรดทราบว่าเรา รองรับ หลักสูตรแพลตฟอร์มใหม่ ("ตามความต้องการ")
ตามค่าเริ่มต้น วิดีโอจะถูกดาวน์โหลดที่ความละเอียด 540p สำหรับหลักสูตรตามความต้องการ ธง --video-resolution
ยอมรับค่า 360p, 540p และ 720p
หากต้องการดาวน์โหลดเฉพาะไฟล์คำบรรยาย .txt
และ/หรือ .srt
แทนวิดีโอ ให้ใช้ -ignore-formats mp4 --subtitle-language en
หรือรูปแบบใดก็ตามที่วิดีโอถูกเข้ารหัสและภาษาที่ต้องการสำหรับคำบรรยาย
บนแพลตฟอร์ม *nix การใช้ไฟล์ ~/.netrc
เป็นทางเลือกที่ดีในการระบุทั้งชื่อผู้ใช้ของคุณ (เช่น ที่อยู่อีเมลของคุณ) และรหัสผ่านทุกครั้งบนบรรทัดคำสั่ง หากต้องการใช้งาน เพียงเพิ่มบรรทัดด้านล่างลงในไฟล์ชื่อ .netrc
ในโฮมไดเร็กตอรี่ของคุณ (หรือเทียบเท่า หากคุณใช้ Windows) โดยมีเนื้อหาดังนี้:
machine coursera-dl login <user> password <pass>
สร้างไฟล์หากยังไม่มี จากนั้นคุณสามารถเปลี่ยนจากการใช้ -u
และ -p
เป็นเพียงแค่เรียก coursera-dl
ด้วยตัวเลือก -n
แทน วิธีนี้จะสะดวกเป็นพิเศษ เนื่องจากการพิมพ์ชื่อผู้ใช้ (ที่อยู่อีเมล) และรหัสผ่านโดยตรงบนบรรทัดคำสั่งอาจทำให้เกิดความยุ่งยาก (ยิ่งไปกว่านั้นหากคุณเลือกรหัสผ่านที่ "รัดกุม")
หรือหากคุณต้องการจัดเก็บพารามิเตอร์ที่คุณต้องการ (ซึ่งอาจรวมชื่อผู้ใช้และรหัสผ่านของคุณด้วย) ให้สร้างไฟล์ชื่อ coursera-dl.conf
โดยที่สคริปต์ควรจะถูกเรียกใช้งาน โดยมีรูปแบบดังต่อไปนี้:
--username <user>
--password <pass>
--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
ซึ่งจะดาวน์โหลดต่อจากจุดที่หยุดไว้:
coursera-dl -u <user> -p <pass> --resume sdn1-001
ตัวเลือกนี้สามารถใช้ได้กับโปรแกรมดาวน์โหลดภายนอก:
coursera-dl --wget -u <user> -p <pass> --resume sdn1-001
หมายเหตุ 1 : ผู้ดาวน์โหลดภายนอกบางรายใช้คุณสมบัติประวัติส่วนตัวในตัวซึ่งอาจเข้ากันไม่ได้กับผู้อื่น ดังนั้นคุณต้องยอมรับความเสี่ยงในการใช้งานเอง
หมายเหตุ 2 : โปรดจำไว้ว่าในโหมดดำเนินการต่อ ไฟล์ที่ถูกขัดจังหวะ จะไม่ถูก ลบออกจากดิสก์ของคุณ
หมายเหตุ : หากรหัสผ่านของคุณมีเครื่องหมายวรรคตอน เครื่องหมายคำพูด หรือ "ตัวตลก" อื่นๆ (เช่น <
, >
, #
, &
, |
และอื่นๆ) คุณอาจต้องหลีกเลี่ยงสิ่งเหล่านั้นออกจากเปลือกของคุณ ด้วย bash หรือโคลน Bourne-shell อื่นๆ (และอาจจะรวมถึงเชลล์อื่นๆ อีกมากมาย) หนึ่งในวิธีที่ดีกว่าในการดำเนินการคือการใส่รหัสผ่านด้วยเครื่องหมายคำพูดเดี่ยว เพื่อที่คุณจะได้ไม่มีปัญหา ดูปัญหา #213 สำหรับข้อมูลเพิ่มเติม
หากคุณประสบปัญหาในการดาวน์โหลดสื่อการสอนของชั้นเรียน โปรดลองดูว่าการดำเนินการอย่างใดอย่างหนึ่งต่อไปนี้ช่วยแก้ปัญหาของคุณได้หรือไม่:
ตรวจสอบให้แน่ใจว่าชื่อชั้นเรียนที่คุณใช้สอดคล้องกับชื่อทรัพยากรที่ใช้ใน URL สำหรับชั้นเรียนนั้น: https://www.coursera.org/learn/<CLASS_NAME>/home/welcome
คุณได้ลองล้างคุกกี้/ข้อมูลรับรองแคชด้วยตัวเลือก --clear-cache
แล้วหรือยัง?
โปรดทราบว่าหลายหลักสูตร (ส่วนใหญ่อาจจะ?) อาจนำสื่อการสอนออกหลังจากผ่านไประยะหนึ่งหลังจากจบหลักสูตร ในขณะที่หลักสูตรอื่นๆ อาจเก็บสื่อการสอนไว้ในช่วงถัดไป/การนำเสนอของหลักสูตรเดียวกัน (เพื่อหลีกเลี่ยงปัญหาเรื่องความไม่ซื่อสัตย์ทางวิชาการ เห็นได้ชัดว่า).
กล่าวโดยสรุป เราไม่สามารถรับประกันได้ว่าคุณจะสามารถดาวน์โหลดได้หลังจากจบหลักสูตร และน่าเสียดายที่เราไม่สามารถช่วยเหลือคุณได้
ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งและ/หรืออัปเดตการอ้างอิงทั้งหมดของคุณตามไฟล์ requirements.txt
ตามที่อธิบายไว้ข้างต้น
สามารถส่งออกไฟล์คุกกี้สไตล์ Netscape พร้อมส่วนขยายเบราว์เซอร์ (1, 2) และใช้กับตัวเลือก -c
สิ่งนี้มีประโยชน์เมื่อการรับรองความถูกต้องด้วยรหัสผ่านไม่ทำงาน (ขั้นตอนการรับรองความถูกต้องมีการเปลี่ยนแปลงเป็นครั้งคราว)
หากผลลัพธ์แสดงเป็น 0 ส่วน เป็นไปได้ว่าคุณระบุข้อมูลประจำตัวที่ไม่ถูกต้อง (ชื่อผู้ใช้และ/หรือรหัสผ่านในบรรทัดคำสั่งหรือในไฟล์ .netrc
หรือในไฟล์ coursera-dl.conf
ของคุณ)
สำหรับหลักสูตรที่ยังไม่ได้เริ่ม แต่มีการวนซ้ำก่อนหน้านี้ บางครั้งอาจมีการแสดงตัวอย่างซึ่งประกอบด้วยชั้นเรียนทั้งหมดจากหลักสูตรที่แล้ว คุณสามารถดาวน์โหลดไฟล์เหล่านี้ได้โดยส่งพารามิเตอร์ --preview
หากคุณได้รับข้อผิดพลาดเช่น Could not find class: <CLASS_NAME>
ดังนั้น:
class
และเวอร์ชันปัจจุบันของหลักสูตร (ตัวเลข) ตัวอย่างเช่น สำหรับคลาสที่ชื่อ class
คุณจะต้องใช้ class-001
, class-002
เป็นต้นถ้า:
คุณได้รับข้อผิดพลาดเมื่อใช้ -n
เพื่อระบุว่าคุณต้องการใช้ไฟล์ .netrc
และ
คุณต้องการให้สคริปต์ใช้ไฟล์ netrc เริ่มต้นของคุณและ
คุณได้รับข้อความแจ้งว่า coursera-dl: error: too few arguments
จากนั้น คุณควรระบุ --
เป็นอาร์กิวเมนต์หลัง -n
นั่นคือ -n --
หรือเปลี่ยนลำดับที่คุณส่งผ่านอาร์กิวเมนต์ไปยังสคริปต์ เพื่อให้อาร์กิวเมนต์หลัง -n
ขึ้นต้นด้วยยัติภังค์ ( -
) มิฉะนั้น โมดูล argparse
ของ Python จะคิดว่าสิ่งที่คุณส่งคือชื่อของไฟล์ netrc ที่คุณต้องการใช้ ดูฉบับที่ #162
หากรหัสผ่านของคุณมีช่องว่าง อย่าลืมเขียนโดยใช้เครื่องหมายคำพูด
คุณได้ติดตั้งโครงการที่ถูกต้องแล้วหรือยัง?
คำเตือน : หากคุณติดตั้งสคริปต์โดยใช้ PyPi (pip) โปรดตรวจสอบว่าคุณติดตั้งโปรเจ็กต์ที่ถูกต้อง เราต้องใช้ชื่ออื่นใน pip เพราะชื่อเดิมของเราถูกใช้ไปแล้ว อย่าลืมติดตั้งโดยใช้:
pip install coursera-dl
หากคุณมาจากประเทศจีนและประสบปัญหาในการดาวน์โหลดวิดีโอ การเพิ่ม "52.84.167.78 d3c33hcgiwev3.cloudfront.net" ในไฟล์โฮสต์ (/etc/hosts) และการรีเฟรช DNS ด้วย "ipconfig/flushdns" อาจใช้งานได้ (ดู https: //github.com/googlehosts/hosts สำหรับข้อมูลเพิ่มเติม)
ก่อนอื่น ตรวจสอบให้แน่ใจว่าคุณได้ลงทะเบียนในหลักสูตรที่คุณต้องการดาวน์โหลดแล้ว
หลักสูตรเก่าหลายหลักสูตรได้ปิดรับสมัครไปแล้ว ดังนั้นจึงมักไม่มีทางเลือก ในกรณีนี้ ให้ลองดาวน์โหลดด้วยตัวเลือก --preview
บางหลักสูตรอนุญาตให้ดาวน์โหลดสื่อการสอนโดยไม่ต้องลงทะเบียนได้ แต่ก็ไม่ใช่เรื่องปกติและไม่รับประกันว่าจะใช้ได้กับทุกหลักสูตร
สุดท้ายนี้ คุณสามารถดาวน์โหลดวิดีโอได้หากคุณมีไฟล์ดัชนีที่แสดงรายการเนื้อหาหลักสูตรทั้งหมด บางทีเพื่อนของคุณที่ลงทะเบียนไว้อาจบันทึกหน้าหลักสูตรนั้นไว้ให้คุณได้ ในกรณีนั้นให้ใช้ตัวเลือก --process_local_page
หรือคุณอาจต้องการลองใช้ส่วนขยายเบราว์เซอร์ต่างๆ ที่ออกแบบมาเพื่อปัญหานี้
หากวิธีข้างต้นไม่ได้ผลสำหรับคุณ เราก็ไม่สามารถทำอะไรได้
Coursera-dl รองรับโปรแกรมดาวน์โหลดภายนอก แต่โปรดทราบว่าโปรแกรมเหล่านี้ใช้เพื่อดาวน์โหลดเนื้อหาหลังจากแยกวิเคราะห์หลักสูตรแล้วเท่านั้น เช่น วิดีโอ, PDF, เอกสารประกอบคำบรรยายบางส่วน และไฟล์เพิ่มเติม (หลักสูตรจะดาวน์โหลดโดยใช้โปรแกรมดาวน์โหลดภายในเสมอ) หากคุณประสบปัญหาในการดาวน์โหลดสื่อดังกล่าว คุณอาจต้องการเริ่มใช้โปรแกรมดาวน์โหลดภายนอกและกำหนดค่าการหมดเวลา ตัวอย่างเช่น คุณสามารถใช้ aria2c downloader โดยส่งตัวเลือก --aria
:
coursera-dl -n --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
ใน C:Users<user>AppDataLocalProgramsPythonPython39-32Scripts
หรือที่ใดก็ตามที่ติดตั้ง Python (ด้านบนเป็นค่าเริ่มต้นสำหรับ Windows) ให้แก้ไขไฟล์ด้านล่างโดยไม่ได้ใช้งาน: (คลิกขวาที่ชื่อสคริปต์และเลือก 'แก้ไข พร้อมสถานะว่างในเมนู)
coursera-dl-script
จาก
#!c:users<user>appdatalocalprogramspythonpython39-32python.exe
ถึง
#"!c:users<user>appdatalocalprogramspythonpython39-32python.exe"
(เพิ่มเครื่องหมายคำพูด) นี่เป็นจุดบกพร่องของ pip ที่ทราบแล้ว
ที่มา: ฉบับ #500 StackOverflow
นี่เป็นข้อผิดพลาดที่ทราบแล้ว โปรดอย่ารายงานเกี่ยวกับข้อความแสดงข้อผิดพลาดนี้! ปัญหาอยู่ในสภาพแวดล้อม ของคุณ หากต้องการแก้ไข ให้ทำดังนี้:
sudo apt-get install build-essential python-dev libssl-dev libffi-dev
pip install --user urllib3 pyasn1 ndg-httpsclient pyOpenSSL
หากข้อผิดพลาดยังคงอยู่ ให้ลองติดตั้ง coursera-dl จาก github โดยทำตามคำแนะนำนี้: https://github.com/coursera-dl/coursera-dl#alternative-installation-method-for-unix-systems
หากคุณยังคงประสบปัญหา โปรดอ่านปัญหาต่อไปนี้เพื่อดูแนวคิดเพิ่มเติมเกี่ยวกับวิธีการแก้ไข: #330 #377 #329
สิ่งนี้ควรค่าแก่การอ่าน: https://urllib3.readthedocs.io/en/latest/security.html#insecureplatformwarning
MathJax.js
เมื่อบันทึกหน้าหลักสูตร เราได้เปิดใช้งานการเรนเดอร์ MathJax
สำหรับสมการทางคณิตศาสตร์ โดยการแทรก MathJax.js
ในส่วนหัว สคริปต์กำลังใช้บริการ cdn ที่จัดทำโดย mathjax.org อย่างไรก็ตาม URL นั้นไม่สามารถเข้าถึงได้ในบางประเทศ/ภูมิภาค คุณสามารถระบุพารามิเตอร์ --mathjax-cdn <MATHJAX_CDN>
เพื่อระบุไฟล์ MathJax.js
ที่สามารถเข้าถึงได้ในภูมิภาคของคุณ
ก่อนที่จะรายงานปัญหาใดๆ โปรดทำตามขั้นตอนด้านล่าง:
ตรวจสอบว่าคุณใช้งานสคริปต์เวอร์ชันล่าสุด และเวอร์ชันที่แนะนำของสคริปต์ โปรดดูในไฟล์ requirements.txt
ใช้คำสั่งต่อไปนี้หากมีข้อสงสัย:
pip install --upgrade coursera-dl
หากปัญหายังคงอยู่ อย่าลังเลที่จะเปิดปัญหาในตัวติดตามข้อบกพร่องของเรา โปรดกรอกเทมเพลตปัญหาด้วย ข้อมูลให้มากที่สุด
เมื่อรายงานข้อบกพร่องต่อ coursera-dl
โปรดอย่าลืมใส่ข้อมูลที่เพียงพอเพื่อที่คุณจะได้สามารถช่วยเราช่วยคุณได้:
requirements.txt
--debug
ก่อนที่จะโพสต์ข้อความเป็นรายงานข้อบกพร่อง กรุณาคัดลอกและวางพวกเขา อย่าเปลี่ยนคำ/ถอดความข้อความฉันสนุกกับการรับข้อเสนอแนะ นี่คือความคิดเห็นบางส่วนที่ฉันได้รับ:
"ขอบคุณสำหรับงานที่ดี! ความรู้จะทำให้โลกท่วมท้นมากขึ้นอีกนิดด้วยสคริปต์ของคุณ!"
กิโยม วี 8/11/2555
"แค่อยากส่งอุปกรณ์ประกอบฉากสำหรับสคริปต์ Python ของคุณเพื่อดาวน์โหลดหลักสูตร Coursera ฉันใช้มันในเคนยาเพื่อการกุศลเพื่อนำหลักสูตรออนไลน์ไปยังสถานที่ที่อินเทอร์เน็ตมีราคาแพงและไม่น่าเชื่อถือ เด็กส่วนใหญ่ที่นี่ไม่มีเงินจ่าย ระดับมัธยมปลาย และการดาวน์โหลดหนึ่งในชั้นเรียนเหล่านี้ด้วยวิธีปกติจะมีค่าใช้จ่ายมากกว่ารายได้ของครอบครัวโดยเฉลี่ยในหนึ่งสัปดาห์ ขอบคุณ!”
เจย์ แอล., ตูนาปันดา 20/3/2556
"ฉันเป็นแฟนตัวยงของ Coursera และเข้าร่วมหลักสูตรต่างๆ มากมาย ข้อจำกัดด้านเวลาทำให้ฉันไม่สามารถเข้าร่วมหลักสูตรทั้งหมดที่ฉันต้องการได้พร้อมๆ กัน ฉันบังเอิญเจอสคริปต์ของคุณ และฉันดีใจมากที่ได้ใช้มัน! เยี่ยมมาก และขอขอบคุณที่ทำให้สิ่งนี้พร้อมใช้งานบน Github ทำได้ดีมาก!”
วิลเลียม ก. 18/2/2556
"สคริปต์นี้ยอดเยี่ยมมาก! ฉันอุตส่าห์ดาวน์โหลดวิดีโอและ PPT ด้วยมือทุกรายการ -- ดู wget แต่พบปัญหาไวด์การ์ดกับ HTML จากนั้น... ฉันบังเอิญไปเจอสคริปต์ของคุณ ไม่สามารถบอกคุณได้ว่าคุณใช้เวลากี่ชั่วโมง 'เพิ่งช่วยฉันไว้ :) หากคุณเคยไปปารีส / สตอกโฮล์ม ฉันต้องซื้อเบียร์ให้คุณ :)"
ราซวาน ต. 26/11/2012
"ขอบคุณมาก! :)"
วิคเตอร์ วี. 24/04/2013
กรุณาโพสต์ข้อบกพร่องและปัญหาบน GitHub กรุณา อย่า ส่งคำร้องขอการสนับสนุนเป็นการส่วนตัวไปยังผู้ดูแล! เราค่อนข้างล้นหลามกับกิจกรรมในแต่ละวัน หากคุณมีปัญหา โปรด แจ้งปัญหาเหล่านั้นไว้ในเครื่องมือติดตามปัญหา