Ich möchte ein Streaming-Video herunterladen. Wenn ich zu Chrome DevTools -> Netzwerk gehe, finde ich statt eines Links zum MP4-Video viele Links wie ...hd4b.mp4/fragment-1-v1.m4s
und andere wie ...a1.m4s
für Audio. Es gibt auch einen Anfangsbuchstaben ...hd4b.mp4/init-v1.mp4
und ...init-a1.mp4
. Es sind zu viele Fragmente, um sie manuell zu kopieren.
Ich muss also wissen, wie ich alle .m4s-Fragmentlinks nach der gewünschten .mp4-Datei filtern kann. Es gibt eineAntwort hierdas gibt mir alle Links in Netzwerken und nach der Ausführung kann ich die Links in eine Datei einfügen, aber es werden Links abgerufen, die nicht Teil der gewünschten MP4-Datei sind. Es ist nicht wirklich wichtig, aber es wäre schön, nur die Links für die zu erhalten ...hd4b.mp4
.
Wie bekomme ich die Videolinks in eine Datei und die Audiolinks in eine andere?
Was soll ich mit den init
Links machen? Sie der Liste hinzufügen?
Ich denke, der Weg, um die Links zu erhalten, wäre, an das Ende des Videos zu gehen, die letzte Nummer abzurufen und die Links zu generieren, indem man die Nummer von eins bis zur letzten ändert. Wie würde ich die Links generieren?Antwort.
Und wenn ich dann die Links habeHier ist der Wegum sie herunterzuladen, aber wie füge ich die Videoteile zusammen?
Und wenn ich Audio und Video habe, wie kombiniere ich sie im endgültigen MP4?
Antwort1
youtube-dl
Versuchen Sie, das Video mit der neuesten Version herunterzuladen. Wenn Sie den Schritten nicht folgen können.
Holen Sie sich zuerst die Links
Gehen Sie in Chrome zu DevTools -> Netzwerke und suchen Sie nach den ersten und letzten Fragmentlinks. Wenn die Links sequenziell sind, generieren Sie die Links wie folgt:
seq -f "...hd4b.mp4/fragment-%g-v1.m4s" 10 > video-links.txt
Wobei %g
von 1 bis 10 geht. Wenn ein Init-Link vorhanden ist, muss dieser am Anfang der video-links.txt
Datei eingefügt werden.
Wenn die Links nicht sequenziell sind, kopieren Sie sie wie folgt:
- Schalten Sie die Devtools in ein abgetrenntes Fenster um (klicken Sie auf das Devtools-Einstellungssymbol und dann auf das Abkoppelsymbol „Seite andocken“). Das nächste Mal können Sie einfach Ctrl- Shift- drücken D.
- Rufen Sie devtools-for-devtools auf, indem Sie Ctrl- Shift- drücken.i
- Führen Sie diesen Code aus, um die URLs aller/gefilterten Anfragen in die Zwischenablage zu kopieren:
copy(UI.panels.network._networkLogView._dataGrid._rootNode._flatNodes.map(n => n._request._url).join('\n'))
Sie können den Code als Snippet im Quellenbereich speichern und ihn per Rechtsklick oder Strg-Eingabe ausführen:
var URLs = UI.panels.network._networkLogView._dataGrid._rootNode._flatNodes.map(n => n._request._url);
copy(URLs.join('\n'));
URLs; // displays it in the console as an expandable array
Nach der Ausführung des Skripts befinden sich die Links in der Zwischenablage, fügen Sie sie also in eine Datei ein.
Video und Audio herunterladen
wget -i "video-links.txt" -O "video.mp4" -B "...hd4b.mp4/"
Verwenden Sie die Option -B mit der Basis der URL.
Laden Sie den Ton herunter, indem Sie die gleichen Schritte wie für das Video befolgen.
Video und Audio zusammenführen
ffmpeg -i video.mp4 -i audio.wav \
-c:v copy -c:a aac -strict experimental output.mp4