ストリーミング ビデオをダウンロードしたいです。Chrome DevTools -> Network に移動すると、mp4 ビデオへのリンクの代わりに、...hd4b.mp4/fragment-1-v1.m4s
やオーディオ用の などのリンクが多数見つかります。また、最初のおよび も...a1.m4s
あります。手動でコピーするにはフラグメントが多すぎます。...hd4b.mp4/init-v1.mp4
...init-a1.mp4
そこで、必要な.mp4ファイルのすべての.m4sフラグメントリンクをフィルタリングする方法を知る必要があります。ここに答えてくださいこれにより、ネットワーク内のすべてのリンクが表示され、実行後にファイルにリンクを貼り付けることができますが、必要な .mp4 の一部ではないリンクも取得されます。これはあまり問題ではありませんが、 のリンクのみを取得できれば便利です...hd4b.mp4
。
ビデオリンクを 1 つのファイルに、オーディオリンクを別のファイルに取得するにはどうすればよいですか?
リンクはどうすればいいですかinit
? リストに追加しますか?
今考えてみると、リンクを取得する方法は、ビデオの最後まで移動して最後の番号を取得し、番号を 1 から最後まで変更してリンクを生成することです。リンクを生成するにはどうすればよいでしょうか?答え。
そしてリンクができたらこれが道だダウンロードしたいのですが、ビデオ部分を結合するにはどうすればいいですか?
オーディオとビデオができたら、それらを最終的な mp4 でどのように組み合わせればよいでしょうか?
答え1
ユーチューブ
最新バージョンを使用してビデオをダウンロードしてみてください。手順に従えない場合は、
まずリンクを入手
Chrome で DevTools -> Networks に移動し、最初と最後のフラグメント リンクを見つけます。リンクが連続している場合は、次のようなリンクを生成します。
seq -f "...hd4b.mp4/fragment-%g-v1.m4s" 10 > video-links.txt
1 から 10 までどこに%g
行きますか。init リンクがある場合は、ファイルの先頭に含める必要がありますvideo-links.txt
。
リンクが連続していない場合は、次のようにコピーします。
- devtools をデタッチされたウィンドウに切り替えます (devtools 設定アイコンをクリックし、「ドック側」のドッキング解除アイコンをクリックします)。次回は、単にCtrl- Shift- を押すだけですD。
- Ctrl- Shift-を押して devtools-for-devtools を起動しますi
- このコードを実行して、すべてのリクエストまたはフィルタリングされたリクエストの URL をクリップボードにコピーします。
copy(UI.panels.network._networkLogView._dataGrid._rootNode._flatNodes.map(n => n._request._url).join('\n'))
コードをソース パネルのスニペットとして保存し、右クリックまたは Ctrl + Enter で実行できます。
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
スクリプトを実行すると、リンクがクリップボードに保存されるので、それをファイルに貼り付けます。
ビデオとオーディオをダウンロード
wget -i "video-links.txt" -O "video.mp4" -B "...hd4b.mp4/"
URL のベースに -B オプションを使用します。
ビデオと同じ手順に従ってオーディオをダウンロードします。
ビデオとオーディオを結合する
ffmpeg -i video.mp4 -i audio.wav \
-c:v copy -c:a aac -strict experimental output.mp4