cron 作业未执行 youtube-dl 命令

cron 作业未执行 youtube-dl 命令

我想在 cron 任务中使用“youtube-dl”命令从 youtube 下载视频。因此我创建了以下 cron 任务:

26 00 * * * /usr/local/bin/youtube-dl -o '/home/ubuntu/youtube/%(title)s.%(ext)s' http://www.youtube.com/playlist?list=PLbbPU9KV1D2B4woNNQp3bWSotlHVVtRZr

当我从终端运行此命令时,它可以正常工作,但如果从 cron 作业调用它,它不会下载任何内容。我已通过 安装了它apt-get install youtube-dl

which youtube-dl返回/usr/local/bin/youtube-dl

最好的

答案1

我通过制作包含以下内容的 bash 脚本解决了这个问题。

#!/bin/bash
/usr/local/bin/youtube-dl -xwik -r 1M http://video.kings.nhl.com/videocenter/ -o '/data/www/kv/%(title)s-%(id)s.%(ext)s' >> /data/www/kv/out.txt

我尝试了许多其他方法,/usr/local/bin/youtube-dl最终成功了。它也可能让 cron 行在没有脚本的情况下也能工作,我不确定。

答案2

crontab 命令字段中的字符%比较特殊。您需要用字符对每个字符进行转义\

crontab(5)

The "sixth" field (the rest of the line) specifies the command to be
run.  The entire command portion of the line, up to a newline or a
"%" character, will be executed by /bin/sh or by the shell specified
in the SHELL variable of the cronfile.  A "%" character in the
command, unless escaped with a backslash (\), will be changed into
newline characters, and all data after the first % will be sent to
the command as standard input.

答案3

将您的 crontab 条目更改为此

26 00 * * * /usr/local/bin/youtube-dl -o '/home/ubuntu/youtube/%(title)s.%(ext)s' http://www.youtube.com/playlist?list=PLbbPU9KV1D2B4woNNQp3bWSotlHVVtRZr > /home/ubuntu/youtube/Log 2>&1

您甚至可以看到/home/ubuntu/youtube/Log文件中的活动日志。

编辑:原始代码试图执行字符串常量。最后的“&”符号也是多余的。

相关内容