JBしたAppleTV(2G)にradiko導入作業中
会社のブログの方でAppleTVを○○するとNASから直接音楽や動画を再生できるよ!というエントリ書いたのですが、ちょっとしたことがきっかけで以下AppleTV(2G)をJB(脱獄)しました。
上記リンク先の会社のブログでも触れていますが、元々はNAS上の音楽データをMac経由させずに直接再生させたかったので、基本的にやりたいことはすでに実現出来ました。
JBする作業の中でXBMC(Xbox Media Center)というメディアサーバーとなるアプリケーションの存在を知り、その流れでXBMCなうさんという方からXBMC向けのradikoプラグインを作っていることを教えてもらったので、AppleTV(2G)のXBMCでも利用できないか導入作業中です。
プラグイン導入してもそのままではradikoが利用できないので自分で調べたことについてすぐ忘れてしまうので、とりあえずメモ的にまとめておきます
XBMCへのプラグイン導入手順
radiko plugin for XBMCにあるZIPファイルをダウンロードして、母艦となるMacの任意のフォルダに保存します。
※仮に/Users/xxx/Desktop/radiko-plugin.zipとでもします。
次にJB済のAppleTV(2G)はssh出来るので、母艦となるMacのターミナル上で
$ ssh root@apple-tv
としてAppleTV(2G)にsshします。
それから母艦となるMacに対してAppleTV(2G)からリモートログイン出来るようにMacのシステム環境設定のリモートログインを有効にします。
sshしてあるAppleTV(2G)上で下記コマンドを入力
$ scp YOURUSERID@macbook-air:/Users/xxx/Desktop/radiko-plugin.zip /var/mobile/Documents/radiko-plugin.zip
これで母艦となるMacからAppleTV(2G)に対してZIPファイルのコピーが行われます
最後にAppleTV(2G)の画面上でXBMCを起動して「Install from ZIP file」というメニューを選択してAppleTV(2G)上のZIPからプラグインをインストールします。
※Install from ZIP fileの画面イメージはこちらのエントリにTV画面を撮影したキャプチャ画像があるので参考になるかも
プラグイン導入して実行するとscript errorになる
radiko plugin for XBMCにあるZIPファイルを解凍するとわかりますが、default.pyというのが実際に実行されるようで、拡張子から想像つくようにPythonで書かれています。
scrpt errorとなっていたので、AppleTV(2G)にsshして
/var/mobile/Library/Preferences/xbmc.log
の中身をチェックすると
16:03:19 T:258891776 M:107163648 NOTICE: -->Python Interpreter Initialized<-- 16:03:21 T:258891776 M:107274240 ERROR: Error Type: <type 'exceptions.ImportError'> 16:03:21 T:258891776 M:107274240 ERROR: Error Contents: No module named PIL 16:03:21 T:258891776 M:107266048 ERROR: Traceback (most recent call last): File "/var/mobile/Library/Preferences/XBMC/addons/plugin.audio.radiko/default.py", line 26, in <module> from PIL import Image ImportError: No module named PIL 16:03:21 T:245379072 M:106938368 ERROR: GetDirectory - Error getting plugin://plugin.audio.radiko/ 16:03:21 T:245379072 M:106934272 ERROR: CGUIMediaWindow::GetDirectory(plugin://plugin.audio.radiko/) failed
という感じで、PIL(Python Imaging Library )のモジュールの読込に失敗しているようです。
AppleTV(2G)にはPILインストールされてないのか、それともパスが通ってないためかいずれにしてもこれが原因らしいことはわかりました。
AppleTV(2G)はapt-getでバイナリファイルのインストール出来るようなのでダメもとで
# apt-get install python-imaging # apt-get install PIL
とかしてみたのですがCouldn't find package xxxxxという感じで怒られるだけでした。
Python Imaging Libraryのソースをこちらからダウンロードし
- Macでクロスコンパイル環境作る
- AppleTV上でビルドする
のどちらかを試そうかと思ってますが、果たして自分のスキルでそんなことが簡単にできるんだろうか・・
※おまけ※
radiko pluginのソースを見ると上記のPIL含めて
import sys, os, re, glob, shutil import struct, zlib, xml.dom.minidom import threading, time import urllib, urllib2 import xbmc, xbmcgui, xbmcplugin, xbmcaddon from math import ceil from base64 import b64encode from PIL import Image from cStringIO import StringIO
というモジュールを読み込むつくりになっているようです。radikoのAPIが公開されていれば自分でPIL使わないソース考えようかと思ったのですが、そもそもAPI公開されてないんですね・・