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. Achten Sie darauf, den ls
-Befehl zu 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/
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:
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 Einschreibung 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
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 von mathjax.org bereitgestellten CDN-Dienst. Da diese URL jedoch in einigen Ländern/Regionen nicht zugänglich ist, können Sie einen Parameter --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.