youtube-dl 完成後在終端機中執行命令

youtube-dl 完成後在終端機中執行命令

如標題中所寫,我想僅在上一個命令“youtube-dl”完成並關閉後運行命令。我不只是在 ubuntu 終端機上的 bash 上運行此命令。

我想運行這個命令:

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

命令 1 可以運行 5 秒到 xx 分鐘,如果我聲明只休眠 4 秒,那麼當命令 1 完成並關閉時,無論結果如何,可能都沒有足夠的時間來運行命令 2。我可以使用 sleep 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.喜歡看!


附贈曲目 :) 這是我透過桌面瀏覽器瀏覽 mp3 時使用的腳本,用於從 youtube.com 下載 mp3。

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。但是,由於 youtube-dl 是使用 python3 呼叫的,因此它沒有自己的進程。因此pidof youtube-dl在這種情況下不會產生值。因此,ps已經使用命令來獲取pid。

相關內容