Quiero descargar un video en streaming. Cuando voy a Chrome DevTools -> Red en lugar de un enlace al video mp4, encuentro muchos enlaces similares ...hd4b.mp4/fragment-1-v1.m4s
y otros similares ...a1.m4s
para audio. También hay una inicial ...hd4b.mp4/init-v1.mp4
y ...init-a1.mp4
. Hay demasiados fragmentos para copiarlos manualmente.
Entonces necesito saber cómo filtrar todos los enlaces de fragmentos .m4s para el archivo .mp4 que quiero. Hay unresponde aquíeso me da todos los enlaces en Redes y luego de ejecutarlo puedo pegar los enlaces a un archivo pero me sale enlaces que no son parte del .mp4 que quiero también. Realmente no importa, pero sería bueno obtener sólo los enlaces para el archivo ...hd4b.mp4
.
¿Cómo consigo los enlaces de vídeo en un archivo y los de audio en otro?
¿Qué debo hacer con los init
enlaces? ¿Agregarlos a la lista?
Ahora que lo pienso, la forma de obtener los enlaces sería ir al final del vídeo y obtener el último número y generar los enlaces modificando el número del uno al último. ¿Cómo generaría los enlaces?Respuesta.
Y luego cuando tenga los enlaceseste es el caminopara descargarlos pero ¿cómo fusiono las partes del video?
Y cuando tenga el audio y el video como los combino en el mp4 final?
Respuesta1
youtube-dl
Intente usar la última versión para descargar el video. Si no puedes seguir los pasos.
Primero consigue los enlaces.
En Chrome, vaya a DevTools -> Redes y busque los enlaces del primer y último fragmento. Si los enlaces son secuenciales genere los enlaces como:
seq -f "...hd4b.mp4/fragment-%g-v1.m4s" 10 > video-links.txt
Donde %g
irá del 1 al 10. Si hay un enlace de inicio, debe incluirse al principio del video-links.txt
archivo.
Si los enlaces no son secuenciales cópielos así:
- Cambie devtools a la ventana separada (haga clic en el ícono de configuración de devtools, haga clic en el ícono de desacoplamiento del "lado del acoplamiento"). La próxima vez simplemente presione Ctrl- Shift- D.
- Invoque devtools-for-devtools presionando Ctrl- Shift-i
- Ejecute este código para copiar las URL de todas las solicitudes filtradas al portapapeles:
copy(UI.panels.network._networkLogView._dataGrid._rootNode._flatNodes.map(n => n._request._url).join('\n'))
Puede guardar el código como un fragmento en el panel Fuentes y ejecutarlo haciendo clic derecho o 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
Después de ejecutar el script, los enlaces están en el portapapeles, así que péguelos en un archivo.
Descargar vídeo y audio
wget -i "video-links.txt" -O "video.mp4" -B "...hd4b.mp4/"
Utilice la opción -B con la base de la URL.
Descarga el audio siguiendo los mismos pasos que para el vídeo.
Fusionar vídeo y audio
ffmpeg -i video.mp4 -i audio.wav \
-c:v copy -c:a aac -strict experimental output.mp4