読者です 読者をやめる 読者になる 読者になる

ニコニコ動画で getflv を呼び出すときに便利なGM用ライブラリ

NicoFilter Tabを書くときに使った関数をライブラリ化しました。gistにアップロードしてあります。ニコニコ動画でgetFlvを呼び出す関数

概要

ニコニコ動画用のGMスクリプトを書くときに,http://flapi.nicovideo.jp/api/getflv/sm*****を呼び出す処理が必要になることがあります。このAPIへのアクセスを簡単にするライブラリです。APIの呼び出し回数を減らして,アクセス制限にひっかからないようにするのも目的の1つです。

使い方

GMスクリプトの冒頭で

// @require        https://gist.github.com/raw/670311/2a32978c5b58a477af62c7ae3e4123403c873f8a/nicovideo_getFlv.js

などと記述しておきます (指定するURLは,最新版のものにしておくことをオススメします。上記のgistのリンク先から入手できます)。そして,getflvの情報を取得したいところで

nicovideo_getFlv('sm9', function(obj, responseText) {
 ...
});

こんな感じで書きます。responseTextにはAPIにアクセスして得られる文字列が,objにはその文字列をパースした結果のオブジェクトが代入されます。objのフォーマットは以下のような感じ

{ "thread_id": "1173206704",
  "l": "111",
  "url": "http://smile-pcm31.nicovideo.jp/smile?v=8702.9279",
  "link": "http://www.smilevideo.jp/view/8702/43375",
  "ms": "http://msg.nicovideo.jp/7/api/",
  "user_id": <ユーザーID>,
  "is_premium": "1",
  "nickname": <ニックネーム>,
  "time": "1289361631",
  "done": "true",
  "feedrev": "9eb78",
  "ng_rv": "434",
  "ng_up": [
    ["はー","はあああああああああああああああああああああああああああああ"],
    ["どー","どおおおおおおおおおおおおおおおおおおおおおおおおおおおおお"],
    ["らっちー","らっち〜☆ミ らっち〜☆ミ"],
    ["つー","つううううううううううううううううううううううううううううううううううううううううう"]
  ],
  "hms": "hiroba01.nicovideo.jp",
  "hmsp": "2530", 
  "hmst": "1000000006",
  "hmstk": "1289361691.cROP5uDxwti4Dfb-3rFLRXoGIow",
  "rpu": {
    "count": 1031240,
    "users": [
      <ユーザー名1>,
      ...,
      <ユーザー名n>
    ], 
    "extra":0 
  }
}

各値の意味についてはgetflvの戻り値についてまとめ(2010年8月版) - MineAPの(開発)日記を参照してください。