Mirakurun を用いたMac用TV視聴ソフト「Meruru」を作った

TVTest というソフトがあって、PT3などのチューナーがあればすぐにTVを視聴できる。しかし、TVTest は Windows 専用である。 ということで、Mac で楽に見る方法はないだろうかと探した…けどなかったので作った。

Mac OS用のアプリを作ったのは初めてで、Swift も一切書いたことがなかったので結構たいへんだった。でも楽しかった。

f:id:castaneai:20190416211856p:plain:w500

github.com

アプリの仕組み

Meruru は起動したら、Mirakurun に接続して、Mirakurun が提供する HTTP API を使って番組切り替えと映像表示をしている。 といっても、普通 Mac にPT3などのチューナーは直接させないので、LAN内に別のマシン(Windows や Linux)を用意してそこで Mirakurun を動かす必要がある。

▼自分はこのような構成でやった

f:id:castaneai:20190416213559p:plain:w300

Mirakurun すごい

f:id:castaneai:20190407170503p:plain:w200

Mirakurun はTVの番組情報や動画ストリームにアクセス可能なHTTP APIを提供するソフトウェア。

日本のTVの技術は独自のもので、関連ソフトウェアは少ない。 そんな狭いドメインの中で、オープンソースで開発されている Mirakurun は本当にすごい。

本当にすばらしいので寄付しました。

f:id:castaneai:20190407164311p:plain:w200

https://github.com/Chinachu/Mirakurun#backers

VLCKit すごい

f:id:castaneai:20190407170045p:plain:w200

VLCKit は あの有名な動画プレイヤー VLC Media Player のコア部分を切り出したライブラリ。 Mac 標準の QuickTime Player では m2ts 形式の動画は再生できなかったが、VLC Media Player であれば再生できるので採用した。

だいたいサンプルコードを真似するだけで動いた。書いたコードはほんの少しだった。VLCKitすごい。

VLCKit 初期化で失敗した記録

VLCKitを最初試したとき次のエラーが出て動画が再生されなかった。

2019-04-06 20:11:21.275482+0900 Meruru[23765:2757458] [AudioHAL_Client] HALC_ShellDriverPlugIn.cpp:104:Open:  HALC_ShellDriverPlugIn::Open: opening the plug-in failed, Error: 2003329396 (what)

これは、ビルド設定で App Sandbox という機能をOFFにしたら直った。

f:id:castaneai:20190416214846p:plain:w500

セキュリティを高める機能なので、安易にOFFにするのは良くないと思うけど、いろいろ例外設定を入れても動かないので仕方なくOFFにした。