Evite la bifurcación del proceso youtube-dl al descargar metadatos para un video en una lista de reproducción

Evite la bifurcación del proceso youtube-dl al descargar metadatos para un video en una lista de reproducción

El almacenamiento de los metadatos de un video en un archivo usando youtube-dl se puede realizar en bash llamando

youtube-dl -j https://www.youtube.com/watch?v=${video_id} > metadata.json

Sin embargo, cuando se hace referencia al vídeo en el contexto de una lista de reproducción, es decir, llamando

youtube-dl -j https://www.youtube.com/watch?v=${video_id}&list=${list_id}&index=${index} > metadata.json

luego youtube-dl se bifurca o se separa del shell (¿estoy entendiendo esto correctamente?) y la salida se envía a la terminal en lugar de al archivo. El proceso parece quedarse atascado esperando algo. Se puede finalizar usando Ctrl-c.

¿Por qué youtube-dl hace esto y puedo evitar que suceda? Quiero almacenar los metadatos relacionados con la lista de reproducción, así como los metadatos relacionados con el vídeo.

Respuesta1

Elcaparazónpone los procesos en segundo plano si los ejecuta con el &operador.

Debido a que las URL de YouTube en cuestión tienen un "&" que separa los parámetros de consulta, deben sercitadoPara evitar que el shell interprete ese "&" como un operador, coloque toda la URL entre comillas dobles (recomendado si también usa variables en la URL), o al menos anteponga & con una barra invertida:

"https://host?a=b&c=d"

https//host?a=b\&c=d

información relacionada