下载播放列表中的视频元数据时防止 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 从 shell 中分叉或分离(我理解得对吗?),输出被发送到终端而不是文件。该进程似乎卡住了,等待着某事。可以使用 ctrl-c 终止它。

为什么 youtube-dl 会这样做?我能阻止它发生吗?我想存储与播放列表相关的元数据以及与视频相关的元数据。

答案1

如果您使用操作员运行这些进程,则将它们置于后台&

由于有问题的 YouTube URL 具有“&”分隔查询参数,因此它们必须是为了防止 shell 将“&”解释为运算符,请将整个 URL 放在双引号中(如果您还在 URL 中使用变量,建议这样做),或者至少在 & 前面加上反斜杠:

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

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

相关内容