Seiichi Yonezawa

第三世代Apple TVを活用する方法

以前ブログをNext.jsで作り直したのですが、Firebaseの操作ミスで投稿全体を消去してしまいました。 データをサルベージするのが億劫なので、また静的サイトで作り直すことにしました。 動的なブログは更新が楽なのですが、こういったトラブルが起こることを考えると頻度としてもこういった運用が一番かもしれません。


閑話休題。9月の三連休に部屋を掃除していたらたまたまApple TVが見つかりました。 そういえばこのApple TVはAppleがLucky Bagと称した福袋に入っていたものです。 並んだ時はそこそこ雪が降っていたのでネット上でも話題になりました。 ひょっとすると私が映っている写真も探せばまだ残っているかもしれません。 今となっては福袋の販売もApple Store札幌もなくなってしまいましたけどね。

それまで全く興味関心すらなかったのに、あの頃を思い出すとまた愛着が湧いてきました。 調べてみると、第二世代と第四世代のApple TVは簡単に拡張することができるようです。 そしてその間にある第三世代は拡張する方法が現時点では見当たらないとのこと。 本体の裏を見ても一目で自分のApple TVがどの世代かはわかりません。

はやる気持ちを抑えつつ、久しぶりに電源投入してみてモデル名を調べてみると第三世代でした。 また、世代どうこう以前に第四世代以前はディスコンになっているようです。 昔はYouTubeが観れたので大変重宝したのですが、今となってはPrime VideoとNHL、WWEなどのサービスしかありませんでした。

UPDATED: メニュー画面を探してみたら個別にサービスを切り替えることができることに気がつきました。ついでにYouTubeが使えるか調べてみたらなんと問題なく使うことができました。勘違いでしたが、使えることがわかってよかったです。

そこで、PLEXというメディアサーバに目をつけました。 PLEXはサーバにインストールして、動画や音声などのメディアファイルを配信することができます。 サーバはWindows、macOS、LinuxのほかにNASなどもサポートしており、クライアントはブラウザとモバイルに加えてPS3やXbox、Fire TVなどもサポートしているようです。 Apple TVも公式には第四世代がサポートされているのですが、残念ながら第三世代では為す術がありませんでした。

PlexConnect

https://github.com/iBaa/PlexConnect

調べていると、PlexConnectというプロジェクトを見つけました。

READMEからはApple TVそのものを書き換える(JailBreak)せずに、内部的に使われているリクエストを書き換えてPLEXを使えるようにできるとのことです。すごい!

大まかな流れとして:

  1. サーバーにPython2系をインストール
  2. サーバーにPLEXをインストール
  3. サーバーにPlexConnectをダウンロードする
  4. サーバーにSSL証明書を発行する
  5. サーバーに静的なIPアドレスを割り振る
  6. PlexConnectを起動する
  7. Apple TVのDNSをPlexConnectのサーバーに指定する
  8. Apple TVにSSL証明書を追加する
  9. Apple TVでPLEXにログインする

NOTE: 結構長くなってしまうので詳細はWikiを確認してください。

1. サーバーにPython2系をインストール

今回はUbuntu 16.04を使用します。

$ sudo apt install python

2. サーバーにPLEXをインストール

https://www.plex.tv/media-server-downloads/#plex-media-server

インストール後はhttp://localhost:32400/webで動作確認します。

3. サーバーにPlexConnectをダウンロードする

Wikiでは/usr/local/lib/PlexConnectが推奨されているので、指定されたパスに解凍しました。

4. サーバーにSSL証明書を発行する

https://github.com/iBaa/PlexConnect/wiki/Intercepting-another-App

Wikiの通り証明書を発行すればいいだけなのですが、現時点でTrailersは存在しませんので代わりに上記のWikiを参考にWWEを使うことにしました。

$ openssl req -new -nodes -newkey rsa:2048 \
  -out ~/Desktop/trailers.pem \
  -keyout ~/Desktop/trailers.key \
  -x509 -days 7300 -subj \
  "/C=US/CN=secure.net.wwe.com"

ファイル名はtrailers.pemおよびtrailers.keyを使用しています。 複数のPLEXインスタンスを別々に指定する場合はファイル名を変えてもいいようですが、今回は説明のためtrailersを使用します。

5. サーバーに静的なIPアドレスを割り振る

ここでは割愛します。

6. PlexConnectを起動する

さきほど保存したディレクトリに移動して、root権限でPlexConnect.pyを実行します。 同じディレクトリ階層にplexconnect.serviceがありましたので、こちらをsystemdに登録します。 ExecStart/opt/PlexConnect/になっているので/usr/lib/PlexConnect/に修正しておきます。

7. Apple TVのDNSをPlexConnectのサーバーに指定する

メニューのWiFiで自動から手動に変更します。 変更後はPlexConnectのログにApple TVのIPアドレスが表示されれば成功です。

8. Apple TVにSSL証明書を追加する

Appleにデータを送信する箇所をNoに変更し、Remoteの再生/停止ボタンを押すとプロフィール画面が表示されます。 そこにhttp://secure.net.wwe.com/trailers.pemと入力します。

9. Apple TVでPLEXにログインする

特に問題がなければWWEのアイコンからPLEXの画面に遷移できるようになります。 若干のラグがありますが、特に問題なく同期できました。

まとめ

実際に使ってみた感想としては、PLEXそのものは簡単にセットアップできたので大きなトラブルはなく完了できました。 ただ実際に使ってみると、Apple TV側から音量が操作できなかったりするのが不便です。 しかし、ブラウザ版を使ってみるとPLEXもログインの認証周りとプレミア版の誘導リンクが鬱陶しく感じます。 そういう点ではApple TVで使えばブラウザ版を一切使わなくてもよいと思います。 なにより自分だけのPrimeビデオを用意することができるのが素晴らしいですね。

というわけで今回はApple TVを活用する方法を紹介しました。 Apple TVを活用するヒントとして参考にしていただければ幸いです。

投稿一覧