新ランキングでのランキング過去ログファイル利用方法

はじめに

ニコニコ動画では、過去にどのような動画がランキングに掲載されていたかが分かる機能を提供しています。

これまではプレミアム会員専用機能として、ブラウザ上で過去のランキングを閲覧できる機能を提供してまいりましたが、
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.jsoncooking.json など
{ジャンル}_{01から始まる連番}.json ジャンル別の、代表的なタグのランキングが記載されているファイル entertainment_01.jsonentertainment_02.json など

アクセス例

例1. 2019年6月18日 の、 全ジャンル総合デイリーランキング を取得したい

例2. 2019年6月17日(月曜)から2019年6月23日(日曜)まで の、 動物ウィークリーランキング を取得したい

ログファイルのデータフォーマット

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 で生成されるとは限りません。