使用 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 从 shell 中分叉或分离(我理解得对吗?),输出被发送到终端而不是文件。该进程似乎卡住了,等待着某事。可以使用 ctrl-c 终止它。
为什么 youtube-dl 会这样做?我能阻止它发生吗?我想存储与播放列表相关的元数据以及与视频相关的元数据。
答案1
这壳如果您使用操作员运行这些进程,则将它们置于后台&
。
由于有问题的 YouTube URL 具有“&”分隔查询参数,因此它们必须是引为了防止 shell 将“&”解释为运算符,请将整个 URL 放在双引号中(如果您还在 URL 中使用变量,建议这样做),或者至少在 & 前面加上反斜杠:
"https://host?a=b&c=d"
https//host?a=b\&c=d