ニコニコ動画の動画URLを取得してみた [すごい広島 #34]
すごい広島 #34へ参加しました。
すごい広島というのは広島のエンジニアやウェブデザイナーが毎週集まって、 もくもくと作業をしたり読書をしたりしてコミュニケーションの輪を広げる集まりです。(前々回を引用)
今回は忙しい時期を抜けた事もあり、多くの参加者がいらっしゃいました。
今回のやることリスト
やることリストにはニコニコAPI(非公式)を使うと書いてありますが、実はニコニコ動画のアカウントを持っていません。その為、アカウントを登録せずに動画を取得してみました。
認証キー(thumbPlayKey)の取得
最初に、動画のURLを取得するためのthumbPlayKeyと呼ばれる認証キーを取得します。認証キーは以下のURLで取得出来ます。
http://ext.nicovideo.jp/thumb_watch/(video_id)
しかしそのままURLを直打ちすると偽物?の認証キーを返します。
偽物の認証キーは文字列の最後にXXXX...という様に.が3個連続します。(正しくは.が2つ)
本来、ニコニコ動画の外部再生にはいくつかのドメイン(例:*.web.fc2・*.hateblo.jp・blog.livedoor.jpなど)にしか対応していないようです。
ドメインの判定にリファラを用いているようなのでリファラを変えてアクセスすると正しい認証キーが取得出来るようです。
以下のURLで簡単に認証キーを取得できます。(まだ未完成ですが)
http://niconicoplayer.web.fc2.com/?video_id=(取得したいvideo_id)
認証キーがアラートで表示されます。
動画のURLを取得
動画のURLは以下のURLで取得できます。(今回はリファラを変えなくてもきちんと返してくれます)
http://ext.nicovideo.jp/thumb_watch/(video_id)/(thumbPlayKey)
上記のURLにアクセスするとURLエンコードされた動画本体のURLや違反動画に対しての通報フォームなどのURLが返ってきます。
取得したURLを逆エンコードしてアクセスすると動画本体へアクセスできます。
問題点
まだ追えていない部分も多く、現状では端末によっては認証キーの取得がうまくいかないので、まだまだ改善が必要です。
注意点
上記の仕様は頻繁に変わるそうなので、時間が経つとあまり役に立たないかも知れません。