Immer wieder kommt es vor, dass irgendwo eine Konferenz stattfindet die ich nicht besuchen kann. Vorträge werden gehalten die mich interessieren - aber wann habe ich die Zeit um mir diese anzusehen... Moment... ich brauche sie nicht sehen. Ich will sie hören. Das kann ich gut im Auto machen. Dafür brauche ich sie allerdings als MP3.
Auch dazu eignet sich das Tool youtube-dl hervorragend. Wenn ich mir also alle Vorträge von zum Beispiel dem CCC (es gibt sie als Playlist hier: https://www.youtube.com/user/mediacccde/playlists) herunterladen möchte, dann kann ich das einfach mit einem solchen Aufruf machen:
youtube-dl --extract-audio --audio-format mp3 --continue -i -o "%(title)s.%(ext)s" https://URL-ZUR-PLAYLIST-ODER-ZUM-YOUTUBE-VIDEO
Anschließend habe ich alle dort enthaltendenen Videos als MP3 auf meiner Platte und im Falle eines Fehler wird einfach das Video übersprungen (dafür ist der Schalter -i).
Immer wieder komme ich an den Punkt, das ich mir Videos für den Offlineverzehr herunterladen möchte. Seit es für den Urlaub, bei dem ich bewusst auf das Internet verzichten möchte. Oder aber einfach nur, weil ich auf einer längeren Autofahrt nicht auf die Netzabdeckung verlassen möchte.
Es hat sich herausgestellt, dass das Tool youtube-dl der beste Freund ist, den man sich für diese Aufgabe wünschen kann.
Im Falle von udemy muss man sich allerdings ein wenig durch das Internet suchen, wenn man sich alle notwendigen Informationen heraussuchen möchte die man braucht, damit die gekauften Kurse endlich auf der Platte landen.
Dazu habe ich mir ein Skript gebaut, damit mir ein wenig die Arbeit abnimmt. Zuvor allerdings erstelle ich mir eine Datei courses.txt in welcher ich die URLs zum content Pfad meiner Kurse pflege:
...
https://www.udemy.com/**KURSNAME**/learn/v4/**content**
...
Nachdem ich das getan habe, kann es daran gehen mein Skript aufzuabuen und mit den notwendigen Werten vorzukofigurieren:
download_couses.sh
#!/bin/bash
COURSEFILE=***/PATH/TO/***courses.txt
USERAGENT="Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25"
FORMAT=best
USERNAME=***MY@USERNAME***
PASSWORD=***MY-SECRET-PASSWORD***
SAVESTYLE="./%(playlist)s/%(chapter_number)s-%(chapter)s/%(playlist_index)s-%(title)s.%(ext)s""
SAVEDIR=***/PATH/TO/VIDEOS***
cd $SAVEDIR
for i in $(cat $COURSEFILE);
do
DOWNLOADSTRING="./youtube-dl --continue --sleep-interval 10 --user-agent '$USERAGENT' -u $USERNAME -p $PASSWORD -f $FORMAT -o $SAVESTYLE $i"
./youtube-dl --continue --sleep-interval 10 --user-agent '$USERAGENT' -u $USERNAME -p $PASSWORD -f $FORMAT -o $SAVESTYLE $i
if [ $? -ne 0 ]
then
echo "error with $DOWNLOADSTRING"
exit 1
fi
done
Für die Erledigung dieser Aufgabe reicht mir das so und ist handy genug. In meinem Fall werden die Kurse dann in meinem Homeorder unter Videos gespeichert im Format Kursname -> Kapitel -> 001 - Titel