update.はじめにニコニコ動画のHTML5プレイヤーがついにβが外れて正式版になりましたね。おめでとうございます。ここではニコニコ動画のHTML5プレイヤーが扱っている新仕様動画(DMCサーバーが配信する動画ということでDMC動画とか呼んだり?)を再生する方法を紹介していきます。動画のHTML5版プレイヤーのページだけを参考にした内容になります。したAPIがあるとしたら、かなりお行儀の悪い実装になってしまうかもしれません。動画再生の詳細(動画データストリームをデコードして画面にピクセルを描画するまで部分)は省略しています。動画の新仕様APIを通して動画データストリームにアクセスするまで、それと動画データストリームを再生完了まで持続させるための方法について紹介しています。動画情報を取得(DmcInfoが必要)DMCサーバーのSessionApiにアクセスしてセッション情報を取得するDMCサーバーのSessionApiに再生したい動画と音声の組み合わせを示したレシピを送信するDMCサーバーのSessionApiから動画セッション情報(動画コンテンツURLを含む)を受け取る動画コンテンツURLを利用して動画データストリームの接続を行う(動画データストリームを利用して任意の方法で動画を再生する)(ココでは取り扱わない)DMCサーバーのSessionApiに定期的にハートビートを送り、動画データストリームの活性を保つ動画ページからDmcInfoを取得する動画ページのdiv#js-initial-watch-data["data-api-data"]のテキストをHTMLエンコードしてJSONデータにすることで動画視聴やコメント等に必要なデータを扱えるようになります。(=DmcWatchResponse)なお、古い動画やFLV/SWF形式の動画しか扱っていない場合、動画ページはFlash版の方が渡されてきます。この場合は、Smileサーバーの動画を再生出来るように対応します。(ここでは詳細は割愛します)動画再生セッションを作成(レシピの送信)先述の方法で取得したDmcWatchResponse.video.dmc_info.session_apiを利用して、動画セッションを開始するためのjsonデータ=DmcSessionRequestを作成します。DmcSessionRequestを以下のアドレスにPOSTで送りますhttp://api.dmc.nico:2805/sessions?_format=json(このvideo.dmc_info.session_api.urlsから取得できます("?_format=json"の部分は自前で追加する必要があります))レスポンスとしてjson(=DmcSessionResponse)を受け取ります。DmcSessionResponse.data.session.content_uriが動画コンテンツにアクセスするためのアドレスです。HTTPでアクセスして動画ストリームを受取ることが出来ます。動画ファイルを開く方法はプラットフォーム毎の実装によります。内部的にはSmileサーバー(オリジナル画質・エコノミー画質云々の動画)のmp4コンテンツと同じ方法で再生可能となっています。動画再生のハートビートを行うContentUriで示された動画再生URLから動画コンテンツをダウンロード出来ますが、一定時間の間に動画ストリームのシーク操作またはSessionApiへのハートビートがされない場合、動画ストリームがサーバー側からクローズされます。SessionApiのハートビートはCORSに基いて行われるようです。CORSについては詳しくないので解説は他の方がまとめられている記事にお任せします。CORSまとめ実用上の要点だけまとめると、最初の一回だけHTTPのOPTIONSメソッドを利用して、以下のSessionApiのアドレスにPOSTを使うことを伝え、それ以降は一定間隔(120秒毎?)にハートビートとしてSessionApiにパラメータをPOSTメソッドで送信します。Http://api.dmc.nico:2805/api/sessions/{Id}?_format=json&_method=PUT(&_method=PUTはオリジナルでも付いていたのでそのままにしてますが、たぶん不要です。HttpリクエストヘッダのメソッドにOPTIONSを指定します。){Id}はDmcSessionResponse.data.session.idで示された文字列を利用します。そのまま渡すだけで問題ないようです。おわりにハートビートの部分が若干怪しいですが、概要を掴む程度には参考にしてもらえるかと思います。Httpの触り方知ってる人向けという雑な噛み砕き方となってる感が...。ツールHTMLエンコードやUtf-8の変換など宣伝ここで紹介している内容を実装したWindows10向けのニコニコ動画再生アプリを作ってます。10でアクセスするとストアアプリが開きます)https://www.microsoft.com/ja-jp/store/p/hohoema/9nblggh4rxt6プロジェクトページhttps://github.com/tor4kichi/Hohoemaここで紹介したHTML5プレイヤーの画質対応の他に、ニコ生の新配信や軽量なコメント描画など頑張ってますので是非使ってみてください。upLoginユーザーは見つかりませんでした。