技術ノート ウィンドウズ MySQL を使用して複数のデバイス間で Kodi ライブラリを同期する方法

MySQL を使用して複数のデバイス間で Kodi ライブラリを同期する方法

Kodi は今でも最も強力なメディア センター アプリケーションの 1 つであり、強力なメディア PC から小型の Raspberry Pi まであらゆるもので動作します。しかし、家に複数のテレビがある場合、すべてのテレビが同期していれば良いと思いませんか?

デフォルトでは、複数の Kodi マシンがある場合、それらは相互に認識しません。あるテレビで視聴したエピソードは、別のテレビでは「視聴済み」として表示されません。しかし、リビングルームで見ているものを寝室のKodiボックスが知っていれば、またその逆もできたら素敵だと思いませんか?リビングルームで映画を見るのをやめて、家のどこか別の場所で中断したところから映画を再開できたらいいでしょうか?

まあ、それは可能ですが、少しセットアップが必要なだけです。その方法は次のとおりです。

必要なもの

私たちがこれから取り組もうとしている同期マジックの中核は、MySQL データベースです。これまでに使用したことがなくてもパニックにならないでください。少し技術的なノウハウが必要ですが、私たちがすべてのステップをガイドします。しっかりと従えば問題はないはずです。

私たちがやろうとしていることは、MySQL サーバーの無料バージョンをインストールし、すべての Kodi マシンに (個々のコンピューターに個別のデータベースを作成する代わりに) そのサーバー上のデータベースをライブラリとして使用するように指示することです。その時点から、Kodi は、特定のテレビ番組のエピソードや映画を見たか、メディアを一時停止したか、ブックマークを設定したかどうかを確認するときに、ユーザーが目の前に立っている特定のメディア センターに対して応答するだけではなくなります。ただし、家の中のすべてのメディアセンターが対象です。

このプロジェクトでは、次のものが必要です。

  • Kodi がインストールされている複数のメディア センター (それらはすべて Kodi の同じベース バージョンである必要があります — このガイドでは v17 “Krypton” を使用します)。
  • MySQL Community Server の無料コピー — Kodi wiki では 、新しい 5.7 ではなく バージョン 5.5 を入手することを推奨しているため、このチュートリアルではそれを使用します。
  • MySQL サーバーを実行するための常時稼働またはほぼ常時稼働のコンピューター。

MySQL サーバーは、メディア センターの使用中に常に稼働している任意のコンピューターにインストールできます。私たちの場合、映画やテレビ番組を保存しているのと同じ常時稼働のホーム サーバーに MySQL をインストールします。こうすることで、Kodi がメディアをいつでも利用できるようになり、データベースも利用できるようになります。

MySQL を使用して複数のデバイス間で Kodi ライブラリを同期する方法

ステップ 1: MySQL サーバーをインストールする

このチュートリアルでは、Windows 10 を実行しているメディア サーバーに MySQL をインストールします。インストール手順は、Windows のどのバージョンにも一致する必要があります。他のオペレーティング システムについては、 「MySQL 5.5 マニュアル」 を参照してください。

MySQL のインストールは簡単です。サーバーインストールアプリをダウンロードして実行するだけです。使用許諾契約と「標準」インストールに同意します。完了したら、「MySQL インスタンス構成ウィザードを起動する」にチェックが入っていることを確認し、「完了」をクリックします。

MySQL 構成ウィザードが起動し、詳細構成と標準構成のどちらかを選択するオプションが表示されます。 「標準構成」を選択し、「次へ」をクリックします。

次の画面で、「Windows サービスとしてインストール」にチェックを入れ、MySQL という名前を付けます。または、何らかの目的で複数の MySQL サーバーを実行している場合は、一意の名前を付けます。次に、「MySQL サーバーを自動的に起動する」にチェックを入れて、MySQL が確実にインストールされるようにします。必要なときにサーバーが常に稼働します。

次の画面で、「セキュリティ設定の変更」にチェックを入れ、新しい root パスワードを入力し、「リモート マシンからの root アクセスを有効にする」にチェックを入れます。

クリックして最終画面まで進み、「実行」を押すと、指定したパラメータを使用してウィザードがすべてを設定します。完了したら、ステップ 2 に進みます。

MySQL を使用して複数のデバイス間で Kodi ライブラリを同期する方法

ステップ 2: MySQL ユーザーをセットアップする

次に、MySQL サーバー上にメディア センター用のユーザー アカウントを作成します。これにはコマンドラインでの作業が少し必要になります。まず、MySQL コマンド ライン クライアントを実行します。[スタート] メニューにこのクライアントのエントリがあるはずです。

コンソールが開いたら、前の手順で作成したパスワードを入力します。 MySQL サーバーのプロンプトが表示されます。

プロンプトで次のコマンドを入力し、各コマンドの後に Enter キーを押して、データベース サーバー上にユーザーを作成します。

 「kodi」によって識別されたユーザー「kodi」を作成します。

 *.* を「kodi」にすべて許可します。

フラッシュ権限。

最初のコマンドの最初の部分はユーザーを作成し、2 番目の部分はパスワードを作成します。一般に、同一のログイン/パスワードはセキュリティ的に非常に問題ありませんが、この場合は、簡素化のために一致するペアを使用することに抵抗はありません。プライベート サーバー上に MySQL データベースを設置して、視聴したデクスターのエピソードを追跡するのは、決してハイリスクなインストールではありません。

現時点でコマンド ラインで行う必要があるのはこれだけです。ただし、後でチェックインして、Kodi が作成したデータベースを覗いてみることになるため、MySQL サーバーに対してコマンド プロンプトを開いたままにしておくことが推奨されます。彼らは私たちのために。

Kodi を構成する前に、最後のタスクが 1 つあります。 MySQL をインストールしたマシンのファイアウォールでポート 3306 (MySQL サーバー ポート) が開いていることを確認してください。デフォルトでは、Windows インストーラーはポートを自動的に開くはずですが、開かない状況も確認されています。ポートを開く最も簡単な方法は、PowerShell コマンドを使用することです。 [スタート] メニューで PowerShell を検索し、右クリックして [管理者として実行] を選択します。

次に、次のコマンドを実行して Enter キーを押します。

 New-NetFirewallRule -DisplayName "MySQL の受信 TCP ポート 3306 を許可する" - 受信方向 –LocalPort 3306 -プロトコル TCP - アクション許可

以下に示すように、コマンドが成功した場合は、続行しても問題ありません。

MySQL を使用して複数のデバイス間で Kodi ライブラリを同期する方法

ステップ 3: 現在の Kodi ライブラリをバックアップする (オプション)

デフォルトでは、Kodi は内部 SQLite データベースを使用します。 Kodi がホーム ネットワーク全体で効果的に通信できるようにするには、外部 MySQL データベースを使用するように指示する必要があります。ただし、そのステップに進む前に、決定を下す必要があります。現在のライブラリをバックアップして後で復元するか (場合によっては注意が必要な場合があります)、新しいライブラリで新たに開始するか (これは簡単ですが、番組の視聴状態を再設定する必要があり、 ローカルに保存して いない場合はアートワークを再選択する必要があります)。

現在のライブラリをバックアップしたい場合は、Kodi 内から行うことができます。これは 1 台のマシンからのみ実行してください。最新のライブラリを備えたマシンを選択してください。 Kodi を開き、[設定] > [メディア設定] > [ライブラリのエクスポート] に進みます。 (これらのオプションが表示されない場合は、Kodi でメニューが「アドバンス」または「エキスパート」に設定されていることを確認してください。)

ライブラリを単一のファイルとしてエクスポートすることも、別個のファイルとしてエクスポートすることもできます。単一のファイルを使用するとバックアップを 1 か所に置くことができますが、複数のファイルを使用すると余分な JPG および NFO ファイルがメディア フォルダーに分散されます。これは信頼性が高くなりますが、かなり乱雑になります。必要なオプションを選択してください。

ライブラリがバックアップされたら、次のステップに進みます。

ステップ 4: 新しい MySQL サーバーを使用するように Kodi を構成する

ライブラリをバックアップしたら (または、心配せずに最初から開始することを選択したら)、Kodi を MySQL サーバーにポイントする準備は完了です。この手順は、Kodi を実行しているすべてのマシンで実行する必要がありますが、最初に 1 台のマシン (選択した場合は、ライブラリをバックアップしたのと同じマシン) でセットアップすることをお勧めします。

Kodi が MySQL を指すようにするには、Kodi の Advancedsettings.xml ファイルを編集する必要があります。デフォルトでは、このファイルは存在しません (ただし、インストールプロセス中に、特定の構成の問題に対処するために Kodi がファイルを作成した可能性があります)。 Advancedsettings.xml ファイルが存在する場合は、OS に応じて次の場所にあります。

  • Windows : C:\Users\[ユーザー名]\AppData\Roaming\Kodi\userdata
  • Linux および Kodi のその他の Live バージョン : $HOME/.kodi/userdata
  • macOS : /Users/[ユーザー名]/Library/Application Support/Kodi/userdata

そのフォルダーをチェックインします。そこにadvancedsettings.xmlファイルはありますか?はい?開けてください。いいえ?テキスト エディタを開いて作成する必要があります。既存のものを編集しているか、新しいものを作成しているかに関係なく、次のテキストを切り取ってファイルに貼り付けます (注: Advancedsettings.xml ファイルにすでにいくつかのエントリがある場合は、それらのエントリをそのままにして、これらの値をその中に入れます)正しいセクション):

<詳細設定>

<ビデオデータベース>

<type>mysql</type>

<ホスト>192.168.1.10</ホスト>

<ポート>3306</ポート>

<ユーザー>コディ</ユーザー>

<パス>コディ</パス>

</ビデオデータベース>

<音楽データベース>

<type>mysql</type>

<ホスト>192.168.1.10</ホスト>

<ポート>3306</ポート>

<ユーザー>コディ</ユーザー>

<パス>コディ</パス>

</音楽データベース>

</詳細設定>

LAN 上のサーバーの IP アドレスと MySQL データベースのユーザー名/パスワードを反映するように上記のテキストを編集します (この例では、単に kodi/kodi でした)。この基本的なセットアップでは、ビデオと音楽ライブラリを同期する必要がありますが、 Kodi の他の部分を同期したり 複数のプロファイルを使用している場合はネームタグと同期したり することもできます。

Advancedsettings.xml ファイルの準備ができたら、そのマシンで Kodi を開きます。ライブラリをインポートするか ([設定] > [メディア設定] > [ライブラリのインポート] から)、ソースを再スキャンして MySQL データベースへの入力を最初から開始する必要があります。今すぐそうしてください。

それが完了し、ライブラリが所定の位置に戻ったら、MySQL コマンド プロンプトに移動して、Kodi がデータベースを作成してデータを設定したことを確認できます。 mySQL のコメント プロンプトで、次を実行します。

データベースを表示します。

現在 MySQL サーバー上にあるすべてのデータベースが出力されます。少なくとも、 information_schema mysql 、および performance_scheme のデータベースが表示されるはずです。これらは MySQL インストール自体の一部であるためです。 Kodi のデフォルトのデータベース名は myvideos107 mymusic60 です (この例では音楽のデータベースを使用していないため、ビデオ データベースのみがリストに表示されます)。

MySQL サーバーからデータベースを削除する必要がある場合は、次のコマンドを使用できます。

 DROP DATABASE データベース名;

空のデータベースはほとんどスペースを占有せず、同期システムのパフォーマンスに悪影響を与えることはありませんが、物事を整理しておくのは良いことです。

データベースがそこにあれば、それは良いスタートですが、Kodi がデータベースに適切にデータを設定しているかどうかを確認する簡単なチェックを実行する価値があります。 MySQL コマンド プロンプトから次のコマンドを実行します ( databasename をビデオ データベースの名前に置き換えます)。

 SELECT COUNT(*) データベース名.映画から;

 SELECT COUNT(*) からデータベース名.tvshow;

各クエリは、ライブラリに含まれる映画とテレビ番組の合計数をそれぞれ返します (MySQL データベースによる)。ご覧のとおり、この場合、182 本の映画と 43 本のテレビ番組を含むライブラリが認識されています。

エントリの数がゼロの場合は、どこかに問題があります。よくある間違いをまとめた簡単なトラブルシューティング チェックリストを次に示します。

  • Kodi を起動してライブラリを再設定する前に、advancedsettings.xml ファイルをマシンにコピーしましたか?
  • GRANT ALL コマンドを使用して、Kodi アカウントに MySQL サーバーへのアクセスを許可しましたか?
  • MySQL ホスト マシンのファイアウォールでポート 3306 を開きましたか?
  • Advancedsettings.xml ファイルを削除してローカル データベースに戻したときに、ソースは有効であり、スキャン可能ですか?そうでない場合は、MySQL の問題とは別にソースのトラブルシューティングを行う必要があります。

すべてが順調に見え、 SELECT COUNT クエリが成功した場合は、クロスメディアセンター同期を活用する準備ができていることを意味します。

ステップ 5: 他の Kodi マシンに対してステップ 4 を繰り返します。

難しい部分は終わりました!ここで、他の各 Kodi マシンに移動し、ステップ 4 で行ったのと同じテキストを Advancedsettings.xml ファイルに配置するだけです。これを実行すると (そしてそのマシンで Kodi を再起動すると)、すぐに MySQL サーバーからライブラリ情報が取得されるはずです (自分でライブラリを再設定する必要はありません)。

LibreELEC を実行している Raspberry Pi などの一部のデバイスでは、これが適切に機能するために、ネットワーク設定に移動し、「Kodi を開始する前にネットワークを待機する」がオンになっていることを確認する必要があります。

さらに、ビデオがパスワードを必要とする共有上にあり、新しいマシンで Advancedsettings.xml をセットアップした後にエラーが発生した場合は、[ファイル] ビューに移動して [ビデオを追加] をクリックする必要がある場合があります。共有上のフォルダーにアクセスすると、Kodi が資格情報の入力を求めます。その後、「キャンセル」をクリックするか、「なし」タイプのメディアを含むソースを追加できます。

そこから、1 つのボックスでビデオを視聴してみてください。完了すると、他のKodiデバイスでも「視聴済み」として表示されることがわかります。あるマシンでビデオを停止し、選択するだけで中断したところから再開して別のマシンで再生することもできます。新しい家全体のライブラリの同期をお楽しみください。

画像クレジット: FLIRC Kodi Edition Raspberry Pi ケース

「MySQL を使用して複数のデバイス間で Kodi ライブラリを同期する方法」に関するベスト動画選定!

【早くなるの?】2.5GハブとLANカードを導入してみた
《GoogleCloudPlatform入門》フルマネージドリレーショナルデータベースサーバを建てる:Cloud SQL編