
Manchmal möchte man sich an ein schönes Konzert zurückerinnern. Die gekauften CD oder die MP3s der Band sind nicht genug – und man findet heraus, dass es online einen aufgezeichneten Live-Stream des Konzerts gibt. Doch wie bekommt man den auf die eigene Festplatte? Hier beispielhaft die Vorgehensweise für den Download eines Konzertmitschnitts auf emap.fm unter Windows. Wichtig: Bitte klärt im Vorfeld ab, ob es in Ordnung ist, dass ihr das Konzert herunterlädt! Ich möchte hier nicht zu einer illegalen Handlung verleiten!
Update: Ich habe das Ganze zu einem PowerShell 7 – Skript kombiniert.
Wer daran interessiert ist, bitte schreibt mir!
Voraussetzungen
Folgende Tools werdet ihr benötigen – erstellt am besten einen neuen Ordner, zum Beispiel C:\Download, und entpackt diese dort hinein:
- wget: Zum Stapel- (Batch-)Download von mehreren Dateien
Wir brauchen nur diewget.exe
- ffmpeg: Zum Zusammenfügen der Teilstücke und zum Umwandeln in MP3
Wir brauchen nur dieffmpeg.exe
aus dem Unterordnerbin
1. Downloadlinks bekommen
Eine Aufnahme setzt sich aus vielen Teilstücken (viel kleiner als einzelne Lieder zusammen). Wir müssen diese daher herunterladen und dann zusammensetzen. Als ersten Schritt benötigen wir also eine Liste mit den Dateien, die wir herunterladen müssen.
Dazu öffnen wir den emap.fm-Player im Browser und öffnen mit F12 die Entwicklertools. Unter Elemente
findet sich der Inhalt der Website. Ein Element mit der Klasse playlist
kann man aufklappen – und man kommt zu einem Download-Link:

Wenn wir diesen m3u8-Link im Browser herunterladen und anschließend mit dem Editor öffnen, sehen wir folgendes:
EXTM3U
EXT-X-VERSION:3
EXT-X-STREAM-INF:BANDWIDTH=127999,CODECS="mp4a.40.2"
chunklist_w394191236.m3u8
Wir sehen also, dass die letzte Zeile wieder auf eine Playlist verweist. Um diese zu erhalten, nehmen wir den ersten Teil des Links von oben und ersetzen nur den Schluss mit dem neuen Dateinamen. Wir erhalten also:
https://emap.fm:1936/concerts/mp4:20230723_tantehedwig.m4a/chunklist_w394191236.m3u8
Wenn wir diese Datei herunterladen und öffnen sehen wir eine Liste der Teile (Chunks) aus denen sich der Stream zusammensetzt:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:10.0,
media_w394191236_0.aac
#EXTINF:10.0,
media_w394191236_1.aac
...
Wir könnten nun, wenn wir vor jeden Dateinamen den ersten Teil des Links einfügen, nun jeden Teil herunterladen – das würde jedoch ewig dauern. Wir automatisieren also.
2. Teile (Chunks) herunterladen
Gottseidank bietet sogar der Windows-Editor genug Möglichkeiten, diese „Chunk-Playlist“ so aufzubereiten, damit wir sie an wget
füttern können, damit dieses Tool alle Chunks für uns herunterlädt.
Dazu öffnen wir die Datei, wählen Ersetzen
und ersetzen den ersten Teil der Dateinamen mit dem Link und dem ersten Teil des Dateinamens. Anschließend wählen wir Alles ersetzen
.

Die Datei sollte nun so aussehen:

Nachdem wir diese Datei gespeichert haben, öffnen wir in diesem Ordner die Kommandozeile (stelle sicher, dass wget
im Ordner liegt!) und übergeben sie als Downloadliste an das Tool:
wget -i chunklist_w394191236.m3u8 --no-check-certificate
Wir erhalten einige Fehlermeldung – das sind die Zeilen, die keinen Downloadlink enthalten – aber schließlich sollten wir mehrere hundert aac-Dateien heruntergeladen haben.
3. Sortieren der Dateien
Bei den heruntergeladenen Dateien ist es leider so, dass die Anzahl der Stellen bei der Nummerierung nicht ganz passt und die alphabetischer Reihenfolge nicht ganz passt (auch wenn Windows das bei der Anzeige „überspielt“ durch sein „Natural Sorting“). Ein Problem, das wir lösen müssen, da die gewünschte Reihenfolge von ffmpeg
alphabetisch ist:

Eine Möglichkeit wäre, händisch die Nullen einzufügen, aber das ist einiges an Handarbeit. Ich löse dieses Problem mit dem Total Commander. Hier die kurze Anleitung:
Die Anzeige vom Total Commander unter Einstellungen
> Anzeige
auf Natürliche Sortierung stellen:

Anschließend alle ACC-Dateien markieren und mit dem Mehrfach-Umbenenn-Tool einen 3stelligen Zähler vor dem Dateinamen einfügen:

Wenn man nun die Anzeige wieder auf Alphabetisch umschaltet, sind die Dateien nun sortiert.
4. Liste der Dateien für ffmpeg erstellen und zusammenfügen
Das Tool, um alle diese Chunks (also die Dateien) zusammenzufügen, nennt sich ffmpeg
. Es benötigt die Liste alle Dateien in einer Textdatei, die wir mit folgendem Befehl in diesem Ordner erstellen:
(for %i in (*.aac) do @echo file '%i') > mylist.txt
Nun füttern wir diese Textdatei an ffmpeg
, um alle Chunks zusammenzufügen:
ffmpeg -f concat -safe 0 -i mylist.txt -c copy output.aac
Die Fehlermeldungen können wir wieder ignorieren. Wir haben nun eine Datei, die alle Chunks beinhaltet.
Umwandeln in MP3
Als letzten Schritt wandeln wir diese Datei in eine MP3-Datei um. Dazu nutzen wir wieder ffmpeg
:
ffmpeg -i "output.aac" -codec:a libmp3lame -q:a 2 "output.mp3"
Nach der erfolgreichen Umwandlung können wir alle Dateien bis auf output.mp3
löschen – in der sich das Konzert befindet!
Viel Spaß! 🎤🎧🎸🎹🪗