YouTube-Logo
Aufschnur Logo

Udemy Videos herunterladen

ArtikelbildUdemy ist eine der größten e-Learning-Plattformen für Online-Seminare weltweit. Der Großteil der Inhalte ist natürlich in englischer Sprache, aber der deutsche Anteil wächst stetig. Doch schnell kommt da die Frage auf: Kann man die Videos der Kurse auch für die Offline-Nutzung herunterladen? Man möchte ja nicht immer vor dem PC sitzen und die Videos jedes Mal live über das Internet streamen müssen. Die Antwort lautet: Ja das geht!

Im Internet findet man schon einige Artikel und Youtube-Videos zu diesem Thema. Häufig aber in englischer Sprache und fast immer nur oberflächlich abgehandelt. Dieses Tutorial erklärt euch umfassend und mit zusätzlichen Hinweisen und Tipps, wie ihr unter Microsoft Windows die Videos der Udemy-Onlinekurse für die private Offline-Nutzung herunterladen könnt.

Update 22.02.2022:
⚠️ ACHTUNG! Udemy hat damit begonnen, seine Kursinhalte nach und nach zu verschlüsseln. Durch den DRM-Schutz ist das Downloaden der Videos durch Downloader-Skripte daher nicht mehr möglich bzw. die Umgehung des DRM-Schutzes wäre illegal.

Rechtlicher Hinweis
Udemy wirbt gerne mit einem „uneingeschränkten lebenslangen Zugriff“, beschränkt den erlaubten Zugriff auf die Kurse aber auf die „Plattform“ (Website) sowie die API (Programmierschnittstelle). Bei den hier vorgestellten Downloader-Scripts werden keine Schutzmaßnahmen umgangen, es handelt es sich nicht um illegale Hacks sondern lediglich um die Ausnutzung der zur Verfügung gestellten technischen Möglichkeiten. Meiner persönlichen Einschätzung nach ist der Einsatz dieser Downloader-Skripte zur persönlichen Offlinenutzung legal, auch wenn Udemy es wahrscheinlich nicht gerne sieht, wenn die Videodateien der Kurse heruntergeladen werden. Ich bin jedoch kein Fachanwalt für IT-Recht – das Herunterladen von Udemy-Inhalten zur Offlinenutzung geschieht daher auf eigene Gefahr! Selbstredend dürft ihr die heruntergeladenen Videodateien sowie das Begleitmaterial nur für rein persönliche Zwecke nutzen, und sie nicht weitergeben, öffentlich abspielen oder zum Download anbieten.

Hinweis: Diese Anleitung gibt es jetzt auch als Videotutorial auf YouTube!

YouTube Thumbnail

Vorbereitungen

Die hier vorgestellten Downloader-Skripts sind in der Programmiersprache Python geschrieben. Um sie auf eurem Windows-PC ausführen zu können, muss der kostenlose Python Interpreter installiert sein. Aber das ist schnell erledigt und benötigt kein Expertenwissen. Lest dazu meine Anleitung zum Installieren von Python unter Windows.

Das Downloader-Skript kann entweder über die Windows Eingabeaufforderung („cmd“) oder über PowerShell aufgerufen und gesteuert werden. Beides ist bereits Bestandteil von Windows, ihr müsst also nichts installieren sondern euch lediglich für eine Variante entscheiden. Diese Anleitung zeigt es mit PowerShell, es funktioniert aber genauso mit der Eingabeaufforderung. Wenn ihr das ganze hinterher mit PowerShell automatisieren möchtet, muss zuvor noch ein kleiner Hebel umgelegt werden.

Damit das Downloader-Skript weiß, welchen Kurs ihr herunterladen möchtet, benötigt ihr noch die Übersichts-URL des Kurses. Loggt euch dazu bei Udemy ein, klickt auf „Mein Lern-Content“ und wählt dann den gewünschten Kurs aus. Kopiert die komplette URL der Kurs-Übersichtsseite in die Windows-Zwischenablage.
Udemy Kurs-URL

Hilfe, Fehlermeldung beim Download!

Eines vorab: Leider ändert Udemy häufiger mal etwas an seiner Website bzw. der API, wodurch die Downloader-Scripts dann oft vorübergehend nicht mehr funktionieren. Wenn beim Aufruf des Downloader-Scripts der Vorgang direkt mit einer Fehlermeldung abbricht, prüft bitte zuerst ob ihr eure korrekten Zugangsdaten eingegeben und euch auch sonst nicht in der Befehlszeile verschrieben habt. Wenn soweit alles korrekt ist, dann liegt der Fehler wahrscheinlich an einer Änderung der Udemy-API. Da müsst ihr euch leider gedulden, bis der Script-Autor ein entsprechendes Update heraus bringt.

Fehlermeldung im udemy-dl Script

In manchen Fällen könnt ihr den Fehler umgehen, indem ihr die Authentifizierung im Scriptaufruf von Benutzername/Passwort auf Cookie umstellt. Wie das geht, beschreibe ich für udemy-dl am Ende des nächsten Kapitels.

Variante 1: udemy-dl

Udemy-dl ist ein speziell für Udemy entwickeltes Python-Script. Es lässt sich zwar nicht so umfangreich über Parameter steuern wie Variante 2, beherrscht aber alle grundlegenden Funktionen und darüber hinaus auch den Download von Begleitmaterial wie PDFs. Außerdem kommt es auch mit Umlauten und Sonderzeichen in den Dateinamen zurecht. Daher empfehle ich diese Variante für den Download der Udemy-Kurse.

Script installieren

Ladet euch die aktuelle Version von udemy-dl herunter und entpackt die ZIP-Datei komplett in einem lokalen Verzeichnis auf der Festplatte eures PC. Öffnet dann die Windows PowerShell mit Adminrechten (Rechtsklick auf das Programmsymbol -> „Als Administrator ausführen„) oder die Windows Eingabeaufforderung mit Adminrechten und wechselt mit dem Befehl „cd <verzeichnis>“ in das Verzeichnis, in das ihr das Script entpackt habt. Das Script benötigt einige Python-Erweiterungen, die ihr euch in einem Rutsch installieren könnt:

pip install -r requirements.txt

Das Ganze könnte dann z.B. so aussehen:

Script vorbereiten

Bereits installierte Erweiterungen werden übersprungen. Von Zeit zu Zeit sollten die Erweiterungen aktualisiert werden. Das könnt ihr dann innerhalb des Scriptverzeichnisses mit dem etwas abgeänderten Befehl durchführen:

pip install --upgrade -r requirements.txt

Darüber hinaus sollte natürlich auch das Udemy-dl-Script an sich gelegentlich mit der neuesten Version von der Website aktualisiert werden.

Addon für höhere Auflösungen nötig

Mir ist kürzlich aufgefallen, dass sich zwar Videos in 720p wie gehabt herunterladen lassen. Jedoch wird für Videos in 1080p Auflösung nun ein kleines zusätzliches Programm benötigt. Es handelt sich dabei um das frei verfügbare FFmpeg, mit welchem sich digitales Videomaterial konvertieren und in diverse Containerformate verpacken lässt.

  1. Ladet euch das aktuelle Build von FFmpeg herunter, die Essentials-Version genügt. Ihr benötigt die executable (ausführbaren) Dateien, nicht den Source Code.
    Projekt-Website | Direkt-Downloadlink
  2. Zum Öffnen und Entpacken des 7z-Archivs benötigt ihr 7-Zip (Freeware) oder WinRar (Shareware). Öffnet die heruntergeladene 7z-Datei und lasst den Inhalt irgendwo auf euer Laufwerk entpacken, z.B. ins Download-Verzeichnis. Öffnet den Windows-Explorer und navigiert zu dem gerade entpackten Verzeichnis. Navigiert in das Unterverzeichnis „bin“, darin sollten sich drei ausführbare Exe-Dateien befinden. Erstellt nun ein neues Verzeichnis, z.B. C:\FFmpeg und kopiert die Dateien aus dem bin-Verzeichnis dort hinein. Das Ergebnis sollte dann etwa so aussehen:
  3. Nun müsst ihr nur noch dieses Verzeichnis zur PATH-Variablen der Windows Umgebungsvariablen hinzufügen. Anschließend kann Udemy-dl die Kursvideos auch in 1080p Auflösung herunterladen.

Udemy-Kurs herunterladen

Ihr habt die Möglichkeit, den Download über Befehlszeilenparameter zu steuern. Unter der Infobox folgen ein paar Beispiele. Weitere Parameter und Hinweise findet ihr in der Readme.

Gut zu wissen
  • Die Verzeichnisstruktur und Dateinamen werden vom Script automatisch festgelegt und können nicht per Befehlszeilenparameter angepasst werden.
  • Sofern nichts anderes per Befehlszeilenparameter angegeben wurde, lädt das Script die Videos in der Standard-Auflösung von 720p herunter, inklusive Begleitmaterial und Untertitel und speichert die Dateien im Script-Verzeichnis ab.
  • Dieses Download-Skript lädt den kompletten Kurs in einem Rutsch herunter, außer ihr grenzt die Kapitel oder Lektionen per Aufrufparameter ein. Umfangreiche Kurse mit vielen Videos und in hoher Auflösung dauern je nach der zur Verfügung stehenden Internetbandbreite entsprechend lang und belegen natürlich auch mehr Speicherplatz auf eurem PC.
  • Wenn ihr den laufenden Download bzw. das Skript abbrechen möchtet, holt das PowerShell-Fenster in den Vordergrund und drückt ein, zwei Mal die Tastenkombination STRG + C.

Der Standard-Download

Download eines Kurses in Standard-Auflösung inkl. Begleitmaterial und Untertitel.

python udemy-dl.py <kurs-url> -u <email> -p <passwort>

Download mit anderer Auflösung

Download eines Kurses in einer abweichenden Auflösung (in diesem Beispiel 1080p). Sollte die gewünschte Auflösung nicht zur Verfügung stehen, werden die Videos in der Standard-Auflösung herunter geladen.

python udemy-dl.py... -q 1080

In ein anderes Verzeichnis speichern

Statt die Dateien in das Scriptverzeichnis speichern zu lassen, kann man auch einen abweichenden Speicherpfad angeben (Benutzt unter Windows dabei den doppelten Backslash \\).

python udemy-dl.py... -o "D:\\Pfad\\zum\\Verzeichnis"

Exemplarisches Beispiel

Folgende Befehlszeile lädt einen Kurs in 1080p Auflösung herunter (sofern verfügbar, ansonsten 720p), inkl. Begleitmaterial aber ohne Untertitel, und speichert den Kurs in einem abweichenden Verzeichnis.

python udemy-dl.py <kurs-url> -u <email> -p <passwort> -o "D:\\Udemy" -q 1080 --skip-sub

Manchmal kann es vorkommen, dass Udemy die Authentifizierung per Benutzername/Passwort nicht akzeptiert. Dann könnte der Gebrauch des Udemy-Cookies helfen. Ich erkläre es euch hier anhand des Firefox-Browsers. Loggt euch auf der Udemy-Website mit euren Zugangsdaten ein. Drückt dann die Tastenkombination STRG + SHIFT + E um das Netzwerkanalyse-Tool des Firefox‘ zu öffnen. Klickt in der Netzwerkanalyse auf die Option „XHR“ und anschließend auf der Udemy-Website auf „Mein Lern-Content“. Es sollten dann einige Einträge in der Liste des Netzwerkanalyse-Tools erscheinen. Sucht in der Spalte „Datei“ einen Eintrag der mit „/api-2.0/“ beginnt. Falls keiner zu finden ist, ladet die Website per Taste F5 erneut. Klickt nun mit der rechten Maustaste auf diesen Eintrag und wählt „Kopieren“ -> „Anfragekopfzeilen kopieren“. Nun habt ihr den Inhalt des Cookies in die Windows-Zwischenablage kopiert. Erstellt im udemy-dl Verzeichnis (also der Ordner in dem sich die Skriptdatei udemy-dl.py befindet) eine neue leere Textdatei und fügt den Inhalt des Cookies per STRG + V dort ein. Speichert die Datei ab, zum Beispiel als cookie.txt, und schließt sie.


Beim Aufruf des udemy-dl Skripts verwendet ihr nun nicht mehr die beiden Parameter -u <benutzername> -p <passwort> sondern -k <dateiname>:

python udemy-dl.py <kurs-url> -k cookie.txt

Variante 2: youtube-dl

Während udemy-dl speziell für Udemy entwickelt wurde, kann das ebenfalls frei verfügbare Python-Skript youtube-dl noch hunderte weitere Dienste und Mediatheken von TV-Sendern anzapfen, wie z.B. YouTube, Twitch, Flickr, Pro7, usw. Leider kann youtube-dl zum aktuellen Zeitpunkt kein zusätzliches Kursmaterial herunterladen und beherrscht auch keine deutschen Umlaute.

Script installieren

Installiert das Skript mit dem Python-Paketverwaltungsprogramm pip. Öffnet dazu die Windows PowerShell mit Adminrechten (Rechtsklick auf das Programmsymbol -> „Als Administrator ausführen„) und führt diesen Befehl aus:

pip install youtube-dl

Wenn die Installation erfolgreich war, sollte euch der Vorgang mit „Successfully installed youtube-dl <version>“ bestätigt werden.
Für youtube-dl werden häufiger Updates veröffentlicht. Es lohnt sich also, immer mal wieder auf Updates prüfen zu lassen:

pip install --upgrade youtube-dl

Download-Quicky

Hier folgt die einfache Standard-Variante des Downloads. Weiter unten beschreibe ich, wie ihr das Download-Skript noch anpassen könnt, was sehr praktisch ist. Startet die Windows PowerShell und wechselt zuerst mit dem Befehl „cd <verzeichnis>“ in das Verzeichnis, in das die Videos geladen werden sollen. Anschließend gebt ihr folgenden Befehl ein und ersetzt <email> und <passwort> mit euren persönlichen Zugangsdaten, mit denen ihr euch bei Udemy registriert habt (Ihr könnt -p <passwort> auch weg lassen und werdet dann beim Skriptstart nach dem Passwort gefragt). Ersetzt <url> mit der zuvor ermittelten Kurs-URL:

youtube-dl -u <email> -p <passwort> <url>

youtube-dl in AktionWenn die Zugangsdaten korrekt waren und der entsprechende Account für den angefragten Kurs berechtigt ist, sollte der Download nun starten. Ansonsten wird der Vorgang mit einer entsprechenden Fehlermeldung abbrechen.

Gut zu wissen
  • Dieses Download-Skript lädt standardmäßig den kompletten Kurs in einem Rutsch herunter (Das lässt sich mit einem entsprechenden Aufrufparameter ändern, siehe nächstes Kapitel). Umfangreiche Kurse mit z.B. über 100 Videos oder über 5 Stunden Spieldauer können je nach vorhandener Internetbandbreite einige Zeit dauern.
  • Wenn ihr den laufenden Download bzw. das Skript abbrechen möchtet, holt das PowerShell-Fenster in den Vordergrund und drückt ein, zwei Mal die Tastenkombination STRG + C.
  • Dieses Download-Skript kümmert sich nur um Multimedia-Dateien, und lädt kein Begleitmaterial wie z.B. PDFs herunter. Manche Kurse bieten ja noch Arbeitsbücher etc. an, diese müsst ihr von Hand über die Udemy-Website downloaden.

Den Download feinjustieren

Jetzt wird’s interessant! Das Download-Skript youtube-dl lässt sich noch mit einer ganzen Reihe von Aufrufparametern konfigurieren. Einmal angepasst, nimmt euch das Skript dann einige Nacharbeit ab und passt sich euren Bedürfnissen an. Hier folgen ein paar nützliche Beispiele.

Dateinamen und Speicherort festlegen

Das ist wohl eine der wichtigsten, wenn nicht sogar DIE wichtigste Option. Denn die heruntergeladenen Videodateien tragen zwar den Namen/Titel wie er im Kurs hinterlegt ist. Sie sind aber nicht nummeriert und liegen somit hinterher nicht chronologisch sondern nur alphabetisch sortiert in eurem Verzeichnis. Ihr könntet die Dateien natürlich auch nachträglich von Hand umbenennen, viel Spaß bei einem Kurs mit über 100 Videos! Deshalb lasst ihr die Dateien besser gleich schon beim Download richtig benennen.

Mit dem Parameter –output „<muster>“ könnt ihr festlegen, wie die Dateien benannt und wo sie abgespeichert werden sollen. Folgendes Beispiel verwendet als Dateinamen nicht nur den Titel, sondern stellt ihm noch die laufende Nummer aus der Kursliste voran. Dadurch sind die Videodateien anschließend chronologisch sortiert:

youtube-dl --output "%(playlist_index)s - %(title)s.%(ext)s" -u ...

Es geht aber noch besser. Mit folgendem Ausgabemuster werden die Dateien in eurem Windows-Benutzerverzeichnis im Unterverzeichnis „Videos“ gespeichert. Es wird automatisch ein Ordner mit Namen des Kurses angelegt, darunter jeweils ein Ordner für jedes Kapitel und darunter dann die entsprechenden Videos, chronologisch sortiert:

youtube-dl --output "~\Videos\%(playlist)s\%(chapter_number)s - %(chapter)s\%(playlist_index)s - %(title)s.%(ext)s" -u ...

Fehler ignorieren

Standardmäßig bricht der komplette Download ab, sobald eine Datei in der Liste nicht verfügbar ist. Mit der Option –ignore-errors wird dieser Fehler ignoriert. Die betroffene Datei wird übersprungen und es wird die nächste Datei in der Liste herunter geladen. So wird die Liste erst einmal soweit wie möglich abgearbeitet und nicht gleich beim ersten Fehler abgebrochen.

youtube-dl --ignore-errors -u ...

Anzahl Neuversuche ändern

Bevor eine Datei als nicht verfügbar gilt und einen Fehler generiert, werden standardmäßig 10 Downloadversuche unternommen. Mit der Option –retries <anzahl> könnt ihr den Wert erhöhen oder auch herab senken. Wenn ihr als Anzahl „infinite“ angebt, wird das Skript es ewig versuchen.

youtube-dl --retries 15 -u ...

Vorhandene Dateien nicht überschreiben

Manchmal kommt es aufgrund kurzer Verbindungsprobleme vor, dass nicht alle Videos herunter geladen werden und im Anschluss fehlt dann irgendwo zwischendrin das eine oder andere Video. Deshalb lasse ich das Download-Skript i.d.R. zwei Mal durchlaufen. Damit im zweiten Durchlauf aber nur die fehlenden und nicht die bereits vorhandenen Videos erneut herunter geladen werden, benutze ich diesen Parameter:

youtube-dl --no-overwrites -u ...

Mehrere Kurse auf einmal herunterladen

Ihr könnt mit der Option –batch-file „<dateiname>“ eine Datei angeben, die eine Liste von Kurs-URLs beinhaltet (Pro Zeile eine URL). Das Skript arbeitet dann alle Kurse nacheinander ab:

youtube-dl --batch-file "d:\Videos\Kurse.txt" -u ...

Downloadgeschwindigkeit begrenzen

Wenn ihr den Download nebenher laufen lassen wollt, ohne dass eure Internetbandbreite komplett ausgelastet wird, könnt ihr die maximale Downloadrate mit der Option –limit-rate <rate> beschränken (in Bytes pro Sekunde, z.B. „500K“, „1.5M“; Achtung: Dezimaltrennzeichen ist der Punkt, nicht das Komma). Folgendes Beispiel beschränkt die Downloadgeschwindigkeit auf 1,2 MBit/s:

youtube-dl --limit-rate 1.2M -u ...

Download-Liste beschränken

Normalerweise beginnt der Download mit der ersten Datei in der Kurs-Liste und geht chronologisch alle Dateien durch, bis die komplette Liste abgearbeitet ist. Mit den Optionen –playlist-start <nummer> und –playlist-end <nummer> könnt ihr bestimmen, ab welcher Position der Download beginnen oder an welcher er enden soll. Hier ein Beispiel, wenn ihr die ersten 10 Kursdateien überspringen wollt:

youtube-dl --playlist-start 11 -u ...

Ihr könnt mit der Option –playlist-items „<nummerliste>“ auch spezifische Videos herunter laden. Mit folgendem Beispiel würdet ihr die 3., 8. und 10. Datei sowie die Dateien 12-14 herunter laden:

youtube-dl --playlist-items "3,8,10,12-14" -u ...

Diese Beiträge könnten dich auch interessieren:

29 Kommentare

michael
18. Dezember 2016 um 16:35 Uhr

klappt 1a, großes dankeschön für das tutorial und ein frohes fest!

chris
22. Januar 2017 um 22:04 Uhr

Hallo, vielen Dank für das mega Tutorial. Ich kenne mich aber nicht so gut aus und habe deswegen eine Frage:

Ich möchte Downloaden und mehrere verschiedene Parameter festlegen wie z. B. Dateinamen und Speicherort festlegen, Fehler ignorieren, Anzahl Neuversuche ändern, Mehrere Kurse auf einmal herunterladen usw. usw., aber wie muss ich das in PowerShell schreiben?
Wäre das richtig? Nach jedem einzelnen Befehl ein „Leerzeichen“ und wieder mit „–“ den weiteren Befehl starten? (Meine Reihenfolge: Mehrere Kurse auf einmal herunterladen + Dateinamen und Speicherort festlegen + Anzahl Neuversuche ändern)

youtube-dl –batch-file „d:\Videos\Kurse.txt“ youtube-dl –output „~\Videos\%(playlist)s\%(chapter_number)s – %(chapter)s\%(playlist_index)s – %(title)s.%(ext)s“ –retries 15 -u -p

Mit freundlichen Grüßen

chris
22. Januar 2017 um 22:07 Uhr

Ich muss zwischen die zwei aufeinander folgenden Bindestriche ein Leerzeichen setzen da die zwei Striche sonst zu einem werden. In PowerShell geben ich die zwei „- -“ ohne Leerzeichen ein.

youtube-dl – -batch-file „d:\Videos\Kurse.txt“ youtube-dl – -output „~\Videos\%(playlist)s\%(chapter_number)s – %(chapter)s\%(playlist_index)s – %(title)s.%(ext)s“ – -retries 15 -u -p

Mit freundlichen Grüßen

Aufschnürer
31. Januar 2017 um 13:51 Uhr

Hallo Chris, der Aufruf des Youtube-Scripts muss bzw. darf nur einmal ganz zu Beginn erfolgen. Dann folgen die Parameter (Reihenfolge egal). Wichtig ist, dass du die Schreibweise aus meinen Beispielen korrekt einhälst. Achte auch darauf, dass Verzeichnisangaben in doppelten Anführungszeichen komplett umschlossen sind (also z.B. --batch-file "D:\kurse.txt").

Ich nutze das Script in dieser Konstellation:
youtube-dl --ignore-errors --retries 15 --no-overwrites --output "D:\Udemy\%(playlist)s\%(chapter_number)s - %(chapter)s\%(playlist_index)s - %(title)s.%(ext)s" --batch-file "D:\Udemy\kurse.txt" -u meinbenutzername -p meinpasswort

chris
1. Februar 2017 um 17:48 Uhr

it works!!!! vielen vielen dank dafür! 🙂

Michael
26. Juni 2017 um 14:32 Uhr

Danke für diesen Beitrag, die Informationen sind Gold wert!

Markus
11. Januar 2018 um 7:27 Uhr

Einwandfrei!
Was soll ich sagen, sehr einfach und verständlich beschrieben und funktioniert einfach nur!

Vielen Dank für deine tolle Anleitung!

Michael
14. Februar 2018 um 20:15 Uhr

Hallo.
Das Script funktioniert nicht mehr.
Ich bekomme immer die Fehlermeldung
[udemy:course] Downloading login popup
youtube-dl : ERROR: Unable to download webpage: HTTP Error 403: Unauthorized (caused by ); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version;
see https://yt-dl.org/update on how to update. Be sure to call youtube-dl with the –verbose flag and include its
complete output.
In Zeile:1 Zeichen:1
+ youtube-dl –output „~\videos\%(playlist)s\%(chapter_number)s – %(cha …
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (ERROR: Unable t…omplete output.:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError

Aber die Anmeldung ist korrekt mit Passwort und email ??? komisch.
Es hat letztes Jahr noch einwandfrei funktioniert. Hab ich irgendwas vergessen einzustellen?

Aufschnürer
15. Februar 2018 um 9:42 Uhr

Hallo Michael, wie in der Fehlermeldung schon steht, ist es wichtig immer die aktuellste Version des youtube-dl Programms zu nutzen. Öffne die PowerShell mit Adminrechten und update das Python-Script mittels
pip install --upgrade youtube-dl

Rene
15. Februar 2018 um 17:44 Uhr

Hi Aufschnürer,
nö funkt leider nicht mehr..habe die gleiche Meldung, Update ist installiert. Letzte Woche ohne Probleme, seit Montag 12.02. geht es nicht mehr… selbst ältere ausprobiert…geht nicht. Muss man wohl auf ne neue Version warten….

Aufschnürer
15. Februar 2018 um 19:09 Uhr

Hallo Rene, danke für die Rückmeldung! Ich kann es leider erst am Wochenende testen. Aber so wie es aussieht, ist dieses Problem bereits bekannt. Vielleicht ist wieder etwas an der Udemy-API geändert worden. Da hilft wohl leider nur warten auf eine neue Version von youtube-dl.

Aufschnürer
22. Februar 2018 um 15:36 Uhr

Hallo zusammen, ich habe nun einiges recherchiert und so wie es aussieht, will Udemy jetzt ernst machen und den automatisierten Downloads einen Riegel vorschieben. Das youtube-dl Script läuft daher leider immer noch nicht, obwohl einige behaupten, nach der Installation der Python-Erweiterung pyOpenSSL würde das Script wieder funktionieren.

Bei meiner Recherche auf Github bin ich zum Glück auf ein weiteres Python-Script gestoßen, das speziell für Udemy entwickelt wurde. Ich habe es ausprobiert und es funktioniert bei mir einwandfrei (Windows 10, Python 3.6). Daher habe ich den kompletten Artikel überarbeitet und erweitert. Schaut einfach oben zum Kapitel „Variante 1: udemy-dl“.

Schöne Grüße!

Michael
23. Februar 2018 um 0:23 Uhr

Danke Aufschnürer. aber bei mir funktioniert es nicht.
Python 3.6.4. und Windows 10
es kommt der Fehler:
[*] : Downloading webpage..
[*] : Extracting course information..
[*] : Downloading ‚blendertutorial‘.
[*] : Trying to login as (xxx@xxx.de)…
[-] Unable to extract login-form form
Traceback (most recent call last):
File „udemy-dl.py“, line 936, in
main()
File „udemy-dl.py“, line 889, in main
udemy.ExtractAndDownload(quality=res, default=True)
File „udemy-dl.py“, line 303, in ExtractAndDownload
self.login()
File „udemy-dl.py“, line 40, in login
extract_info.login(self.username, self.password)
File „C:\python\udemy\_extractor.py“, line 147, in login
login_form = self._fill_login_form(login_popup, username, password)
File „C:\python\udemy\_extractor.py“, line 98, in _fill_login_form
login_form = self._form_hidden_inputs(‚login-form‘, webpage)
File „C:\python\udemy\_extractor.py“, line 88, in _form_hidden_inputs
return _hidden_inputs(form)
File „C:\python\udemy\_utils.py“, line 80, in _hidden_inputs
html = re.sub(r'<!–(?:(?!‚, “, html)
File „C:\Python\lib\re.py“, line 191, in sub
return _compile(pattern, flags).sub(repl, string, count)
TypeError: expected string or bytes-like object
PS C:\python>

Schade. Aber ich verstehe auch die Fehlermeldung gar nicht.

Aufschnürer
23. Februar 2018 um 8:44 Uhr

Tatsächlich, bei mir funktionierte es nun auch nicht mehr. Aber nicht verzagen, anscheinend gab es gestern wieder eine Änderung bei Udemy, weshalb das Script die Login-Seite nicht mehr korrekt parsen konnte. Das Problem wurde vom Scriptautor bereits gepatcht. Einfach nochmal die aktuelle Version herunter laden und komplett entpacken.

Rene
23. Februar 2018 um 10:29 Uhr

Super, vielen Dank für die Info…läuft wieder!

Aufschnürer
24. Februar 2018 um 0:34 Uhr

Kleiner Nachtrag: Mir ist erst im Nachhinein aufgefallen, dass das udemy-dl Script aktuell noch keine Umlaute beherrscht bzw. diese einfach als ungültige Zeichen weg-„normalisiert“. Ich stehe bereits mit dem Entwickler in Kontakt und er wird sich die Sache mal ansehen.

Bis dahin hilft ein einfacher, wenn auch nicht ganz hübscher Workaround, den ich auf die Schnelle heraus gefunden habe: Im Skriptunterverzeichnis „udemy“ die Datei „_sanitize.py“ mit einem Editor öffnen und in der Zeile 68 den in Hochkomma umschlossenen Parameter ‘NFKC‘ ändern in ‘NFKD‘. Dann abspeichern und alle Dateien aus dem Verzeichnis „__pycache__“ löschen. Dieser Kniff sorgt dafür, dass die Umlaute in den Datei- und Verzeichnisnamen nicht gelöscht werden, sondern zumindest gegen die nächsten Verwandten getauscht werden (ö=o, Ü=U, usw.).

Michael
27. Februar 2018 um 16:09 Uhr

Hurra. Es läuft heute wieder. Vielen, vielen Dank.
Das ist so wertvoll, sich auch weiterzubilden unterwegs jederzeit und ohne Internet.
Sehr sehr cool.
Und bezahlt habe ich ja dafür. Also auch kein schlechtes Gewissen,

Sledge
24. April 2018 um 16:12 Uhr

Ich würde auf jeden Fall auch sehr gerne die Videos runterladen, aber dafür gibt es ja auch den videodownloadhelper. Das mit dem Python-Script ist mir zu lästig und aufwendig. Andauernd schreiben und das bei jedem Video, auch wenn es nur 50 sekunden sind, ne. Das ist es mir nicht wert. Wir haben hin und wieder Verbindungsprobleme und ich habe nicht immer Zeit wenn die Leitung funktioniert und ich Udemy nutzen könnte. Darum wäre das eine gute Sache.

Aufschnürer
30. April 2018 um 19:13 Uhr

@Sledge: Was meinst du mit „andauernd schreiben und das bei jedem Video“? Das Download-Script wie oben gezeigt ist ein fertiger Einzeiler und man muss lediglich seine eigenen Udemy-Zugangsdaten und den Kurslink einfügen. Damit lässt sich ein kompletter Kurs in einem Rutsch zur Offline-Nutzung herunterladen. Klar, man muss einmalig Python auf dem Rechner installieren, aber das ist ja kein Hexenwerk. Meiner Meinung nach ist das letztlich komfortabler und flexibler als über den Videodownloadhelper.

Laura
2. Mai 2018 um 18:03 Uhr

Script funktioniert wunderbar. Vielen Dank an den Entwickler.

Insbesondere, da bei Udemy gerade der Login mit Firefox und Cromium nicht funktioniert und man somit auf Windows und den IE angewiesen war.

Mollet
18. August 2019 um 10:09 Uhr

Vielen Dank, auch heute am 18.08.2019 funktioniert es mit der Cookie authentifizierung immer noch einwandfrei ! Die Kurse sind manchmal ganz schön groß… meiner hatte über 20GB…

Paul
29. September 2019 um 18:14 Uhr

Hallo Leute,
bisher hat es immer geklappt, seit heute bei mir irgendwie nicht mehr.
Wenn ich den Weg über die Cookies wähle, bekomme ich ständig „It seems either you are not enrolled or you have to visit the course atleast once while you are logged in“,
obwohl ich sowohl den Kurs bereits begonnen, als auch eingeloggt bin.
Wenn ich über Passwd und EMail versuche, erscheint „Udemy says: 400 Oops, Bad Request, something went wrong….“, obwohl die Daten nachweislich stimmen.

Udemy-dl-master ist aktualisiert und auf dem neusten Stand, Powershell mit AdminRechten gestartet.

Hat jemand eine Idee? Bin dankbar für jede Hilfe

Aufschnürer
15. Dezember 2019 um 16:13 Uhr

Downloade das Skript frisch von der Website und lasse lokal alle vorhandenen Dateien mit den neuen überschreiben. Ich hatte denselben Fehler und seit dem Re-Download geht es wieder. Obwohl das udemy-dl Skript noch dieselbe Versionsnummer trägt, scheint sich doch irgendwo etwas in den Innereien des Skripts geändert zu haben.

Wum
31. Mai 2021 um 13:59 Uhr

Hi Leute, ich habe mir gerade wieder meine Kurse mit der autoverion mit geholt bzw wollte ich sie holen. Es lädt alles außer die Vids. Eine Idee? 🤔 Bin dankbar für jedem Tipp.

Aufschnürer
25. Juni 2021 um 14:10 Uhr

Also wenn du udemy-dl nutzt, dann würde mir nur der Parameter ‚–assets-only‘ als Ursache einfallen. Wenn du diesen verwendest, werden nämlich die Videos übersprungen und nur alles andere an Kursbegleitmaterial heruntergeladen.

Rene B
16. Februar 2022 um 16:20 Uhr

Hallo Aufschnürer, ich finde es toll, das es Leute gibt, welche sowas auf die beine stellen und posten.
Leider funktioniert das ganze bei mir nicht. Hier mal die Fehlermeldung:
[i] : Trying to login as (benutzername)
[i] : Using existing session..
[i] : Logged in successfully.
Udemy Says: 403 Forbidden on https://www.udemy.com/api-2.0/users… usw

Ich habe, das hoffe ich, auch die aktuellen Versionen der Tools und Scripte.
Vielleicht noch eine Idee?

Gruß Rene B

Aufschnürer
16. Februar 2022 um 18:34 Uhr

Hallo Rene, vielen Dank für dein Feedback! Udemy nimmt immer mal wieder Änderungen an deren API-Schnittstelle vor. Ab diesem Moment funktionieren dann meist sämtliche Downloader-Scripts nicht mehr, solange, bis diese vom jeweiligen Autor angepasst wurden. Das könnte jetzt so ein Fall sein, denn auch bei mir kommt dieselbe Fehlermeldung. Da heißt es abwarten, und gelegentlich prüfen, ob es ein neues Update für das Downloader-Skript gibt. Viele Grüße

Rene B
16. Februar 2022 um 21:23 Uhr

Hi Aufschnürer,

das Update mach ich mit
pip install –upgrade youtube-dl?

Oder muß ich immer auf der github-Seite schauen?

Gruß Rene B

Aufschnürer
22. Februar 2022 um 11:30 Uhr

Wie ich gerade erfahren habe, ist das wohl ein größeres Problem, bzw. so wie es aussieht, das Ende für Downloader-Skripte. Siehe mein Update-Hinweis ganz oben im Artikel.



Deine Meinung zählt