Ubuntu 14.04 + Chinachu + Kodi(XBMC)でリアルタイム視聴(ライブTV)
最近最もホットな録画ツールといえば、「Chinachu」だろう。UbuntuやCentos等にインストールできる、WebUIベースの非常に使いやすい録画ツールである。他方、Chinachuにもライブ試聴機能はついているのだが、ウェブブラウザで完結しているため、テレビに出力して大画面で……という用途には向かない。
そこで出てくるのが、KODI(旧XBMC)である。KODIは、非常に優れたホームシアターソフトである。Chinachuでの録画ファイルをKODIに参照させれば、録画したデータを非常に美しく(インタレースの解除なども行って)仕上げてくれる。
しかしあわよくば、このKODIだけで、ライブ試聴を行いたい。KODIの「ライブTV」機能を利用してみたい。そんなところで、今日はその方法を解説しよう。
インストールするものは、IPTV Simple Client
私の環境は、Ubuntu 14.04である。これにKodiの最新バージョンを乗せているのだが、ライブTVを有効にするには、第一に「IPTV Simple Client」を導入する必要がある。Ubuntu 14.04の場合、ppaを登録してインストールされるKODIにデフォルトでは入っていないため、aptを使用して次の通りインストールする必要がある。
sudo apt-get install kodi-pvr-iptvsimple
すると、Kodi上からIPTV Simple Clientを確認することが出来るだろう。
ChinachuにAPIを登録する
リアルタイム視聴のためには、Chinachuから
- チャンネルリスト
- epg
を取得しなくてはならない。これらを提供してくれるAPIを、既に先人が制作してくれている。その名も「Chinachu-IPTV-API-Addon」である。それぞれのファイル
- resource-iptv.json
- script-iptv.vm.js
をChinachuのapi配下に格納しよう。
その後、chinachuを再起動すること。なお、これらをインストールすることにより、
- チャンネルリスト: /api/iptv/channel.m3u8
- epg情報 : /api/iptv/epg.xml
に格納されることとなる。一度、自分のChinachuのアドレスにこれらのアドレスをくっつけてアクセスし、正常に機能していることを確認すると良い。
なお、正常に機能した場合、こんな感じ。
#EXTM3U #EXTINF:-1 tvg-id="GR_1056",フジテレビ http://[chinachuのアドレス]/api/channel/GR_1056/watch.m2ts?ext=m2ts&c%3Av=copy&c%3Aa=copy #EXTINF:-1 tvg-id="GR_1048",TBS1 http://[chinachuのアドレス]/api/channel/GR_1048/watch.m2ts?ext=m2ts&c%3Av=copy&c%3Aa=copy #EXTINF:-1 tvg-id="GR_1072",テレビ東京1 http://[chinachuのアドレス]/api/channel/GR_1072/watch.m2ts?ext=m2ts&c%3Av=copy&c%3Aa=copy #EXTINF:-1 tvg-id="GR_1064",テレビ朝日 http://[chinachuのアドレス]/api/channel/GR_1064/watch.m2ts?ext=m2ts&c%3Av=copy&c%3Aa=copy #EXTINF:-1 tvg-id="GR_1040",日テレ1 http://[chinachuのアドレス]/api/channel/GR_1040/watch.m2ts?ext=m2ts&c%3Av=copy&c%3Aa=copy #EXTINF:-1 tvg-id="GR_1032",NHKEテレ1東京 http://[chinachuのアドレス]/api/channel/GR_1032/watch.m2ts?ext=m2ts&c%3Av=copy&c%3Aa=copy
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE tv SYSTEM "xmltv.dtd"> <tv generator-info-name="Chinachu"> <channel id="GR_1056" tp="21"> <display-name lang="ja_JP">フジテレビ</display-name> <service_id>1056</service_id> </channel> <programme start="20150525000000 +0900" stop="20150525001000 +0900" channel="GR_1056" event_id="gr1056-ndi"> <title lang="ja_JP">FNNニュース</title> <desc lang="ja_JP">きょう一日を振り返りながら、さらに新しいニュースを全国のFNN系列の記者が総力をあげ取材しお届けする日曜夜の定番ニュース「FNNニュース」 キャスター:境鶴丸</desc> <category lang="ja_JP">news</category> <category lang="en">news</category> </programme> <programme start="20150525001000 +0900" stop="20150525010000 +0900" channel="GR_1056" event_id="gr1056-ndj"> <title lang="ja_JP">すぽると!</title> <desc lang="ja_JP">来週から交流戦開幕!19歳の打てる捕手・L森友哉の起用法は?石井一久が本人の心境を直撃取材▼H松坂大輔復帰登板第2戦!平成の怪物・本来の姿は蘇るのか?</desc> <category lang="ja_JP">sports</category> <category lang="en">sports</category> </programme> <programme start="20150525010000 +0900" stop="20150525010500 +0900" channel="GR_1056" event_id="gr1056-ndk"> <title lang="ja_JP">W杯バレーへの金字塔ザ・モニュメントバレー</title> <desc lang="ja_JP">8月22日に開幕するワールドカップバレーそこへ至るまでにバレーボール界の歴史にそびえ立ち世界を驚かせた金字塔をSexy Zoneのナレーションで紹介する</desc> <category lang="ja_JP">sports</category> <category lang="en">sports</category> </programme>
script-iptv.vm.jsを修正する
現状のscript-iptv.vm.jsの生成するchannel.m3u8は、BASIC認証をかけていると、ストリーミング用のURLにアクセスすることが出来ない。従って、ストリーミング用のURLに、BASIC認証のID/PASSWORDを埋め込む必要がある。この改修を、script-iptv.vm.jsに施そう。
もともとは次のようになっているが、この「request.headers.host」の部分が、ホスト名を代入している。
data.schedule.forEach(function(ch) { response.write('#EXTINF:-1 tvg-id="' + ch.id + '",' + ch.name + '\n'); response.write(protocol + '://' + request.headers.host + '/api/channel/' + ch.id + '/watch.m2ts?ext=m2ts&c%3Av=copy&c%3Aa=copy\n'); });
従って、この部分を次のように改変してあげれば良い。
data.schedule.forEach(function(ch) { response.write('#EXTINF:-1 tvg-id="' + ch.id + '",' + ch.name + '\n'); response.write(protocol + '://[ユーザー名]:[パスワード]@[Chinachuのアドレス]/api/channel/' + ch.id + '/watch.m2ts?ext=m2ts&c%3Av=copy&c%3Aa=copy\n'); });
これで、channel.m3u8が吐き出すチャンネルリストをどのプログラムがアクセスしても、きちんと動画が再生出来る手はずがととのった。
IPTV Simple Clientの設定
最後に行うのは、IPTV Simple Clientの設定である。
まず、IPTV Simple Clientがインストールされていることを確認する。「設定」の「アドオン」から、検索することが出来るだろう。このような形で表示されているはずだ。
これをクリックして、設定画面へ進もう。設定する場所は、大きく2つだ。
ひとつは、「一般」のなかにある、「M3UプレイリストのURL」。ここには、channel.m3u8のアドレスをhttp~から入力する。もちろん、ロケーションが「リモートパス(インターネットアドレス)」になっていることを忘れないように。おそらく、http://[ユーザー名]:[パスワード]@[chinachuのアドレス]/api/iptv/channel.m3u8ではないかと思う。
次に入力するのは、EPGの場所。これは、epg.xmlの場所を指定してあげれば良い。同じく、ロケーションは「リモートパス」。基本的には、http://[ユーザー名]:[パスワード]@[chinachuのアドレス]/api/iptv/epg.xmlではないかと思う。
これでIPTV Simple clientの設定は終了だ。設定が終わった後は、プラグインを有効化しておこう。あとは、KODIの設定画面から、ライブ TVを有効にしてあげる必要がある。
設定画面から「一般」に入り、「ライブTV」を選択、ここにある「LCD有効」にチェックを入れる。
もしここで、「PVRプラグインが存在しない」などのエラーが出た場合は、IPTV Simple Clientが有効化されていないため。IPTV Simple Clientの設定画面に戻り、「有効化」ボタンを押して、有効にしよう。その後、もう一度上記設定の「LCD有効」を押してあげると、チャンネルスキャンが始まり、メニューに「ライブTV」が現れる。それでもだめな場合は一度Kodiを終了し、もう一度起動してみよう。これでうまくいくことも多い。
動作の速度は、通常のTVよりは遅いが、それでも1秒程度でサクサクチャンネル切り替えをしてくれる。またYaste等のリモコンアプリを使うと、今何の番組をやっているのかを手元で見る事が出来、かつ視聴も出来るので、非常に便利だ。これさえれば、正直テレビに内蔵されているチューナーを使うことはほぼないだろう……。