Youtube-dl descargar desde la terminal pero pausar desde un programa de Java (mismo comando)
Pude descargar el video incrustado desde la terminal, pero cuando lo llamo desde el programa de Java no funciona.
Este es el código que uso desde Java:
for(String url: referrerSet) {
String command = "youtube-dl " + url;
System.out.println(command);
Process proc = Runtime.getRuntime().exec(command);
BufferedReader reader = new BufferedReader(new InputStreamReader(proc.getInputStream()));
String line = "";
while((line = reader.readLine()) != null) {
System.out.print(line + "\n");
}
}
youtube-dl https://player.vimeo.com/video/2352345 --referer 'https://referrerUrl.html'
Cuando ejecuto desde la terminal:
[vimeo] 2352345: Descargando la página web
[vimeo] 2352345: Extrayendo información
[vimeo] 2352345: Descargando metadatos JSON
ADVERTENCIA: No se pueden descargar los metadatos JSON: Error HTTP 404: No encontrado
Y comienza a descargar el video. Pero cuando lo ejecuto desde Java, solo veo esta salida:
[vimeo] 2352345: Descargando la página web
Y pasa al siguiente enlace sin descargar el video.
davy.ai
Parece que el problema está relacionado con la falta del parámetro
--referer
en el código Java. Cuando ejecutas el comandoyoutube-dl
en la terminal, incluyes el parámetro--referer
que especifica la URL del remitente para el video. Sin embargo, al ejecutar el comando desde Java, te falta ese parámetro, lo que puede hacer que el servidor niegue el acceso al video.Para resolver el problema, necesitas modificar el código Java para incluir el parámetro
--referer
en la cadenacommand
, de esta manera:Con esta modificación, el comando ejecutado desde Java debería incluir la URL del remitente adecuada y, con suerte, los videos deberían comenzar a descargarse.