ご注意下さい
この記事は3年以上前に書かれた記事ですので、内容が古い可能性があります。
海外赴任中の@setoatuです。
本日は海外から日本の動画配信サービス(Amazonプライム・ビデオやHulu、NetFlixなど)やラジコをAppleTV等から楽しむ方法についてご紹介したいと思います。ウェブ上で紹介されている多くの解決方法としてはVPNサービスを利用してVPN経由で動画を楽しむ方法かと思いますが、VPNはオーバーヘッドが大きくて重いのが問題です。
特に秘匿したいデータ通信の内容でもないですしVPNを利用しなくても理論上は問題ないはずです。
VPNを利用しないメリット
- 動作が軽快
VPNの場合全ての通信がVPNサーバ経由になるため、動画視聴以外の操作も重くなります。 - 接続の都度VPNに接続しなくていい
そして、今回ご紹介する方法がなんと言っても優れている点は、AppleTVから視聴できる!これに尽きます。PCやスマホ、タブレットではなく、TVを見るのと同じような感覚で日本のストリーミングサービスを利用できるというのはご家族の方がいらっしゃる場合には特に重宝するのではないでしょうか。試していませんがお持ちのTVがスマートTVの方であれば同様に日本のストリーミングサービスを利用可能だと思います。
この機能を実現する為に今回はnetflix-proxyというフリーソフトを利用する方法を紹介したいと思います。
ab77/netflix-proxy
Smart DNS Proxyというサービスがありますが、ほぼこれと同じことを実現します。こちらのサービスで日本で対応しているのはAmazonプライムとアニマックスなど一部のサービスのみとなっています(こちらのページに記載があります)。
今回はNetflix-proxyを使って自分専用のサービスを立ててしまおう、という話になります。
この記事のもくじ
netflix-proxyの動作の仕組み
まずは今回ご紹介するnetflix-proxyの動作の仕組みについて解説します。
図がないと説明するのが難しいのですが、クライアント(動画を表示したい端末)のネットワーク設定にて、今回立てるサーバー(netfix-proxyサーバ)のIPアドレスをDNSサーバとして指定します。
DNSサーバとしてnetflix-proxyを指定することで、ホスト名をIPアドレスに変換する際にnetflix-proxyに問い合わせにいきます。netflix-proxyサーバはDNSマスカレードとProxyサーバの組み合わせでできており、例えばamazon.co.jpのIPアドレスを本当のIPアドレスではなく自分自身のIPアドレスをamazon.co.jpのIPアドレスとして返却します。するとクライアントのアプリやブラウザはamazon.co.jpにアクセスしようとしてnetflix-proxyサーバーにアクセスに行くことになります。
netflix-proxyはプロキシーサーバーとしてamazon.co.jpに動画コンテンツを取りに行く、という仕組みです。つまり、netflix-proxyが日本国内にあれば、amazonなどのコンテンツプロバイダーからは日本国内からアクセスしているように見えるのです。わかりますかね?
通常 +----------+ +-----------+ | | | | | client | +--------------> | DNS | | | (Amazonどこ?) | | +----------+ +-----------+ +----------+ +-----------+ | | | | | client | <--------------+ | DNS | | | (Bだよ) | | +----------+ +-----------+ IPアドレスB +----------+ +-----------------+ | | +--------------------------------------------> | | | client | (動画くれ) X<------------+ | Amazon etc. | | | (あんた海外だからダメ) | | +----------+ +-----------------+ Netflix-proxyの場合 DNSとしてAを指定 IPアドレスA +----------+ +-----------+ | | | | | client | +--------------> | proxy | | | (Amazonどこ?) | (日本) | +----------+ +-----------+ +----------+ +-----------+ | | | | | client | <--------------+ | proxy | | | (俺:A) | | +----------+ +-----------+ IPアドレスB +----------+ +-----------+ +-----------------+ | | +--------------> | | (動画くれ) | | | client | (動画くれ) | proxy | <-------------> | Amazon etc. | | | <--------------+ | | (日本なのでOK) | | +----------+ (あいよ) +-----------+ +-----------------+
Netflix-proxyの導入手順
VPSサービスの契約
まずは日本国内にあるVPSサービスの契約が必要です。
VPSサービスはⅠ週間程度の試用期間を設けているサービスが多いことからいろいろと試してみましたが、netflix-proxyを安定的に動作させるには、UbuntuかDebianだと問題が少ないようです。
今回私はGMOの提供するConoHaを選んでみました。後述しますがサーバーが東京にあること、初期費用が0円であること、月額630円であることが決め手です。
サーバーの起動
こちらはConoHaの管理画面です。先にも述べたとおり私の経験からUbuntu、Debianでの動作は確認していますので、サーバーはUbuntuを選びます。
作成したサーバーのコンソール画面にはブラウザ経由でアクセス可能です。
netflix-proxyの導入
導入の仕方は至ってシンプルです。rootで上記コンソールからログインして、以下のコマンドを実行するだけです。
&& apt-get -y install vim dnsutils curl sudo\
&& curl -fsSL https://get.docker.com/ | sh || apt-get -y install docker.io\
&& mkdir -p ~/netflix-proxy\
&& cd ~/netflix-proxy\
&& curl -fsSL https://github.com/ab77/netflix-proxy/archive/latest.tar.gz | gunzip - | tar x --strip-components=1\
&& ./build.sh
インストールが完了すると、設定画面のURLとAdminのパスワードが表示されるので控えておきましょう。URLはhttp://(IPアドレス:上記の図の例だとIPアドレスA):8080/のはずです。
ブラウザからアクセスすると、接続元(今作業している海外)のグローバルIPアドレスが表示されるので追加しましょう。セキュリティのためにnetflix-proxy側に登録されているIPアドレスに対してのみサービスを提供する作りになっているからです。
これでインストールまで完了です。
netflix-proxyのカスタマイズ
さて、ここからは他のサービスの追加(利用したいストリーミングサービス)について書いていきます。
サービスを追加するにはdnsmasq.confというファイルを編集することで行います。当該ファイルの格納場所はホームディレクトリ/root配下にnetflix-proxyというディレクトリ配下にあります。
書式としてはaddress=/当該サーバ経由でアクセスしたいサービスのドメイン名/netflix-proxyサーバのIPアドレス(自IPアドレス)とシンプルです。以下に例を掲載しておきます。
address=/amazon.co.jp/IPアドレスA address=/radiko.jp/IPアドレスA address=/radiko.co.jp/IPアドレスA address=/nicovideo.jp/IPアドレスA address=/dmm.com/IPアドレスA address=/dazn.com/IPアドレスA address=/abema.tv/IPアドレスA address=/hulu.jp/IPアドレスA address=/happyon.jp/IPアドレスA address=/happyon.com/IPアドレスA
Huluは今の所難しそうです。サーバー側から直接IPアドレスを渡されているようでDNSによる名前解決を行っていない気配です。実際にうまく接続できました。理由は後述します。
さて、設定が済んだらサーバーの再起動を行いましょう。netflix-proxyはDocker上に展開されていますので
# docker restart dnsmasq
dnsmasq
#
これで完了です。この設定で、Amazonプライム・ビデオ、Netflix、Radiko(東京地域)、ニコニコ動画、DMM、DAZN、AbemaTVが見れています。
注意事項(追記)
Netflixの場合IPv6をオフにしないといけないようです。
server=/netflix.com/# address=/netflix.com/:: server=/netflix.co.jp/# address=/netflix.co.jp/:: server=/netflix.net/# address=/netflix.net/:: server=/nflxext.com/# address=/nflxext.com/:: server=/nflximg.net/# address=/nflximg.net/:: server=/nflxvideo.net/# address=/nflxvideo.net/:: server=/nflxso.net/# address=/nflxso.net/::
プリズン・ブレイクとか日本語の字幕がでないんだけどこれで合っているんだろうか…。間違っていました。
Huluにアクセスができず、日本のドラマが見れないことにストレスを感じても居たので他のVPSで新しくサービスをたちあげてみました。その結果なんとNetflixに加えてHuluも見れることが判明しました。ということでConoHaはユーザーが多いこともあり、既にコンテンツプロバイダーからBANされているようです。
スマホやAppleTVの設定
PCやスマホ、AppleTVのネットワーク設定でDNSサーバを、Netflix-proxyが導入されているIPアドレスを指定してください。通常は「自動設定」や「DHCP」となっているのでその部分を変更するだけです。
利便性向上のためのルーター側の設定
各PCやスマートフォン、私の場合はAppleTVもですが、各デバイスに対して個別にDNSの設定をしていくのは大変です。
私はNECのAtermを愛用中ですが、設定画面の「接続先設定」のDNSの欄にNetflix-proxyサーバのIPアドレスの指定をしています。こうすることで各デバイスへの個別の設定は不要になります。
記事は以上。Enjoy!