2010/11/27

XBMCライブラリシンクロ時のバナー/サムネイル問題対策


前回のポストで2台以上のXBMCでライブラリをシンクロさせましたが、バナー/サムネイルの画像ファイルはDBには含まれず別途ローカルに保存されるため、2台目のXBMCではバナー/サムネイルが表示されませんでした。その対策ですが、画像もNAS上に置いて共有すると言う方法が考えられますが、それだと描画に時間がかかるだろうという懸念があったので、原始的ですがXBMC間でコピーすることにしました。

我が家のXBMCは1台がUbuntuでもう1台がWindows、画像ファイルは1台目のUbuntuが持っています。Windows側はあんまり起動しないので、必要な時に手動でWindows側からUbuntuのファイルを取得することにしました。SSHでやればいいか、ということでWinSCPを使って簡単に実現する事に。

それぞれ以下のフォルダに画像を持っています。

Ubuntu:/home/xbmc/.xbmc/userdata/Thumbnails
Windows:%APPDATA%\XBMC\userdata\Thumbnails

なのでこのフォルダの内容を同じにするだけです。かんたん。

WinSCPのSynchronizeを使いました。こんな感じ。僕のライブラリの場合フォルダのサイズが2Gくらいあるのでやや時間がかかりました。


で、次回以降はGUI上げないでバッチファイルでやることにしました。Windows側でライブラリ更新しちゃったときの為に、synchronize bothで両方向のコピーに。ややめんどいけど現状とりあえずこれで解決。ライブラリ更新したらバッチ実行。

この方法だと3台以上XBMCがある場合には面倒なので、どうしようかなーとう感じですが、今は2台なのでいいか。

2010/11/25

2台以上のXBMCでライブラリデータベースを共有・シンクロさせる方法


XBMCのライブラリは本当に素晴らしいです。2台以上XBMCがある場合にもNAS上のファイルをライブラリに登録しておけば同じコンテンツは共有できます。ですが、どうやって同じライブラリを維持するのか、rsyncでデータベースファイルを同期すればいいのか、など色々考えていました。ですが、少し調べてみたらr28117よりも新しいバージョンであれば、MySQL上にライブラリを置いて複数台のXBMCから参照する事ができるようです。これはホントに素晴らしい機能です。つい先日ガレージのPCに2つ目のXBMCを導入したのもこの機能が使いたいが為です。

これでどんな事ができるかというと、

  • ライブラリの共有
    2台のXBMCでスキャンを繰り返す必要がなくなります。視聴済み情報も共有されます。
  • Bookmark、一時停止箇所の共有
    リビングで観ていたドラマの続きを別の部屋で観るといったことができます。
まあ後者もライブラリの一部なので、一言で言えばライブラリが一元管理できるということですね。では早速やってみましょう。

必要なもの : 2台以上のXBMC、各XBMCから(同じpathで)参照できるコンテンツ、MySQL

僕の場合コンテンツは全てNAS上に置いてあって、MySQLは玄箱で動いていたのをそのまま使っています。

  1. すでにライブラリを構築しているXBMCと、新たに作成するXBMCがあるとします。前者を親、後者を子と仮に呼びます。子は複数台あっても同じ手順でOKです。
  2. 親XBMCで、既存のライブラリをエクスポートしておきます。まずはビデオ。[設定]-[ビデオ]-[ライブラリ]-[Export Video Library]で"Single file"を選択し、任意のディレクトリに保存します。ライブラリの量にもよりますが、時間がかかります。
  3. 次にミュージックライブラリのエクスポート。[設定]-[ミュージック]-[ライブラリ]-[Export Music Library]で"Single file"を選択し、こちらも任意のディレクトリに保存します。これらのエクスポートしたライブラリは後ほど使用します。
  4.  MySQLの設定をします。XBMC用のDB2つとユーザを追加します。まあとにかく以下の操作をしてください。
    # mysql -u root -p
    Enter password: <パスワード入力>
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 9
    Server version: 5.0.32-Debian_7etch4-log Debian etch distribution

    Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

    mysql> CREATE USER 'xbmc' IDENTIFIED BY 'xbmc';
    Query OK, 0 rows affected (0.00 sec)

    mysql> GRANT ALL ON *.* TO 'xbmc';
    Query OK, 0 rows affected (0.00 sec)

    mysql> CREATE database xbmc_video;
    mysql> CREATE database xbmc_music;
    これでユーザ名xbmcパスワードxbmcでXBMCから接続ができるようになります。
  5. 次に親XBMC側で以下のディレクトリに"advancedsettings.xml"というファイルを以下の内容で作成してください。
    Linux: /home/xbmc/.xbmc/userdata
    Windows: %APPDATA%\XBMC\userdata
    <advancedsettings>
        <videodatabase>
            <type>mysql</type>
            <host>mysqlサーバのIP</host>
            <port>3306</port>
            <user>xbmc</user>
            <pass>xbmc</pass>
            <name>xbmc_video</name>
        </videodatabase>

        <musicdatabase>
            <type>mysql</type>
            <host>mysqlサーバのIP</host>
            <port>3306</port>
            <user>xbmc</user>
            <pass>xbmc</pass>
            <name>xbmc_music</name>
        </musicdatabase>

    </advancedsettings>
  6.  これでXBMCを再起動し、[設定]-[ビデオ]-[ライブラリ]-[データベースの更新]を行うと、正しく設定ができていればMySQLのxbmc_videoにテーブルが追加されるはずです。
  7. MySQLとのやり取りが確認できたら、親XBMCでライブラリのインポートを行います。まずビデオから。 [設定]-[ビデオ]-[ライブラリ]-[Import Video Library]で項番2でエクスポートしたディレクトリを選択してください。"xbmc_videodb_yyyy-mm-dd"のようなディレクトリです。

    ライブラリのサイズにもよりますが、僕の場合インポートに4時間ほどかかりました。。。
  8. 次にミュージックライブラリのインポートをします。[設定]-[ミュージック]-[ライブラリ]-[Import Music Library]で項番3でエクスポートしたディレクトリから"musicdb.xml"を選択してください。

  9. これでライブラリの状態が最初と同じになりました。ただ、ライブラリはMySQL上に格納されているのが違いとなります。 
  10. 次に子XBMCの設定です。項番5と同じ作業をしてください。
  11. 子XBMCを再起動すれば、2台とも設定は完了です。
早速ライブラリを比較してみましょう。親XBMCでテレビ番組の一覧を表示してみると、
こんな感じです。では同じ画面を子XBMCで見てみると、
あれ、おかしいな。バナーが表示されないぞ。。。

そうなんです。バナーやサムネイル、FanArtはMySQLに格納されないので個別のXBMCに持つ必要があるのです。現状ではライブラリをDBに置くだけではScrapeしたXBMC(ライブラリのスキャンをし、画像ファイルをローカルに持っているXBMC)上でしかサムネイル/FanArtは表示されないのです。この点については別の方法で解決したので、また別途紹介します。今回はとりあえず、ライブラリの共有がうまく行っているかを引き続き確認します。

バナーは表示されていませんが、右上のアイテム数やページ内の番組は同じになっていて、ライブラリの共有が成功している事がわかります。また、視聴済みのチェックもちゃんと同じになっている。素晴らしい。かなり画期的な事ですよ、これ。

次に気になる一時停止の情報が共有されるかを試してみます。親XBMCで適当なファイルを再生し、以下の適当なところで停止してみます。20:14らへんで停止。

これでいつもどおりなら親XBMC上では同じ場所から再生ができます。このとおり20:15から再開するかと聞かれます。ここまでは普通の動き。

ではいよいよ、同じファイルを子XBMCで再生してみます。

全く同じ20:15から再開するか聞かれました。うおおおお!これは便利すぎる!!!

というわけで、リビングで途中まで観た映画を別の部屋で再開する、といった運用が可能になりました。なんて素晴らしいんだXBMC。

ちなみにこの内容はほとんどこのlifehackerの記事を参考にしただけです。ありがとうlifehacker。サムネイル/FanArtに関しては既にワークアラウンドを見つけたのでまた別途紹介します。

2010/11/23

Windows版XBMCのセットアップ(日本語化+Transparency!導入)


今日久しぶりにXBMCのWindows版を入れてみたので、その方法を紹介しておきます。今はXBMC本体及びTransparency!の配布されているパッケージに僕がちょこちょこっと整備した日本語言語ファイルが含まれているので、作業としては至って簡単。フォントのファイルを入れてあげるだけです。ややこしい言語ファイルの入れ替えとかは必要ありません。

用意するもの: XBMCのインストーラー、適当な日本語フォント

  1. 今日現在一番新しいのはDharmaのRC1なので、xbmc-r35326-Dharma_rc1.exeをダウンロードし、ダブルクリックしてインストーラーを起動します。
  2. 基本的にはNextNextでOKですが、言語はEnglishとJapaneseだけあればいいです。他の言語があってもいいですが、僕は外しちゃいます。
  3. インストールが終わるので、"Run XBMC"にチェックを入れてそのままXBMCを起動してしまいます。
  4. 最大化して起動してくるので、"\"キーを押下してWindow表示にしましょう。その方がこのあとの作業がやり易いので。というか、このキーがわからないといちいちXBMC落としたりしちゃうので、ここで覚えましょう。\。

    ちなみにこのスキンはConfluenceってデフォルトのやつ。かっこいいですね。でも僕はこれを使っていないので、Confluenceの日本語化は飛ばしてしまいます。
  5. カーソルキーとEnterキーを使って、 [System]-[Add-ons]-[Get Add-ons]-[XBMC.org Add-ons]-[Skin]-[Transparency!]の順に遷移進んでください。そんで、[Install]でEnter(またはマウスクリック)。
  6. 待ってるとダウンロード/インストールが終わり、「このスキンに切り替える?」ってポップアップが出るので[Yes]でEnterまたはクリック。
  7. これでTransparency!にスキンが切り替わりました。いったんXBMC上での設定はここでストップ。

  8. さて、XBMCのスキンには通常日本語フォントが含まれていないので、ここでは日本語フォントを用意します。僕が使っているのは、「VL Pゴシック」というオープンソースのフォントです。なんとなくXBMCの雰囲気に合っていると思って使っているんですが、ここは好みでどうぞ。メイリオが好きならメイリオでも。
  9.  用意した日本語フォントのファイルを、"arial-caps.ttf"にリネームして以下のディレクトリに上書きコピーしてください。
    %USERPROFILE%\Application Data\XBMC\addons\skin.transparency\fonts
  10.  コピーが終わったらXBMCに戻り、[Appearance]-[Skin]-[Fonts]で"Arial"を選んでください。
  11.  次[International]-[Languages]で"Japanese"を選んで少し待ちます。すると表示が日本語に切り替わります。

  12. これで日本語化は完了です。簡単ですね。

ホーム画面もこんな感じでちゃんと日本語になりました。

下に流れているRSSフィードはRssFeed.xmlってファイルをいじって日本語のフィードを取るようにすればOKなんですが、説明は割愛します。

僕はTransparency!を好んで使っているのでこの方法ですが、ConfluenceやXperienceなんかも基本的にはこれと同じ手順で日本語化できます。フォントを用意して、skin.xxxx\fontsに上書きするだけ。ただ、スキンはそれぞれ専用のフォントに合わせてサイズが計算されていたりしますので、適当なフォントでやると枠からはみ出たりしますので色々試してみてください。

ちなみに今回メモリ512MBしかないThinkPad X31にXBMC入れたんですが、720pの動画まではSMB経由で問題なく視聴できました。結構ぼろいPCでもいけるんだなと。

これから2台のXBMCでMySQL上のライブラリを共有する方法を試してみるので、それもできたら書きます。リビングで見てたドラマの続きをガレージのPCで見る、とかやりたいんですよね。便利すぎる。

    Related Posts Plugin for WordPress, Blogger...