概要
ベースURL: https://otomad-ranking.com
すべてのエンドポイントは GET メソッドで、レスポンスは JSON 形式です。認証不要・CORS対応のため、ブラウザのJavaScriptから直接呼び出せます。
使用例(JavaScript)
const res = await fetch("https://otomad-ranking.com/api/growth-ranking");
const data = await res.json();
console.log(data);
リアルタイムランキング
GET /api/growth-ranking/dates
リアルタイムランキングが存在する日付の一覧を返します。
レスポンス例
{
"dates": [
{ "date": "20260720", "generatedAt": 1753012800000 },
{ "date": "20260719", "generatedAt": 1752926400000 }
]
}
| フィールド | 型 | 説明 |
|---|---|---|
dates[].date | string | 日付(YYYYMMDD形式) |
dates[].generatedAt | number | データ生成日時(UNIXミリ秒) |
GET /api/growth-ranking
指定日(省略時は最新)のリアルタイムランキングデータを返します。
| パラメータ | 型 | 説明 |
|---|---|---|
?date | string | 日付(YYYYMMDD形式)。省略時は最新日付。 |
レスポンス例
{
"dateLabel": "20260720",
"windows": {
"weekly": {
"growthRanking": [
{
"rank": 1,
"videoId": "sm12345678",
"title": "動画タイトル",
"thumbnailUrl": "https://...",
"growth": 15000,
"currentViews": 80000
}
],
"mylistRateRanking": [ ... ]
},
"daily": { ... }
}
}
週刊音MADランキング バックナンバー
GET /api/backnumber-ranking/weeks
登録済みのバックナンバー週一覧を返します。
レスポンス例
{
"weeks": [
{
"week": 841,
"generatedAt": 1753012800000,
"period": { "start": "2026/07/06", "end": "2026/07/12" },
"thumbnailUrl": "https://...",
"title": "動画タイトル"
}
]
}
GET /api/backnumber-ranking
指定週(省略時は最新)のバックナンバーランキングデータを返します。
| パラメータ | 型 | 説明 |
|---|---|---|
?week | number | 週番号(第○回の数字)。省略時は最新。 |
レスポンス例
{
"week": 841,
"announcementVideoId": "sm46404782",
"announcementTitle": "週刊音MADランキング #841",
"periodText": "集計期間 ...",
"entries": [
{
"rank": 1,
"label": null,
"videoId": "sm12345678",
"title": "動画タイトル",
"uploader": "投稿者名",
"thumbnailUrl": "https://...",
"point": 15200
},
{
"rank": null,
"label": "PICKUP",
"videoId": "sm23456789",
"title": "...",
...
}
]
}
| フィールド | 型 | 説明 |
|---|---|---|
entries[].rank | number | null | 順位(PICKUP/OP/EDはnull) |
entries[].label | string | null | ラベル(PICKUP / OP / ED など) |
entries[].videoId | string | ニコニコ動画の動画ID |
entries[].point | number | ポイント(ある場合) |
タグランキング
GET /api/tag-ranking/dates
タグランキングデータが存在する日付の一覧を返します。
レスポンス例
{
"dates": [
{ "date": "20260720", "generatedAt": 1721433600000 }
]
}
GET /api/tag-ranking
指定日のタグランキング(トレンド・使用回数・マイリスト率の3種類 × デイリー/ウィークリー/月間)。全動画のスナップショット差分から、タグごとに成長ポイントを集計したものです。
| パラメータ | 型 | 説明 |
|---|---|---|
?date | string | 日付(YYYYMMDD)。省略時は最新 |
レスポンス例(一部抜粋)
{
"dateLabel": "20260720",
"generatedAt": 1721433600000,
"windows": {
"daily": {
"trendRanking": [
{ "rank": 1, "tag": "東方", "growthPoint": 12345, "viewDelta": 10000, "mylistDelta": 200, "videoCount": 50 }
],
"countRanking": [
{ "rank": 1, "tag": "cookie☆", "growthPoint": 8000, "viewDelta": 6000, "mylistDelta": 100, "videoCount": 80 }
],
"mylistRateRanking": [
{ "rank": 1, "tag": "例のアレ", "mylistRate": 5.23, "growthPoint": 3000, "viewDelta": 2000, "mylistDelta": 105, "videoCount": 30 }
]
},
"weekly": { "..." : "..." },
"monthly": { "..." : "..." }
}
}
動画統計値履歴
GET /api/video-history
指定した動画の再生数・コメント数・マイリスト数・いいね数の推移を、スナップショットの全日付分返します。
| パラメータ | 型 | 説明 |
|---|---|---|
?id | string | 動画ID(sm12345678)またはニコニコ動画のURL |
レスポンス例
{
"videoId": "sm29811031",
"snapshots": 4,
"history": [
{ "date": "20260717", "takenAt": 1784279953975, "view": 10754, "comment": 62, "mylist": 56, "like": 29 },
{ "date": "20260718", "takenAt": 1784338043745, "view": 10754, "comment": 62, "mylist": 56, "like": 29 },
{ "date": "20260719", "takenAt": 1784433427876, "view": 10754, "comment": 62, "mylist": 56, "like": 29 },
{ "date": "20260720", "takenAt": 1784527786387, "view": 10755, "comment": 62, "mylist": 56, "like": 29 }
]
}
| フィールド | 型 | 説明 |
|---|---|---|
videoId | string | 動画ID |
snapshots | number | 該当動画が含まれるスナップショット数 |
history[].date | string | スナップショット日付(YYYYMMDD) |
history[].takenAt | number | スナップショット取得日時(UNIXミリ秒) |
history[].view | number | 再生数 |
history[].comment | number | コメント数 |
history[].mylist | number | マイリスト数 |
history[].like | number | いいね数 |
横断検索
GET /api/search
動画タイトル・動画ID・日付・週番号などで、リアルタイムランキングとバックナンバーの全データを横断検索します。
| パラメータ | 型 | 説明 |
|---|---|---|
?q | string | 検索キーワード(2文字以上)。以下の形式に対応: ・動画タイトル(部分一致) ・動画ID(sm12345678) ・日付(2026/07/20, 20260720, 2026/07) ・月(7月) ・週番号(第841回) ・発表タイトル(部分一致) ・対象期間テキスト(部分一致) |
レスポンス例
{
"q": "第841回",
"matchedDates": [
{ "date": "20260720" }
],
"matchedWeeks": [
{
"week": 841,
"period": { "start": "2026/07/06", "end": "2026/07/12" },
"announcementTitle": "...",
"thumbnailUrl": "https://..."
}
],
"count": 5,
"results": [
{
"source": "backnumber",
"week": 841,
"period": { "start": "...", "end": "..." },
"rank": 1,
"videoId": "sm12345678",
"title": "...",
"thumbnailUrl": "..."
},
{
"source": "realtime",
"date": "20260720",
"legacy": false,
"rank": 3,
"videoId": "sm12345678",
"title": "...",
"thumbnailUrl": "..."
}
]
}
エラーレスポンス
エラー時はHTTPステータスコード 400/404/500 とともに以下の形式で返します。
{ "error": "エラーメッセージ" }
レート制限
現時点ではレート制限を設けていませんが、常識的な範囲でご利用ください。短時間の大量リクエストはサーバーに負荷がかかるため、適度な間隔(1秒以上)を空けてください。