youtube-dl 完成后在终端中运行命令

youtube-dl 完成后在终端中运行命令

正如标题所写,我只想在前一个命令“youtube-dl”完成并关闭后运行命令。我不是在 bash 上运行此命令,而是在 ubuntu 终端上运行。

我想运行这个命令:

Youtube-dl -o output.file link ; sleep 4 ; mv output* /to-directory

命令 1 可以运行 5 秒到 xx 分钟,如果我指定只休眠 4 秒,则无论结果如何,当命令 1 完成并关闭时,可能都没有足够的时间来运行命令 2。我可以使用休眠 4 进行无限延时,但这确实会妨碍我执行命令的速度。

答案1

如果您确实只想移动文件,为什么不直接将其输出到目标目录?

youtube-dl -o /to-directory/output.file link

如果您想要执行其他更复杂的任务,您可以使用--exec底部描述的选项youtube-dl -h,因此命令应如下所示:

youtube-dl -o output.file link --exec 'mv {} /to-directory/'

以下是一个有效示例:

youtube-dl -o irakli https://youtu.be/FyV_49qbvU4 --exec 'mv {} ~/Desktop/'

命令完成后,文件irakli.mkv将位于您的Desktop。尽情观看吧!


附赠曲目:)这是我用来从 youtube.com 下载 mp3 的一个脚本,当我通过桌面浏览器浏览 youtube.com 时。

cat /usr/local/bin/youtube-dl-clipboard # The file must be executable, of course
#!/bin/sh
notify-send "YouTube-Download BEGIN"
youtube-dl -i -x --audio-format mp3 --output "$HOME/Downloads/%(title)s.%(ext)s" "$(xclip -o)"
  • 注意,该脚本使用xclip,因此应与最新版本的一起安装youtube-dl

创建自定义快捷方式如下:

在此处输入图片描述

然后当你浏览youtube.com,只需复制您喜欢的任何视频的链接 - Ctrl+ C,然后按Ctrl+ Alt+ V。几秒钟后,下载目录中将出现一个新的 mp3 文件。

答案2

Youtube-dl -o output.file link && sleep 4 && mv output* /to-directory
或者甚至更好:
Youtube-dl -o /to-directory/output.file link因为您以后不必移动任何东西。

如果 youtube-dl 确实在后台运行并设置为下载后退出,则
您可以使用:

youtube-dl -o output.file link; while :;do sleep 1; [[ $(ps -C youtube-dl -o pid=) ]] || break;done; mv output.* /to-directory/

解释 while :;- 无限循环,用于等待 youtube-dl 完成。
[[ $(ps -C youtube-dl -o pid=) ]] || break- 检查是否存在 youtube-dl 的进程 ID。 如果存在,则再次循环。 否则结束循环。(使用break)。

笔记pidof Youtube-dl命令可用于获取程序的进程 ID。但是,由于使用 python3 调用 youtube-dl,因此它没有自己的进程。因此pidof youtube-dl在这种情况下不会产生值。因此,ps命令已用于获取 pid。

相关内容