Quero baixar um streaming de vídeo. Quando vou para Chrome DevTools -> Rede em vez de um link para o vídeo mp4, encontro muitos links como ...hd4b.mp4/fragment-1-v1.m4s
e outros ...a1.m4s
para áudio. Há também uma inicial ...hd4b.mp4/init-v1.mp4
e ...init-a1.mp4
. Existem muitos fragmentos para copiá-los manualmente.
Portanto, preciso saber como filtrar todos os links de fragmentos .m4s para o arquivo .mp4 que desejo. Há umresponda aquiisso me dá todos os links em Redes e depois de executá-lo posso colar os links em um arquivo mas ele obtém links que não fazem parte do .mp4 que desejo também. Realmente não importa, mas seria bom obter apenas os links para o arquivo ...hd4b.mp4
.
Como obtenho os links de vídeo em um arquivo e os de áudio em outro?
O que devo fazer com os init
links? Adicioná-los à lista?
Agora que penso, a forma de conseguir os links seria ir até o final do vídeo e pegar o último número e gerar os links modificando o número de um para o último. Como eu geraria os links?Responder.
E então, quando eu tiver os linksaqui está o caminhopara baixá-los, mas como faço para mesclar as partes do vídeo?
E quando eu tiver o áudio e o vídeo como faço para combiná-los no mp4 final?
Responder1
youtube-dl
Tente usar a versão mais recente para baixar o vídeo. Se você não consegue seguir os passos.
Primeiro pegue os links
No Chrome, vá para DevTools -> Redes e encontre os links do primeiro e do último fragmento. Se os links forem sequenciais, gere os links como:
seq -f "...hd4b.mp4/fragment-%g-v1.m4s" 10 > video-links.txt
Onde %g
irá de 1 a 10. Se houver um link init ele deverá ser incluído no início do video-links.txt
arquivo.
Se os links não forem sequenciais, copie-os assim:
- Mude o devtools para uma janela separada (clique no ícone de configurações do devtools, clique no ícone de desencaixe "dock side"). Da próxima vez você pode simplesmente pressionar Ctrl- Shift- D.
- Invoque devtools-for-devtools pressionando Ctrl- Shift-i
- Execute este código para copiar os URLs de todas as solicitações filtradas para a área de transferência:
copy(UI.panels.network._networkLogView._dataGrid._rootNode._flatNodes.map(n => n._request._url).join('\n'))
Você pode salvar o código como um Snippet no painel Fontes e executá-lo clicando com o botão direito ou 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
Depois de executar o script, os links ficam na área de transferência, então cole-os em um arquivo.
Baixe vídeo e áudio
wget -i "video-links.txt" -O "video.mp4" -B "...hd4b.mp4/"
Use a opção -B com a base da URL.
Baixe o áudio seguindo os mesmos passos do vídeo.
Mesclar vídeo e áudio
ffmpeg -i video.mp4 -i audio.wav \
-c:v copy -c:a aac -strict experimental output.mp4