いぶろぐのガジェット日記

いぶろぐのガジェット日記

ガジェットやOSS、その他興味のあるITニュースをぽつらぽつら投稿します。

YouTubeをサムネイルつきで検索できるシェルスクリプト「ytfzf」

東方の新作「東方虹龍洞」、発表されましたね。

天空璋みたいな雰囲気になるのかな?めちゃくちゃ楽しみです。

今日はターミナル上でYouTubeの動画を検索できるなんかすごいシェルスクリプト「ytfzf」を使ってみたよというお話です。


インストール

シェルスクリプトなので、インストールもへったくれもないですね。

以下のリポジトリをクローンしてしまえば終了です。

github.com


使い方

単純に検索するだけならめちゃくちゃ簡単で、こんな感じでコマンド実行してやればOK。

./ytfzf -t 兎田ぺこら

すると検索結果がサムネイルつきで表示されます。 f:id:ibulog_iblog:20210309214242p:plain

検索結果を選択すると、mpvが起動して動画を見ることができます。 f:id:ibulog_iblog:20210309214754p:plain

ytfzfは他にもいろんなオプションが用意されていて、例えば「-ml」オプションを指定すると...

./ytfzf -ml 明日ハレの日、ケの昨日

こんな感じで、サムネイルなし、音楽のみ、再生後プロンプトに戻るって感じの使い方ができます。 f:id:ibulog_iblog:20210309214244p:plain

音楽のみの場合はmpvは起動せず、CLIで再生されます。 f:id:ibulog_iblog:20210309214823p:plain


ytfzfの中身

ちょっとコードを覗いてみると、面白い発見がありました。

それは「if文がない」という点。普通シェルスクリプトっていったらこんな感じでif文書きますよね。

if [ -z hoge ]; then
    echo "hoge"
fi

ytfzfでは、if文ではなくtest文と&&で「if処理」が実装されていました。こういう書き方もあるんだな〜。

#enable/disable history
[ -z "$YTFZF_HIST" ] && YTFZF_HIST=${enable_hist-1}
#enable/disable looping
[ -z "$YTFZF_LOOP" ] && YTFZF_LOOP=${enable_loop-0}
#enable/disable outputting current track to $current_file
[ -z "$YTFZF_CUR" ] && YTFZF_CUR=${enable_cur-1}

要は直前のtest文が成功していれば&&以降の処理が実行されるというわけですね。こっちのほうがシェルスクリプト業界では主流なのだろうか?

あとはちょっと前にひと悶着あったyoutube-dlもしっかり使われています。

gigazine.net


感想

前職をやめてからOSSを触る機会が減ってしまったので、ブログの方で触っていきたいですね。

いろいろよくわからないOSSをインストールしたり使ったりするのは、意外と技術力向上につながるということがわかってきたので。

ではでは〜。

P.S.

東方虹龍洞の予想オープニングBGMのクオリティがすごい。ループで聴いてる。

www.youtube.com