Linux shell中youtube-dl的简单队列

nca*_*now 8 python youtube shell daemon

youtube-dl是一个允许用户下载YouTube视频的Python脚本.它支持批量下载选项:

-a FILE, --batch-file=FILE
包含要下载的URL的文件(' - '表示stdin)

我想设置一些队列,所以我可以简单地将URL附加到文件并youtube-dl处理它们.目前,它不会从批处理文件中删除文件.我看到' - 'stdin的选项,不知道我是否可以利用这个优势.

实际上,我想运行youtube-dl某种形式的守护进程,这将检查队列文件并下载包含文件名.

我怎样才能做到这一点?

小智 5

tail -f不起作用,因为脚本一次读取所有输入.

如果您修改脚本以执行批处理文件的连续读取,它将起作用.

然后只需运行脚本:

% ./youtube-dl -a batch.txt -c
Run Code Online (Sandbox Code Playgroud)

将一些数据附加到batch.txt时,请说:

% echo "http://www.youtube.com/watch?v=j9SgDoypXcI" >>batch.txt
Run Code Online (Sandbox Code Playgroud)

该脚本将开始将附加视频下载到批处理中.

这是您应该应用于最新版本"youtube-dl"的补丁:

2278,2286d2277
<       while True:
<           batchurls = batchfd.readlines()
<           if not batchurls:
<               time.sleep(1)
<               continue
<           batchurls = [x.strip() for x in batchurls]
<           batchurls = [x for x in batchurls if len(x) > 0]
<           for bb in batchurls:
<               retcode = fd.download([bb])
Run Code Online (Sandbox Code Playgroud)

希望它有所帮助,快乐的视频观看;)

注意:由于代码重组,此修补程序将不再起作用.有兴趣看看是否可以将其添加到上游代码中.