ニコニコ外部プレイヤーを動的につくる

外部プレイヤーを使うことで、ログインしなくても動画を視聴することが可能です。
しかし、外部プレイヤーを動的に生成しようとすると情報も少なくちょっと面倒なので紹介しておきます。

Flash

まずは、おなじみのFlashプレイヤーを生成します。
document.write を書き換える方法が結構紹介されていたりしますが、個人的には以下のようにした方が簡潔でいいと思います。

ただし、埋め込み不可な動画のエラーハンドリング処理などを入れる場合は document.write を書き換えた方が手っ取り早いです。

  • コールバック関数を指定しているので、thumbWatchが呼ばれます。(4行目)

  • dataには、基本的な動画情報がセットされています。適当に使ってください。(5行目)

  • playerには、ID文字列を指定してもおkです。(5行目)

HTML5

ニコニコ動画の動画を再生するには、nicohistoryという Cookie が必須です。

外部プレイヤーでは、通常ログインしないと取得できない動画情報(動画ファイルURLなど)と Cookie が一括で取得できるAPIが用意されているのでそれを利用します。

しかし、詳細な動画情報を得てあんなことやこんなことをしようと期待に夢を膨らませながら23行目のようにしても何も得られません。

なぜなら、レスポンスがtext/plainだからです。(クロスドメイン間の制約)

これを回避するには、サーバーサイドなど制約のないところから動画ファイルURLなどを取得する専用のプログラムを用意する必要があります。

  • 一般会員とプレミアム会員で動画配信サーバーが異なるので、どちらの会員でもアクセスできるエコノミー品質で再生するための Cookie を取得する。(10行目)

  • ちなみにエコノミー品質の動画は元動画が flv でも mp4 にエンコードされている。

  • swfrtmpe の動画は当然のことながら HTML5 では再生できない。