今までvimの話ばっかメモしてきたんですけど、たまーに他のメモを残しておきたくなるので、今回がそれです。もしかすると、今後Raspberry Piの話題も増えていきそうなんですけど、それは今後の活用ペース次第ですね。
Raspberry Piは いいぞ
というわけで、我が家にもRaspberry Pi 4が届きました。本当はキーボード付きが魅力で400を待とうと思ったんですけど、もし何かの意向で持ち歩くことになると結局トラックボールも持っていくことになるんですよね。1そう考えると、今余しているThinkpadキーボードとRasPi4の組み合わせでも持ち歩く時のカサは変わらなそうだしじゃあいいや、ってことになりました。これならトラックボールいらんし快適かなと。
で、実際どう使いたいかというとサブモニタみたいにしたいわけです。メインのラップトップでゲームしてたらtwitterとdiscord開いててほしいし、暇なときにはtwitchとかでいい感じの配信開いててほしいし……っていうめちゃめちゃ怠惰な使い方をしたいんです。その実現方法に関しては紆余曲折あるんですけど、それはさておき今回のRasPi4はRaspberry Pi OSを起動しっぱなしにしつつ、都合にあわせてブラウザなりVLCなりアレコレ起動できるようにしましょということなんです。
ブラウザも開かずにネット動画とな!?
TL;DR
firefox
↓ [Open With Add-on]
↓ [ssh]
↓ [streamlink]
vlc
Open With add-on
というわけで、ブラウザから簡単にコマンドを扱えるOpen With add-onを使いました。これに関しては今回の目的以外にも、例えば「ニコニコ生放送のコメントビューアを直に開く」なんてケースでも対応してくれるイカした奴です。色々試した結果、パス周りや文字のエスケープをあまり考えずに済むよう、sshを介する部分にスクリプトを書いて処理しています……
pwsh c:\path\to\script.ps1 %s
……として、pwshのスクリプトに色々と書いてある感じです。これならurlをいじくって動画はRasPiで、コメントはメインPCでポップアップなんてことも出来そうですよね。
streamlink
ここからはRasPi側のシェルの処理になります。streamlinkは対応している動画サイトのURLからパイプ処理してビデオストリームを出力してくれる気の利いた悪ガキみたいなツールです。2サイトによっては引数として認証情報も渡す必要があるのですが、基本は……
streamlink --default-stream [パイプする動画の品質] [url] -p [動画プレイヤーのパス]
となります。で、streamlink自体は簡単なツールなのですが、ある程度ハマったのでtips的なハマリポイントだけ列挙しておきます。
冷静になれば当然のことなんですけど、sshから最終的にguiの動画プレイヤーを起動するので、guiの出力先が必要です。そんなことやったことないので「色々試すか」とexport DISPLAY=:0.0
としてみたらアッサリ出来てしまったので、一連の処理のどこかで環境変数を追加しておいてあげる感じです。前述の通り認証情報が必要になるケースを踏まえて、今回は受け取ったurlはシェルスクリプトで条件分岐をしているので、その際に追加してあげるといい感じです。
また、この部分をシェルスクリプトにしておいてあげると、RasPi内のターミナルから扱う場合も手軽になります。もちろんメインPC側同様にOpen Withアドオンで右クリック一発も可能なんですけど、やっぱりパス周りは融通利かないので、特にstreamlinkをpip経由でインストールしている場合は~/.local/bin
にパスが通っているか確認が必要です。
実際のスクリプトはこんな感じです。
url=$1
player="vlc"
args=""
cap="720p60,720p,720p_alt,best="
export DISPLAY=:0.0
case $url in
# urlごとの処理いろいろ
esac
nohup ~/.local/bin/streamlink $args $url -p $player > /dev/null 2>&1 &
1080p60の動画再生がきつかったので、$cap
変数で制限をかけています。
〆
昨今は「何某さんはコメントの魅力があるからコメント入力が遠くなる形態での視聴をさせたくない」とか、「何某さんは付き合うプロダクションの都合でやっぱDRMないと」とか、そういうことに絡めとられて「モニタがあるのに動画が見られない」というケースが増えています。その辺のことをすべて忘れて、とりあえず右クリックしとけば動画が見られるのですこぶる快適です。自分で作ってしまったので、何かあったら自分でメンテしないとならないという点において全くお勧めできないんですけど、シングルボードコンピュータの下世話な使い倒し方として目に留めておいてもらえれば……