Предотвратить разветвление процесса youtube-dl при загрузке метаданных для видео в плейлисте

Предотвратить разветвление процесса youtube-dl при загрузке метаданных для видео в плейлисте

Сохранение метаданных для видео в файле с помощью youtube-dl можно выполнить в bash, вызвав

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

Однако, когда видео упоминается в контексте плейлиста, то есть путем вызова

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

затем youtube-dl разветвляется или отсоединяется от оболочки (я правильно понимаю?) и вывод отправляется на терминал вместо файла. Процесс как будто застревает в ожидании чего-то. Его можно завершить с помощью ctrl-c.

Почему youtube-dl делает это и можно ли этого избежать? Я хочу хранить метаданные, относящиеся к плейлисту, а также метаданные, относящиеся к видео.

решение1

Theоболочкапереводит процессы в фоновый режим, если вы запускаете их с помощью &оператора.

Поскольку рассматриваемые URL-адреса YouTube содержат символ «&», разделяющий параметры запроса, они должны бытьцитируетсяЧтобы оболочка не интерпретировала «&» как оператор, либо заключите весь URL в двойные кавычки (рекомендуется, если вы также используете переменные в URL), либо хотя бы добавьте к & обратную косую черту:

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

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

Связанный контент