Laden Sie Streaming-Videos mit vielen XHR-Teilen herunter, die für Audio und Video getrennt sind

Laden Sie Streaming-Videos mit vielen XHR-Teilen herunter, die für Audio und Video getrennt sind

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.m4sund andere wie ...a1.m4sfür Audio. Es gibt auch einen Anfangsbuchstaben ...hd4b.mp4/init-v1.mp4und ...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 initLinks 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 %gvon 1 bis 10 geht. Wenn ein Init-Link vorhanden ist, muss dieser am Anfang der video-links.txtDatei eingefügt werden.

Wenn die Links nicht sequenziell sind, kopieren Sie sie wie folgt:

  1. 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.
  2. Rufen Sie devtools-for-devtools auf, indem Sie Ctrl- Shift- drücken.i
  3. 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

verwandte Informationen