Dies ist ein Zweig von coursera-dl, der mit modernem Python und modernem coursera.org funktioniert und über zusätzliche Funktionen und Patches verfügt.
Coursera-Downloader
Einführung
Merkmale
Haftungsausschluss
Installationsanleitung
Alternative Installationsmethode für Unix-Systeme
ArchLinux
Abhängigkeiten selbst installieren
Empfohlene Installationsmethode für alle Betriebssysteme
Alternative Möglichkeiten zur Installation fehlender Abhängigkeiten
Docker
Windows
Erstellen Sie ein Konto bei Coursera
Ausführen des Skripts
Downloads werden fortgesetzt
Fehlerbehebung
China-Probleme
Auf dieser Seite wurden 0 Abschnitte und 0 Vorträge gefunden
Timeouts herunterladen
Windows: Proxy-Unterstützung
Windows: Prozess konnte nicht erstellt werden
SSLError: [Errno 1] _ssl.c:504: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 Alert Handshake-Fehler
Alternatives CDN für MathJax.js
Probleme melden
Ein Problem einreichen/einen Fehler melden
Rückmeldung
Kontakt
Dieses Skript erleichtert das Stapel-Downloaden von Vorlesungsressourcen (z. B. Videos, ppt usw.) für Coursera-Kurse. Wenn ein oder mehrere Klassennamen angegeben werden, ruft es die Wochen- und Klassennamen von der Vorlesungsseite ab und lädt dann die zugehörigen Materialien in entsprechend benannte Dateien und Verzeichnisse herunter.
Diese Arbeit wurde ursprünglich teilweise von [youtube-dl][3] inspiriert, von dem ich viele andere gute Videos heruntergeladen habe, beispielsweise die von der Khan Academy.
Unterstützung für alle Arten von Kursen (z. B. „Alte Plattform“/zeitbasierte sowie „Neue Plattform“/On-Demand-Kurse).
Absichtlich detaillierte Namen, damit sie auf den meisten Schnittstellen (z. B. VLC oder MX Video auf Android-Geräten) richtig angezeigt und sortiert werden.
Regex-basierte Filter für Abschnitte (Woche) und Vorlesungsnamen, um nur bestimmte Ressourcen herunterzuladen.
Dateiformaterweiterungsfilter zum Erfassen der gewünschten Ressourcentypen.
Standardargumente werden aus der Datei coursera-dl.conf geladen.
Kernfunktionalität getestet unter Linux, Mac und Windows.
cs-dlp soll nur für Ihr Material verwendet werden, für dessen Download Coursera Ihnen Zugriff gewährt.
Wir empfehlen keine Nutzung, die gegen die Nutzungsbedingungen verstößt. Ein relevanter Auszug:
„[...] Coursera gewährt Ihnen eine persönliche, nicht ausschließliche, nicht übertragbare Lizenz für den Zugriff auf die Websites und deren Nutzung. Sie dürfen Material von den Websites nur für Ihren persönlichen, nicht kommerziellen Gebrauch herunterladen. Sie dürfen anderweitig nicht kopieren Es ist Ihnen nicht gestattet, Material zu reproduzieren, erneut zu übertragen, zu verteilen, zu veröffentlichen, kommerziell zu verwerten oder anderweitig zu übertragen, noch dürfen Sie das Material modifizieren oder abgeleitete Werke davon erstellen.“
cs-dlp erfordert Python 3 und ein Coursera-Konto, das in der gewünschten Klasse eingeschrieben ist.
Hinweis: cs-dlp ist nicht mit Python 2 kompatibel.
Stellen Sie auf jedem Betriebssystem sicher, dass der Speicherort der ausführbaren Python-Datei zu Ihrer PATH Umgebungsvariablen hinzugefügt wird. Sobald Sie die Abhängigkeiten installiert haben (siehe nächster Abschnitt), müssen Sie für eine grundlegende Verwendung das Skript aus dem Hauptverzeichnis des aufrufen project und stellen Sie ihm das Wort python voran. Sie können auch erweiterte Funktionen des Programms nutzen, indem Sie sich den Abschnitt „Ausführen des Skripts“ dieses Dokuments ansehen.
Hinweis: Sie müssen der Ehrenhaftigkeit der jeweiligen Kurse, die Sie mit cs-dlp verwenden möchten, bereits (manuell) zugestimmt haben.
Geben Sie über eine Befehlszeile (vorzugsweise aus einer virtuellen Umgebung) einfach den folgenden Befehl ein:
git clone https://github.com/raffaem/cs-dlp cd cs-dlp python -m pip install --user .
Hinweis 1: Wir empfehlen dringend, das Paket nicht global auf Ihrem Computer zu installieren (dh mit Root-/Administratorrechten), da die installierten Module möglicherweise mit anderen Python-Anwendungen in Konflikt geraten, die Sie auf Ihrem System installiert haben. Verwenden Sie lieber die Option --user für pip install .
cs-dlp verfügt derzeit nicht über ein AUR-Paket. Hilfe willkommen!
Wenn Sie noch kein Konto haben, erstellen Sie ein [Coursera][1]-Konto und melden Sie sich für einen Kurs an. Die Liste der Kurse finden Sie unter https://www.coursera.org/courses.
Zur Authentifizierung bei Coursera benötigen Sie ein CAUTH-Cookie.
Derzeit gibt es zwei unterstützte Möglichkeiten, dies zu tun: Sie können cs-dlp es automatisch von Ihrem Browser abrufen lassen oder Sie können es manuell übergeben.
Automatischer Weg
chrome für Google Chrome
chromium
opera
opera_gx
brave
edge
vivaldi
firefox
librewolf
safari
Öffnen Sie Ihren Lieblingsbrowser und melden Sie sich bei Coursera an
Rufen Sie cs-dlp mit der --cauth-auto browser auf.
Gültige Optionen für browser sind:
Manueller Weg
Übergeben Sie ein CAUTH-Cookie an die Option --cauth .
Eine vollständige, aktuelle Referenz zu den von diesem Dienstprogramm unterstützten Laufzeitoptionen finden Sie unter cs-dlp --help .
Führen Sie das Skript aus, um die Materialien herunterzuladen, indem Sie Ihr Coursera-CAUTH-Cookie, die Klassennamen sowie alle zusätzlichen Parameter angeben:
cs-dlp --cauth-auto chrome modelthinking-004
Hier sind einige Beispiele für den Aufruf cs-dlp über die Befehlszeile:
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` Hinweis: Wenn Ihr ls -Befehl einen Alias hat, um eine kolorierte Ausgabe anzuzeigen, können Probleme auftreten. Stellen Sie sicher, dass Sie den ls -Befehl maskieren (verwenden Sie ls ), um sicherzustellen, dass keine Sonderzeichen an das Skript gesendet werden.
Beachten Sie, dass wir die Kurse der neuen Plattform („On-Demand“) unterstützen .
Standardmäßig werden Videos mit einer Auflösung von 540p heruntergeladen. Für On-Demand-Kurse akzeptiert das Flag --video-resolution die Werte 360p, 540p und 720p.
Um anstelle der Videos nur die .txt und/oder .srt Untertiteldateien herunterzuladen, verwenden Sie --ignore-formats mp4 --subtitle-language en oder ein beliebiges Format, in dem die Videos codiert sind, und die gewünschten Sprachen für Untertitel.
Wenn Sie Ihre bevorzugten Parameter speichern möchten, erstellen Sie eine Datei mit dem Namen coursera-dl.conf , in der das Skript ausgeführt werden soll, mit dem folgenden Format:
--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, die in der Datei angegeben sind, werden überschrieben, wenn sie erneut in der Befehlszeile angegeben werden.
Hinweis: In coursera-dl.conf sollten nicht alle Parameter in Anführungszeichen gesetzt werden.
Wenn Sie im Standardmodus den Downloadvorgang durch Drücken von STRG + C unterbrechen, werden teilweise heruntergeladene Dateien von Ihrer Festplatte gelöscht und Sie müssen den Downloadvorgang von vorne beginnen. Wenn Ihr Download durch etwas anderes als KeyboardInterrupt ( STRG + C ) unterbrochen wurde, z. B. durch einen plötzlichen Systemabsturz, verbleiben teilweise heruntergeladene Dateien auf Ihrer Festplatte und wenn Sie den Vorgang das nächste Mal erneut starten, werden diese Dateien aus der Download-Liste verworfen!, deshalb ist es so Ihre Aufgabe ist es, sie vor dem nächsten Start manuell zu löschen. Aus diesem Grund haben wir eine Option namens --resume hinzugefügt, die Ihre Downloads dort fortsetzt, wo sie gestoppt wurden:
cs-dlp --cauth-auto chrome --resume sdn1-001
Diese Option kann auch mit externen Downloadern genutzt werden:
cs-dlp --cauth-auto chrome --wget --resume sdn1-001
Hinweis 1 : Einige externe Downloader verwenden ihre eigene integrierte Lebenslauffunktion, die möglicherweise nicht mit anderen kompatibel ist. Sie verwenden sie daher auf eigene Gefahr.
Hinweis 2 : Denken Sie daran, dass im Fortsetzungsmodus unterbrochene Dateien NICHT von Ihrer Festplatte gelöscht werden.
Wenn Sie Probleme beim Herunterladen von Unterrichtsmaterialien haben, versuchen Sie bitte herauszufinden, ob eine der folgenden Maßnahmen Ihr Problem löst:
Stellen Sie sicher, dass der von Ihnen verwendete Klassenname mit dem Ressourcennamen übereinstimmt, der in der URL für diese Klasse verwendet wird: https://www.coursera.org/learn/<CLASS_NAME>/home/welcome
Haben Sie versucht, die zwischengespeicherten Cookies/Anmeldeinformationen mit der Option --clear-cache zu bereinigen?
Beachten Sie, dass viele Kurse (vielleicht die meisten?) die Materialien nach kurzer Zeit nach Abschluss des Kurses entfernen, während andere Kurse die Materialien möglicherweise bis zu einer nächsten Sitzung/einem nächsten Angebot desselben Kurses behalten (um Probleme mit akademischer Unehrlichkeit zu vermeiden, scheinbar).
Kurz gesagt, es gibt keine Garantie dafür, dass Sie den Download nach Abschluss des Kurses durchführen können, und dabei können wir Ihnen leider auch nicht weiterhelfen.
Man kann eine Cookie-Datei im Netscape-Stil mit einer Browsererweiterung ([1][9], [2][10]) exportieren und sie mit der Option -c verwenden. Dies ist praktisch, wenn die Authentifizierung per Passwort nicht funktioniert (der Authentifizierungsprozess ändert sich hin und wieder).
Für Kurse, die noch nicht begonnen haben, aber eine vorherige Iteration durchlaufen haben, ist manchmal eine Vorschau verfügbar, die alle Kurse des letzten Kurses enthält. Diese Dateien können durch Übergabe des Parameters --preview heruntergeladen werden.
Wenn Sie eine Fehlermeldung wie Could not find class: <CLASS_NAME> erhalten, dann:
Überprüfen Sie, ob der Name des Kurses korrekt ist. Aktuelle Klassennamen in Coursera bestehen aus einem kurzen Kursnamen, z. B. class , und der aktuellen Version des Kurses (einer Nummer). Für eine Klasse namens class müssten Sie beispielsweise class-001 , class-002 usw. verwenden.
Überprüfen Sie zweitens, ob Sie für den Kurs angemeldet sind. Sie haben keinen Zugriff auf die Kursmaterialien, wenn Sie nicht offiziell eingeschrieben sind und dem Ehrenkurs über die Website zugestimmt haben.
Wenn Sie aus China kommen und Probleme beim Herunterladen von Videos haben, kann das Hinzufügen von „52.84.167.78 d3c33hcgiwev3.cloudfront.net“ in der Hosts-Datei (/etc/hosts) und das Aktualisieren des DNS mit „ipconfig/flushdns“ funktionieren (siehe https: //github.com/googlehosts/hosts für weitere Informationen).
Stellen Sie zunächst sicher, dass Sie für den Kurs angemeldet sind, den Sie herunterladen möchten.
Für viele alte Kurse ist die Anmeldung bereits geschlossen, so dass dies oft keine Option ist. Versuchen Sie in diesem Fall den Download mit der Option --preview . Bei einigen Kursen ist das Herunterladen von Vorlesungsmaterialien ohne Anmeldung möglich, dies ist jedoch nicht üblich und funktioniert nicht garantiert bei jedem Kurs.
Schließlich können Sie die Videos herunterladen, wenn Sie mindestens über die Indexdatei verfügen, in der alle Kursmaterialien aufgeführt sind. Vielleicht könnte Ihr eingeschriebener Freund diese Kursseite für Sie speichern. Verwenden Sie in diesem Fall die Option --process_local_page .
Alternativ können Sie verschiedene Browsererweiterungen ausprobieren, die für dieses Problem entwickelt wurden.
Wenn keine der oben genannten Maßnahmen für Sie funktioniert, können wir nichts tun.
cs-dlp unterstützt externe Downloader. Beachten Sie jedoch, dass diese nur zum Herunterladen von Materialien verwendet werden, nachdem der Lehrplan analysiert wurde, z. B. Videos, PDFs, einige Handouts und zusätzliche Dateien (der Lehrplan wird immer mit dem internen Downloader heruntergeladen). Wenn beim Herunterladen solcher Materialien Probleme auftreten, können Sie einen externen Downloader verwenden und dessen Timeout-Werte konfigurieren. Sie können beispielsweise den aria2c-Downloader verwenden, indem Sie die Option --aria übergeben:
cs-dlp --cauth-auto chrome --path . --aria2 <course-name>
Und fügen Sie dies in die Konfigurationsdatei ~/.aria2/aria2.conf von aria2c ein, um Zeitüberschreitungen zu reduzieren:
connect-timeout=2 timeout=2 bt-stop-timeout=1
Die Timeout-Konfiguration für den internen Downloader wird nicht unterstützt.
Wenn Sie Windows hinter einem Proxy verwenden, richten Sie die Umgebungsvariablen ein, bevor Sie das Skript wie folgt ausführen:
set HTTP_PROXY=http://host:port set HTTPS_PROXY=http://host:port
Verwandte Diskussion: #205
MathJax.js Beim Speichern einer Kursseite haben wir MathJax Rendering für mathematische Gleichungen aktiviert, indem wir MathJax.js in den Header eingefügt haben. Das Skript verwendet einen CDN-Dienst von mathjax.org. Da diese URL jedoch in einigen Ländern/Regionen nicht zugänglich ist, können Sie einen Parameter --mathjax-cdn <MATHJAX_CDN> angeben, um die MathJax.js Datei anzugeben, auf die in Ihrer Region zugegriffen werden kann.
Bevor Sie ein Problem melden, befolgen Sie bitte die folgenden Schritte:
Stellen Sie sicher, dass Sie die neueste Version des Skripts ausführen
Wenn das Problem weiterhin besteht, können Sie gerne ein Problem in unserem Bugtracker eröffnen. Bitte füllen Sie die Problemvorlage mit so vielen Informationen wie möglich aus.