ChinachuからVLCを開くAppleScriptを書いた
Chinachuは、Linux上に、快適なデジタル放送の録画Webインターフェイスを作れるソフトウエアである。
以前から道具は持っていたので、先日ついに重い腰を上げて自宅サーバー上に録画環境を整備した。
Chinachuのインターフェイスはとても良くできている。また、Chinachuはストリーミング視聴もサポートしており、リアルタイムで録画したファイルをWebMにエンコードしながら視聴するなどの事もできる。
しかし、自分は主にMacBook ProからLAN越しに録画したファイルを視聴しており、自宅サーバーとはApple Filing Protocolで繋がっているので、こちらのファイルを直接VLCで読んだほうが画質もよくCPU負荷も少ない(SafariじゃWebM見られないし…Googleは一体何をやってるんだ)。
ところが、多くの録画済ファイルからFinder探すのはつらいので、Chinachuの画面からすぐにVLCでファイルを開けるようにしたかった。
が…
最初User JSとかでサクッと実現できる物かと思っていたが、こんな簡単なことがなかなかにハードルが高い。
afp://ハンドラはセキュリティ上?の理由でディレクトリへのリンクしか貼れないようにできており、file://ハンドラも同様にセキュリティ上の理由でローカルに対しては貼ることが出来ない。
どうすればいいのか考えた結果、Apple製COBOLことAppleScriptといういにしえの技術を用いる事でわりと簡単に解決できるという事に気がついた…
まさか人生でAppleScriptを書く機会が訪れるとは…いうてほとんどJavaScriptだけどな。
tell application "Safari" activate tell application "Finder" if not (exists disk "Data") then mount volume "afp://192.168.11.15/Data/" end if end tell set res to do JavaScript "$($$(\"div.sakura-alert:contains('録画')\")[0]).down('span').innerHTML.replace('/home/peryaudo/data/', '/Volumes/Data/');" in current tab of first window tell application "VLC" activate open res end tell end tell
AppleScriptメニューをAppleScriptエディタの環境設定→メニューバーにスクリプトメニューを表示、から出してSafariスクリプトフォルダに上のスクリプトのコンパイル済ファイルをぶち打ち込むと動く。(というかコンパイルっていうけどそもそも一体何にコンパイルされてんだ?)
追記: これで「サービス」にしたほうがスマートかもしれん