ytfzf –用命令來搜索與播放 Youtube 的低調工具

目前我常需要透過 Youtube 影片進行學習,但我也需要背景音樂來舒緩我的精神。

去年之前可以透過瀏覽器開啟不同分頁,同時播放 Youtube 不同影音內容。

但目前 Youtube 在同一時間同一瀏覽器只允許播放一個影音,所以背景音樂與學習影片再也不能同時播放。而我也不想同時再開啟其他的瀏覽器,因為我的瀏覽器都太耗費系統資源了。

註:
昨晚(8/4)好友告知,他使用 Brave Browser 可以同時播放,不受影響!我試過之後,果真如此,看來僅是火狐的問題!

今日測了一下機器裡面有的瀏覽器,Opera, Konqueror, Microsoft Edge,發現開了不同分頁 Youtube 都能同時播放,目前僅有火狐無法同時播放!!

雖然有Public Domain Radio公共音樂可以聽,但是他的音樂是隨機播放,無法聽任我目前的心情播放相應曲風。

所以,我遇見了 ytfzf


簡言之 ytfzf 是利用 fzf 對 Youtube 進行搜尋(模糊搜尋,選擇搜尋結果,預覽搜尋結果),再將選擇結果丟給 mpv 播放。

除了節省系統資源之外,讓我意外與驚喜的是在播放 Youtube 影音時,不用受到廣告的打擾,這是意外且很有價值的收穫。

安裝

  1. 先安裝需要套件程式
  2. apt -y install jq curl mpv fzf

    若有下載影音需求,需要安裝這個套件程式
    apt -y install yt-dlp

  3. 下載 ytfzf 程式回來
  4. git clone https://github.com/pystardust/ytfzf.git

  5. 編譯與安裝
  6. cd ytfzf
    sudo make install

簡易使用說明

  1. 輸入關鍵字
  2. 在終端機直接輸入 ytfzf “關鍵字” ,便會出現「結果」。

    例:若想要收聽好友的節目「噗噗聊聊」,只要直接輸入 ytfzf “噗噗聊聊”

    結果如下:

  3. 「Ctrl」+「P」讓搜尋結果呈現更多
  4. 呃,影片當然不只這些,若想看到更多結果,那就「Ctrl」+「P」就會載入更多結果,每按一次,就會多載入一次。

  5. 移動光棒做選擇
  6. 利用上下方向鍵,移動螢幕上的光棒,停在想播放的那一集上,再按下「Enter」,便可。

  7. 播放
  8. 「Alt」+「M」,我只想聽聲音就好
  9. 我不需要看影像,只想聽聲音(白噪音)。那麼移動螢幕上的光棒,停在想播放的那一集上,再按下「Alt」+「M」,便會直接播放。

    當然,若想真正的純背景播放,就再使用「Ctrl」+「z」,以及 「bg」指令便行。

  10. 用「Tab」作記號,可以選擇多個影音
  11. 若只想聽其中幾集,移動「光棒」在目標上,按下「Tab」作記號便可以。

  12. 「Alt」+「d」,可下載選中的影片
  13. 若想下載其中某集,移動「光棒」到目標上,按下「Alt」+「d」,便可以開始下載。

    移動光棒到目標上

    按下「Alt」+「d」,開始下載

    下載完成後,再檢查確認一下

  14. 耍帥功能,若想看到該影片的專輯圖片(ueberzugpp)
  15. 以下這個功能為耍帥功能,沒有也沒關係!

    就是若想看到這影片的封面圖片,例如下圖:

    那麼需要安裝「ueberzugpp」套件程式。

    最快速的安裝方式之一,便是利用 pip 安裝:
    sudo pip install ueberzugpp

    安裝完成後,只要輸入:
    ytfzf -t “噗噗聊聊”

    便會開始出現該影片的封面圖片:

快捷鍵功能

  • 上下方向鍵:選取影片
  • Enter:播放
  • Tab:將影片加入播放佇列
  • Esc 或 Ctrl+C:退出程式
  • Alt + d:下載選中的影片
  • Alt + v:播放選中的影片
  • Alt + m:播放選中的影片(純音訊)
  • Alt + e:彈出播放器,不關閉影片列表
  • Alt + l:顯示出影片網址
  • Alt + f:播放前選擇畫質
  • Alt + i:顯示影片資訊
  • Alt + s:進行另一次搜尋
  • Ctrl + p:載入下一頁搜尋結果

參考資源

  1. Public Domain Radio
  2. ytfzf
  3. fzf
  4. mpv
  5. ueberzugpp
  6. ytfzf:終端機看Youtube的極簡軟體,無廣告 、可下載影片

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

*