ニコニコ動画のAPIまとめ
Deprecated: 更新していません
ニコニコのマイリスト周りにAPIがいろいろ増えていたので、列挙してみる。
使い方は http://res.nimg.jp/js/nicoapi.js をよく読む。
見方としては
分別 メソッド名 URL(http://www.nicovideo.jp/api/foo/bar という感じで使う) クエリー(それぞれの要素を&でつなげて指定) 返ってくるもの
という感じで書いている。
Cathode Music: ニコニコ動画(9)APIを纏めた : http://tewi.blogspot.com/2009/11/9api.html
も併せて読む。
書き方の一例(testという名前のマイリストを新規作成する)
Nico make mylist ←のブックマークレットをニコニコ動画上のトークンがあるページで実行する
var token = NicoAPI.token;
location.href = “http://www.nicovideo.jp/api/mylistgroup/add?name=test&description=&public=1&default\_sort=1&icon\_id=0&token=”+token;
APIのURLに引数となるクエリーを&区切りでつなげていったURLにアクセスすると正否を表すjsonが返ってくる。
書き込み権限が必要なAPIにはtokenも必要となる。
tokenはNicoAPI.token = “xxxxx-xxxxx-xxxxxxxxxxxx”という感じでページに埋め込まれているので、
Greasemonkeyからならvar token = unsafeWindow.NicoAPI.token で取得できるはず。
基本的に返ってくるものはjson形式
適当にパラメータの説明
- item_typeは0であることがほとんどらしい。動画が0、静画が5。
- item_idは接頭辞のない数字だけの動画番号を指定する
- id_listは id_list[0][]=item_id という感じのパラメータになる
NicoAPI.Deflist とりあえずマイリスト list とりあえずマイリストの一覧を取得 "/api/deflist/list" jsonフォーマットで返ってくる add とりあえずマイリストに追加 "/api/deflist/add", { "item_type": item_type, "item_id": item_id, "description": description } item_typeは接頭辞のない数字だけの動画番号を指定する update とりあえずマイリストを更新 "/api/deflist/update", { "item_type": item_type, "item_id": item_id, "description": description } remove とりあえずマイリストから削除 "/api/deflist/delete", { "id_list": id_list } move とりあえずマイリストから移動 "/api/deflist/move" { "target_group_id": target_group_id, "id_list": id_list } copy とりあえずマイリストからコピー "/api/deflist/copy" { "target_group_id": target_group_id, "id_list": id_list }
NicoAPI.MylistGroup マイリスト list jsonフォーマットでマイリスト一覧を取得 マイリストの名前やidなど(中身はNicoAPI.Mylistで) "/api/mylistgroup/list" get 指定したマイリストIDの詳細を取得 listに含まれてるのと同じ内容? "/api/mylistgroup/get" { "group_id": group_id } add マイリストを新規作成 "/api/mylistgroup/add" { "name": name, "description": description, "public": is_public,// 0:非公開 1:公開 "default_sort": default_sort, "icon_id": icon_id } update マイリスト情報を更新 "/api/mylistgroup/update", { "name": name, "description": description, "public": is_public, "default_sort": default_sort, "icon_id": icon_id } remove マイリストを削除する "/api/mylistgroup/delete", { "group_id": group_id } sort マイリストのソートの実行 マイリスト情報の"default_sort"で指定したソート法でソートし直す "/api/mylistgroup/sort" { "group_id_list": group_id_list }
icon_idの指定
左から順に0,1,2,3となっていて 数字で指定
default_sortのソート法の指定
ソート方法 |
登録が古い順 |
登録が新しい順 |
メモ昇順 |
メモ降順 |
タイトル昇順 |
タイトル降順 |
投稿が新しい順 |
投稿が古い順 |
再生が多い順 |
再生が少ない順 |
コメントが新しい順 |
コメントが古い順 |
コメントが多い順 |
コメントが少ない順 |
マイリスト登録が多い順 |
マイリスト登録が少ない順 |
時間が長い順 |
時間が短い順 |
NicoAPI.Mylist マイリストの動画操作 list 指定したマイリストの動画一覧を取得 "/api/mylist/list", { "group_id": group_id } add 指定したマイリストの動画を加える "/api/mylist/add", { "group_id": group_id, "item_type": item_type, "item_id": item_id, "description": description } update 指定したマイリストの動画情報を更新 "/api/mylist/update", { "group_id": group_id, "item_type": item_type, "item_id": item_id, "description": description } remove 指定したマイリストの動画を削除 "/api/mylist/delete", { "group_id": group_id, "id_list": id_list } id_listの形式 function make_id_list(item_type, item_id) { var id_list = {}; id_list[item_type] = jQuery.makeArray(item_id); return id_list; } move 指定したマイリストの動画を別のマイリストに移動 "/api/mylist/move", { "group_id": group_id, "target_group_id": target_group_id, "id_list": id_list } 例) http://www.nicovideo.jp/api/deflist/move?id_list%5B0%5D%5B%5D=動画番号&target_group_id=マイリスト番号&token=トークン 指定したマイリストの動画を別のマイリストにコピー copy "/api/mylist/copy", { "group_id": group_id, "target_group_id": target_group_id, "id_list": id_list }
NicoAPI.Watchitem ウォッチリスト list ウォッチリストの一覧を取得 "/api/watchitem/list" watchitem配列にウォッチリストに登録したユーザー名やIDが入っている exist ウォッチリストのitem確認 "/api/watchitem/exist", { "item_type": item_type, "item_id": item_id } add ウォッチリストに加える "/api/watchitem/add", { "item_type": item_type, "item_id": item_id } remove ウォッチリストから削除する "/api/watchitem/delete", { "id_list": id_list }
NicoAPI.Mymemory マイメモリー list マイメモリーに入れている動画一覧を取得 "/api/mymemory/list" remove マイメモリーからid_listで指定した動画を削除 "/api/mymemory/delete", { "id_list": id_list } NicoAPI.Friendlist フレンドリスト list "/api/friendlist/list", { "sort": options.sort, "order": options.order, "offset": options.offset, "count": options.count } remove "/api/friendlist/delete", { "target_user_id": target_user_id }
NicoAPI.Mylistcomment マイリストコメント list "/api/mylistcomment/list" { "item_type": item_type, "item_id": item_id } nicoapi.jsには書いてないので、この指定方法が正しいか分からない。 json形式でマイリストが返ってくる
実際にこのAPIを叩くと
{“mylistcomment”:[],”status”:”ok”}
のような空が返ってきてしまう。正しく取得する方法があればお知らせ下さい。
例) sm9 のマイリストコメントを取得 http://www.nicovideo.jp/api/mylistcomment/list?item_type=0&item_id=1173108780 item_typeは0でないといけないらしい。(動画が0で、静画が5だそうです) item_idには接頭辞のない動画番号を指定。
例)Greasemonkeyからマイリストコメントのコメントを取得
getMylistcomments(function(res){ console.log(res) }); function getMylistcomments(callback){ var itemId = document.getElementsByName("thread_id")[0].value; GM_xmlhttpRequest( { method : 'GET', url : "http://www.nicovideo.jp/api/mylistcomment/list?item_type=0&item_id=" + itemId, headers : { 'User-Agent' : 'Mozilla/5.0 Greasemonkey; Nico MylistComments' }, onload : function (res) { var jsObject = JSON.parse(res.responseText); var l = jsObject.mylistcomment.length; var result = []; if (jsObject.status == "ok" && l > 0) { for(var i =0;i<l;i++){ result.push(jsObject.mylistcomment[i].description) } callback(result) } } }); }
remove "/api/mylistcomment/delete", { "item_type": item_type, "item_id": item_id, "comment_user_id": comment_user_id }
静画関係のAPIはこちらを見た方がよいです。
ニコ動マイリスト系APIまとめ – あたご型護衛艦日記 : http://d.hatena.ne.jp/aTaGo/20100811/1281552243