Armazenar os metadados de um vídeo usando um arquivo usando youtube-dl pode ser feito no bash chamando
youtube-dl -j https://www.youtube.com/watch?v=${video_id} > metadata.json
No entanto, quando o vídeo é referenciado no contexto de uma playlist, ou seja, chamando
youtube-dl -j https://www.youtube.com/watch?v=${video_id}&list=${list_id}&index=${index} > metadata.json
então o youtube-dl bifurca ou desconecta do shell (estou entendendo isso corretamente?) e a saída é enviada para o terminal em vez de para o arquivo. O processo parece ficar preso esperando por algo. Ele pode ser encerrado usando ctrl-c.
Por que o youtube-dl faz isso e posso evitar que isso aconteça? Desejo armazenar os metadados relacionados à lista de reprodução, bem como os metadados relacionados ao vídeo.
O shell coloca os processos em segundo plano se você os executar com o
&
operador.Como os URLs do YouTube em questão têm um "&" separando os parâmetros de consulta, eles devem ser citados para evitar que o shell interprete esse "&" como um operador - coloque o URL inteiro entre aspas duplas (recomendado se você também usar variáveis no URL), ou pelo menos prefixe o & com uma barra invertida: