让youtube dl等待实时流启动

让youtube dl等待实时流启动,youtube,youtube-dl,Youtube,Youtube Dl,使用youtube dl,您可以轻松下载正在进行的流媒体直播 $youtube dl--hls使用mpegts 但是,如果目标live stream尚未启动,则该命令会在打印以下消息后立即退出 [youtube] I1gi2ABCDEf: Downloading webpage ERROR: This live event will begin in a few moments. 是否可以让youtube dl等待直播流开始,然后再录制 我目前的解决办法是: #伪代码 while(true)

使用youtube dl,您可以轻松下载正在进行的流媒体直播

$youtube dl--hls使用mpegts
但是,如果目标live stream尚未启动,则该命令会在打印以下消息后立即退出

[youtube] I1gi2ABCDEf: Downloading webpage
ERROR: This live event will begin in a few moments.
是否可以让youtube dl等待直播流开始,然后再录制

我目前的解决办法是:

#伪代码
while(true){
开始=时间()
执行youtube dl
结束=时间()
如果(结束-开始>10秒){#如果录制成功
打破
}
睡眠(几秒钟)
}
或者这个:

#伪代码
while(true){
如果(使用\u curl\u或\u youtube\u api()检查\u live\u是否处于活动状态){
打破
}
睡眠(几秒钟)
}
执行youtube dl
将两者结合起来现在已经很好了(实际上第二个应该足够了,但我也使用第一个作为后备方案),但是如果有一种更优雅的方式就好了。

也许这样就可以了

until youtube-dl --hls-use-mpegts <URL>; do continue; done
但如果您正在寻找,则没有内置函数。

最好的方法是您已经使用脚本或命令行解决方法完成的方法。

如果您碰巧在使用systemd的linux发行版上,您可以使用systemd run来安排一个临时计时器单元。例如,如果流在3:30开始:

systemd-run --working-directory=/path/to/save/file --on-calendar=15:30 youtube-dl --hls-use-mpegts <URL>
systemd run--working directory=/path/to/save/file--on calendar=15:30 youtube dl--hls使用mpegts
您可以添加选项
--property Restart=on failure
--property RestartSec=30
,以便在出现问题时重试

systemd-run --working-directory=/path/to/save/file --on-calendar=15:30 youtube-dl --hls-use-mpegts <URL>