使用者:AdorN/備忘錄
出自Vocawiki
更多語言
更多操作
niconico搜索API
以下內容原來自 https://site.nicovideo.jp/search-api-docs/snapshot
niconico搜索API文檔。該API返回的數據有緩存,每日凌晨5:00(UTC+9)刷新。此處取得上次緩存刷新時間
URL
https://snapshot.search.nicovideo.jp/api/v2/snapshot/video/contents/search
參數一覽
| 參數 | 類型 | 可省略 | 預設值 | 例 | 說明 |
|---|---|---|---|---|---|
| q | 字符串 | N/A | ゲーム | 搜索關鍵字(可留空) | |
| targets | 字符串 | [1] | N/A | title,description,tags
|
在何處搜索關鍵字(若指定多個,需用逗號分隔):
|
| fields | 字符串 | N/A | contentId,title,description,tags
|
返回數據中需包含的欄位,具體見下文「欄位」段落。 | |
| filters | 字符串 | N/A | - | 篩選欄位,具體格式見下文「篩選」段落。 | |
| jsonFilter | 字符串 | N/A | - | 複雜篩選,具體格式見下文「JSON篩選」段落。 | |
| _sort | 字符串 | N/A | -viewCounter | 排序方式,可在開頭添加「+」/「-」來指定升序/降序[2],未指定則默認降序 | |
| _offset | 整數 | 0 | 10 | 返回數據的開始位置,不允許超過100000 | |
| _limit | 整數 | 10 | 10 | 返回數據的最大條數,不允許超過100 | |
| _context | 字符串 | N/A | apiguide | 服務或應用程式名稱,填寫為apiguide即可。
| |
q參數格式
可使用「OR」和「-」,方法和用途與Help:搜索/搜索代碼中一致。也可使用""(半角雙引號)進行精確搜索。
欄位
| 參數 | 類型 | 用於fields | 用於_sort | 用於filters | 說明 |
|---|---|---|---|---|---|
| contentId | 字符串 | 即sm號。 | |||
| title | 字符串 | 視頻標題。 | |||
| description | 字符串 | 視頻投稿文。 | |||
| userId | 整數 | 投稿者的用戶ID(若有),可使用這個API獲取更多信息 | |||
| channelId | 整數 | 頻道ID(若有),不知道怎麼獲取更多信息 | |||
| viewCounter | 整數 | 再生數 | |||
| mylistCounter | 整數 | 收藏數 | |||
| likeCounter | 整數 | いいね!數 | |||
| lengthSeconds | 整數 | 視頻長度 | |||
| thumbnailUrl | 字符串 | 封面圖鏈,https://nicovideo.cdn.nimg.jp/thumbnails/o/o.x格式
| |||
| startTime | 字符串 | 投稿時間(ISO8601格式[1],返回值默認UTC+9) | |||
| lastResBody | 字符串 | 最新評論 | |||
| commentCounter | 整數 | 評論數 | |||
| lastCommentTime | 字符串 | 最新評論時間(ISO8601格式[1],返回值默認UTC+9) | |||
| categoryTags | 字符串 | 分類標籤 | |||
| tags | 字符串 | 標籤(空格分隔) | |||
| tagsExact | 字符串 | 精確標籤(空格分隔) | |||
| genre | 字符串 | 分區 | |||
| genre.keyword | 字符串 | 精確分區 | |||
篩選
- 一般篩選:
filter[字段][数字下标]=值 -
- 例:
- 再生數等於100,000:
filters[viewCounter][0]=1000000 - 遊戲分區:
filters[genre][0]=ゲーム
- 再生數等於100,000:
- 例:
- 數字/日期篩選:
filter[字段][lt/lte/gt/gte]=值 -
- lt=<,lte=≤,gt=>,gte=≥
- 例:
- 傳說直前:
filters[viewCounter][gte]=900000&filters[viewCounter][lt]=1000000 - 2014年投稿:
filters[startTime][gte]=2014-01-01T00:00:00+09:00&filters[startTime][lt]=2015-01-01T00:00:00+09:00
- 傳說直前:
JSON篩選
懶得寫,見此
返回結果
若無異常,格式如下:
{
"meta": {
"status": 200,
"totalCount": 1,
"id":"594513df-85ea-4122-9859-f4ec2701cacf"
},
"data": [
{
"contentId": "sm9",
"title": "テスト",
"description": "テスト",
"startTime": "2016-11-03T02:09:11+09:00",
"viewCounter": 1
}
]
}
實例
- 按tag篩選niconico上的VOCALOID殿堂曲(簡化版)
- 程序
import json
import requests
proxies = {
"http": "127.0.0.1:9910",
"https": "127.0.0.1:9910"
}
def get_from_nicotag():
url = "https://api.search.nicovideo.jp/api/v2/snapshot/video/contents/search"
params = {
"q": "",
"fields": "contentId,title,tags,viewCounter,startTime,thumbnailUrl,userId,description",
"filters[tagsExact][0]": "VOCALOID殿堂入り",
"filters[tagsExact][1]": "VOCALOID伝説入り",
"filters[tagsExact][2]": "VOCALOID神話入り",
"_sort": "-startTime",
"_context": "apiguide",
"_offset": 0,
"_limit": 100
}
res = json.loads(requests.get(url, params, proxies=proxies).text)
data: list[dict] = res["data"]
totalCount: int = res["meta"]["totalCount"]
for ofs in range(100, totalCount, 100):
print(ofs)
params["_offset"] = ofs
res = json.loads(requests.get(url, params, proxies=proxies).text)
data += res["data"]
data.reverse()
with open("templesong_data.json", "w", encoding="UTF-8") as f:
json.dump(data, f, indent=4, ensure_ascii=False)
if __name__ == "__main__":
get_from_nicotag()
- 輸出(投稿文已隱去)
[
{
"startTime": "2007-03-06T21:29:42+09:00",
"viewCounter": 130457,
"contentId": "sm6772",
"thumbnailUrl": "https://nicovideo.cdn.nimg.jp/thumbnails/6772/6772",
"description": "...",
"tags": "3月6日投稿動画 karimono MEIKO VOCALOID VOCALOID実写PV VOCALOID殿堂入り ニコニコ動画内最古のVOCALOID動画 メロディック妹メタル 平成最後のVOCALOID殿堂入り 最古の動画 聖地",
"userId": 44961,
"title": "メロディック妹メタル~妹ライン10/10~"
},
{
"startTime": "2007-05-15T23:20:14+09:00",
"viewCounter": 116437,
"contentId": "sm300345",
"thumbnailUrl": "https://nicovideo.cdn.nimg.jp/thumbnails/300345/300345",
"description": "...",
"tags": "MEIKO MEIKO名曲リンク VOCALOID VOCALOID殿堂入り 天零萃夢 東方VOCALOID 砕月 砕月アレンジ 蒼桐大紀 飛絨毯",
"userId": 152432,
"title": "天零萃夢"
},
{
"startTime": "2007-08-29T14:02:39+09:00",
"viewCounter": 274684,
"contentId": "sm941537",
"thumbnailUrl": "https://nicovideo.cdn.nimg.jp/thumbnails/941537/941537",
"description": "...",
"tags": "01_ballade VOCALOID VOCALOIDデモソング VOCALOID殿堂入り ボカロバラード 全てはここから始まった 公式デモ 初音ミク 星のカケラ 重要ニコニコ文化財 音楽",
"userId": 446988,
"title": "ボーカロイド 初音ミク デモソング"
},
// 后略6423个...
]