Raspberry Pi(ラズパイ)でAmazonプライムビデオを見る

2020年4月23日

前回まででRaspberry Pi(ラズパイ)でYoutubeが見れるようになりました。

Raspberry Pi(ラズパイ)でYoutubeをみる
Raspberry Pi(ラズパイ)でYoutubeをみる
前回まででOSMCのインストール、初期設定まで終わらせました。 ここからいろいろなメディアを追加していく作業で…
http://nomux2.net/post-1633/

今回は、いよいよ今回のOSMCを入れる目的となったAmazonプライムビデオを見れるようにしたいと思います。

プロファイルをネットからダウンロードする必要がありますが、手順はYouTubeの時と同様に、アドオンを選ぶだけなので簡単です。

それではやってみましょう

OSMCでAmazonプライムビデオを見る

Amazonプライムビデオをみるにはアドオンをインストールしないといけませんが、アドオンブラウザーからは見つけられません。なので直接インストール用のファイルをラズパイに送信します。

Tera Termをインストールする

初期設定のときにSSHを設定しました。

Raspberry Pi(ラズパイ)でOSMCの初期設定をする(日本語化もする)
Raspberry Pi(ラズパイ)でOSMCの初期設定をする(日本語化もする)
前回、OSMCをRaspberry Pi(ラズパイ)にインストールしました。 今回はその続きで初期設定をしてい…
http://nomux2.net/post-1608/#toc_id_1_4

これを利用してパソコンからRaspberry Pi(ラズパイ)を操作します。

下記のサイトからTera Termをダウンロードしてインストールしてください。

https://ja.osdn.net/projects/ttssh2/

Tera Termのインストールはウィザードに従ってそのまま行います。特に注意することもないので、ここでは割愛します。

Raspberry Pi(ラズパイ)と接続する

まずはターミナルソフト(TeraTerm)を起動して、SSHでOSMCにログインします。
Raspberry Pi(ラズパイ)のIPアドレスを入力し、「OK」を押して接続します。

※IPアドレスがわからない場合はコマンドプロンプトで「 arp -a 」でIPアドレスの一覧がでてきます。

以下の画面は「続行」を選択

ユーザー名もパスワードも初期設定では「osmc」です。

「OK」を選択し、接続完了すると以下のような画面が出てきます。

これで準備完了です。

アドオンをダウンロードする準備

最新のビルドである「nightly build」版を以下の手順でインストールします。
Tere Term以下のコマンドを打ち込んでください。

$ sudo apt update
$ sudo apt dist-upgrade -y
$ sudo apt install rbp2-mediacenter-osmc -y --allow-downgrades

こんな感じ

以下のコマンドも同様に入力していきましょう。

次にPython関連のパッケージをインストールします。

$ sudo apt install python-pip python-crypto build-essential -y
$ sudo apt install python-all-dev python-setuptools python-wheel -y
$ sudo apt install python-crypto-dbg python-crypto-doc python-pip-whl -y
$ sudo pip install pycryptodomex

シンボリックリンクを作成します。

sudo ln -s /usr/lib/python2.7/dist-packages/Crypto /usr/lib/python2.7/dist-packages/Cryptodome

amazonプライムビデオのアドオンが入ったリポジトリをダウンロード

$ wget https://github.com/Sandmann79/xbmc/releases/download/Repository/repository.sandmann79.plugins-1.0.3-leia.zip

アドオンがダウンロードできたらターミナルソフトは終了して構いません。

Raspberry Pi(ラズパイ)にインストール

OSMC(ラズパイ)に戻り「設定→アドオンブラウザー」「zipファイルからインストール」を選びます。

デフォルトでは不明なソースをインストールできないというメッセージが表示されますので、ここで「設定」を選択します。

設定画面で「不明なソース」にチェックを入れます。

「 アドオンブラウザー 」から再度「zipファイルからインストール」を選択する

先ほどTeraTermでダウンロードしたファイルはホームフォルダーの中にあります。
「ホームフォルダー」を選び、「repository.sandmann79.plugins-1.0.3-leia.zip」を選択してOKをクリックします。

※画像のバージョンが古いですが手順は同様です。

その後アドオンブラウザーに戻り「レポジトリからインストール」を選んで「Sandmann79s Repojitory」を選びます。

「ビデオアドオン→Amazon VOD」を選択し、次の画面で「インストール」を選択します。これでインストール作業は完了です。

インストール後は再起動してください。

Amazonプライムビデオの設定

「Connection」から「Amazon Account」を選んでログインする。

ログイン後は「ビデオ→ビデオアドオン」から「Amazon VOD」を選べばAmazonプライムビデオが見られるようになります。

日本語で検索するとエラーがでる

前にも記事に書きましたが、OSMCでは日本語をキーボードから入力できません。
ですのでスマホのKodiアプリから「ドラえもん」と送ってみました。

そうするとエラーが発生して検索できません。

ログの場所は、TeraTermで以下のコマンドで確認できます。

 cat /home/osmc/.kodi/temp/kodi.log

ログの内容

 2020-02-06 06:24:54.285 T:1394582240   ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--                                              - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!                                             Error Type: 
                                             Error Contents: u'\u30c9'
                                             Traceback (most recent call last):
                                               File "/home/osmc/.kodi/addons/plugin.video.amazon-test/default.py", line 5, in 
                                                 EntryPoint()
                                               File "/home/osmc/.kodi/addons/plugin.video.amazon-test/resources/lib/startup.py", line 99, in EntryPoint
                                                 exec('g.amz.{}()'.format(mode))
                                               File "", line 1, in 
                                               File "/home/osmc/.kodi/addons/plugin.video.amazon-test/resources/lib/amazontld.py", line 178, in Search
                                                 url = 'searchString=%s%s' % (quote_plus(searchString), self._s.OfferGroup)
                                               File "/usr/lib/python2.7/urllib.py", line 1306, in quote_plus
                                                 return quote(s, safe)
                                               File "/usr/lib/python2.7/urllib.py", line 1299, in quote
                                                 return ''.join(map(quoter, s))
                                             KeyError: u'\u30c9'
                                             -->End of Python script error report<--
 2020-02-06 06:24:54.479 T:1394582240 WARNING: CPythonInvoker(10, /home/osmc/.kodi/addons/plugin.video.amazon-test/default.py): the python script "/home/osmc/.kodi/addons/plugin.video.amazon-test/default.py" has left several classes in memory that we couldn't clean up. The classes include: N9XBMCAddon7xbmcgui6DialogE,N14PythonBindings31XBMCAddon_xbmc_Monitor_DirectorE,N9XBMCAddon9xbmcaddon5AddonE
 2020-02-06 06:24:54.487 T:1542828768   ERROR: GetDirectory - Error getting plugin://plugin.video.amazon-test/?cat=Browse&mode=Search&opt&page=1&url
 2020-02-06 06:24:54.488 T:1915311664   ERROR: CGUIMediaWindow::GetDirectory(plugin://plugin.video.amazon-test/?cat=Browse&mode=Search&opt&page=1&url) failed

これがエラーを起こしている箇所でした。これによると

2行目: Error Contents: u’\u30c9′ ってありますね。調べたらユニコードの「ド」でした。検索のドラえもんの「ド」がエラーになっているようです。

9-10行目:怪しいのはこれですね。178行目にエラーがでているとあります。
urlという変数名からURLを作成しているようですが、URLは本来UTF-8であるため、ユニコードは使えないはずです。
searchStringにユニコードの「ドラえもん」が入っているのでエラーになっていると推測します。

searchStringをdecodeしてみます。ソースコードをViで開きます。

vi /home/osmc/.kodi/addons/plugin.video.amazon-test/resources/lib/amazontld.py

エラーの個所を探しましょう。ログによると178行目とあります。

「i」を押して編集モードに入ります。

url = 'searchString=%s%s' % (quote_plus(searchString), self._s.OfferGroup)

これを以下のように直します。

url = 'searchString=%s%s' % (quote_plus(searchString.encode('utf-8')), self._s.OfferGroup)

編集が終わったら「ESC」キーを押して編集モードから抜けます。

「:wq」と入力してEnterキーを押すと保存して終了します。

エラーはでなくなったが・・・

検索文字が「ドラえもん」だとエラー「ドラえも」だとできました。
また「クレヨン」はダメ「クレヨ」だと通りました。

amazonプライムの検索用のURLが500エラーを返しているので検索した文字列の制限があるのかもしれません。 これはAmazon側の問題です。

ユニコードをUTF-8に変換すると「ドラえもん」という検索だけで45文字くらいになるので検索文字が長すぎてエラーになっているのだと思われます。

まあローマ字でも打ちでいけるので我慢するしかないですね。

まとめ

ついにAmazonプライムビデオが見えるようになりました。

ここで終わりとしたいですが、このままだと子供たち以外操作方法がわかりません。

手順説明がなくても直感的に操作できるようにしていきたいですね。

ここまで読んでいただいてありがとうございます。