新ランキングでのランキング過去ログファイル利用方法
はじめに
ニコニコ動画では、過去にどのような動画がランキングに掲載されていたかが分かる機能を提供しています。
これまではプレミアム会員専用機能として、ブラウザ上で過去のランキングを閲覧できる機能を提供してまいりましたが、
2019年6月に導入される予定の新ランキング(ジャンルランキング)にあわせて、ファイルとしてご提供する方式に変更させていただきます。
つきましては、本記事を通して、ランキング過去ログファイルの技術情報について、事前に説明させていただきます。
このドキュメントの説明
本ドキュメントは、リリースに先立ち、ランキング過去ログの情報を必要とするniconicoユーザー様に向けて、事前に技術情報を解説するものです。
ジャンルランキングの過去ログファイルは、ジャンルランキングのリリースと同時に利用可能になります。
利用を希望される方は、後日掲載される利用規約に同意いただいたうえで、このページに記載されている方法をもとにログファイルを取得してください。
ランキング過去ログファイルの概要
ランキング過去ログファイルを利用していただくと、以下の情報を取得することができます。
- ある日に存在していた「ジャンル」と、「ジャンルごとの代表的なタグ」の一覧。また、その日の「ジャンル」または「代表的なタグ」の過去ランキングデータへのアクセスURL
- ある日の全ジャンル・ジャンル別・代表的なタグ別のランキング
過去ランキングlogファイルは、毎日0:00(JST)に生成を開始します。
ファイルに格納されている情報は0:00時点のものですが、実際にアクセスできるようになるまでしばらく(15分ほど)かかることがあります。
注意事項
- 日時データおよび本ガイドに記載されている日時は、すべて日本標準時(JST)です。
- 本データファイルは、広く利用していただくため、アクセスできるユーザーに制限を設けていません。
そのため、短時間に多量のアクセスを行った場合、正常にlogファイルにアクセスできなくなることがあります。
また、場合によっては本データの提供を中止させていただくこともあります。ご利用の際は、負荷へのご配慮をお願いいたします。
技術情報
エンドポイント
ランキング過去ログファイルの取得用エンドポイント
ランキング過去ログファイルを取得するには、以下の形でURLにアクセスします。
https://example.com/path/to/old-ranking/{取得するランキングの種類}/{取得したい日付}/{ログファイルの種類}
※ example.com
は例示用のサンプルです。正しいFQDNは、ランキングリリースと同時に公開されます。
取得するランキングの種類
daily
, weekly
, monthly
, total
の4種類。
取得するランキングの種類 | 説明 |
---|---|
daily | 集計期間がデイリーのランキングを取得する場合に指定 |
weekly | 集計期間が週間のランキングを取得する場合に指定 |
monthly | 集計期間が月刊のランキングを取得する場合に指定 |
total | 集計期間が全期間のランキングを取得する場合に指定 |
取得したい日付
yyyy-mm-dd形式で表記。
例: 2019年6月30日の場合、 2019-06-30
と指定する。
ただし、ランキングの種類に応じて、以下の制約がある。
取得するランキングの種類 | 制約 |
---|---|
daily | 2019-06-11 以降、任意の日付を指定可能 |
weekly | 2019-06-17 以降、毎週月曜日のみ指定可能 |
monthly | 2019-07-01 以降、毎月1日(初日)のみ指定可能 |
total | 2019-06-11 以降、任意の日付を指定可能 |
ログファイルの種類
ジャンルランキングでは、ランキング集計対象である「ジャンル」と「代表的なタグ」が、将来的に変更される可能性があります。
そこで、ランキング自体のファイルとは別に、「任意の日付において集計対象であった、ジャンルと代表的なタグの一覧」を取得することができます。
ログファイルの種類 | 説明 | ファイル名の例 |
---|---|---|
file_name_list.json | その日に集計対象だったジャンルとタグの一覧が記載されているファイル | file_name_list.json のみ |
{ジャンル}.json | ジャンルのランキングが記載されているファイル | entertainment.json や cooking.json など |
{ジャンル}_{01から始まる連番}.json | ジャンル別の、代表的なタグのランキングが記載されているファイル | entertainment_01.json や entertainment_02.json など |
アクセス例
例1. 2019年6月18日 の、 全ジャンル総合 の デイリーランキング を取得したい
- まず、該当の日に存在したジャンル名一覧を取得する。
- https://example.com/path/to/old-ranking/daily/2019-06-18/file_name_list.json
- 「全ジャンル」のファイルパスを探し、それをもとに全ジャンルのデイリーランキングにアクセスする。
- https://example.com/path/to/old-ranking/daily/2019-06-18/all.json
例2. 2019年6月17日(月曜)から2019年6月23日(日曜)まで の、 動物 の ウィークリーランキング を取得したい
- 2019年6月17日(月曜)から2019年6月23日(日曜)までの週間ランキングは、その翌日である2019年6月24日(月曜)に生成される。
- まず、該当の日に存在したジャンル名一覧を取得する。
- https://example.com/path/to/old-ranking/weekly/2019-06-24/file_name_list.json
- 「動物」のファイルパスを探し、それをもとに動物ジャンルのデイリーランキングにアクセスする。
- https://example.com/path/to/old-ranking/weekly/2019-06-24/animal.json
ログファイルのデータフォーマット
file_name_list.json
「ジャンル」と、「ジャンルごとの代表的なタグ」の一覧ファイル(file_name_list.json)のフォーマットは以下の通りです。
フィールド名 | 説明 | 型 | 必ず値が入っているか | 例 |
---|---|---|---|---|
genre | ジャンル名 | string | YES | 全ジャンル や エンターテイメント など |
tag | 代表的なタグ名 | string または null | NO | 歌ってみた や もっと評価されるべき など代表的なタグではなく、ジャンル名そのものを示すときはnullが入る |
file | ファイルへのパス | string | YES | entertainment_01.json など |
{ジャンル}.json および {ジャンル}_{01から始まる連番}.json
ランキング過去ログファイル({ジャンル}.json や {ジャンル}_{01から始まる連番}.json)のフォーマットは以下の通りです。
フィールド名 | 説明 | 型 | 必ず値が入っているか | 例 |
---|---|---|---|---|
id | 動画ID | string | YES | sm9 |
title | 動画タイトル | string | YES | 新・豪血寺一族 -煩悩解放 - レッツゴー!陰陽師 |
registeredAt | 投稿日時 | string(ISO-8601形式) | YES | 2007-03-06T00:33:00+09:00 |
count | 再生数・コメント数などが格納されたハッシュ | object | (N/A) | (N/A) |
cout.view | 再生数 | int | YES | 4822564 |
count.comment | マイリスト数 | int | YES | 176308 |
thumbnail | サムネイルURLが格納されたハッシュ | object | (N/A) | (N/A) |
thumbnail.url | 通常サイズのサムネイルURL | string | YES | http://tn.smilevideo.jp/smile?i=9 |
thumbnail.middleUrl | 中サイズのサムネイル URL | string または null | NO | null(存在しないこともあります) |
thumbnail.largeUrl | 大サイズのサムネイル URL | string または null | NO | null(存在しないこともあります) |
ファイルサンプル
以下のファイルはデータフォーマットの参考用であり、実際のランキングデータとは異なります。
「ジャンル」と、「ジャンルごとの代表的なタグ」の一覧ファイルのサンプル
サンプル用 file_name_list.json
ランキング過去ログファイル のサンプル
サンプル用 entertainment.json
サンプル用 entertainment_01.json
FAQ
Q1. 取得できるランキング過去ログファイルには、順位の数値が含まれていません。なぜですか?
視聴環境ごとにランキング順位が異なる可能性があるため、ランキングのスコアの並び順だけを提供しています。
スマートフォンなどの一部環境では、プラットフォームの規約上、ユーザーさんに閲覧していただくことができない動画が存在します。
そういった環境では、表示できない動画のぶんを詰めて、ランキング順位を表示しています。
つまり、「PC版動画ランキングのデイリー総合1位」と「スマートフォンブラウザ版動画ランキングのデイリー総合1位」「Nintendo Switch版動画ランキングのデイリー総合1位」がすべて違う動画である可能性もあるのです。
そういった背景から、ランキング過去ログファイルに順位の数値を含めることは適切ではないと考えています。
なお、過去ログファイル内の動画の並び順はランキングスコアに基づいています(順不同ではありません)。
Q2. 代表的なタグごとのランキングのファイル名は、なぜ連番なのですか? タグ名のほうが分かりやすいのですが。
代表的なタグの名前にはURLとして表現できない・紛らわしい文字が採用される可能性があるため、連番の数値にさせていただきました。
Q3. 代表的なタグごとのランキングのファイルのURLは、ずっと同じURLですか?
いいえ。{ジャンル}_{01から始まる連番}.json
の連番は、代表的なタグの人気順に割り振られます。代表的なタグごとにURLが固定されているわけではありません。
たとえば、ある日に「バーチャル」が entertainment_01.json
だったとしても、その後もずっと「バーチャル」タグのランキングが entertainment_01.json
で生成されるとは限りません。