読者です 読者をやめる 読者になる 読者になる

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://ハンドラも同様にセキュリティ上の理由でローカルに対しては貼ることが出来ない。

どうすればいいのか考えた結果、AppleCOBOLこと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スクリプトフォルダに上のスクリプトコンパイル済ファイルをぶち打ち込むと動く。(というかコンパイルっていうけどそもそも一体何にコンパイルされてんだ?)


追記: これで「サービス」にしたほうがスマートかもしれん