ニコニコ動画の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