使用 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 会这样做,我可以防止它发生吗?我想存储与播放列表相关的元数据以及与视频相关的元数据。
如果您使用操作员运行进程,shell会将进程置于后台
&
。因为有问题的 YouTube URL 有一个“&”分隔查询参数,所以必须引用它们以防止 shell 将“&”解释为一个运算符——或者将整个 URL 放在双引号中(如果您还在URL),或者至少在 & 前面加上一个反斜杠: