2018年以降の記事はGitHub Pagesに移行しました

ニコレポの仕様が変わったので一覧情報の取得方法を調査した

あらすじ

ニコレポの情報を http://www.nicovideo.jp/my/top/all?innerPage=1&mode=next_page から取得していたが、仕様変更によりこのパラメータが無効?になっていた。

ので、またニコレポを取得できるように色々調査。

調査ログ

  • http://www.nicovideo.jp/my/top/allGoogle Chromeデベロッパーツールを開いた状態でアクセスしてみる
  • nicorepo.js 内でfetch http://www.nicovideo.jp/api/nicorepo/timeline/my/all?client_app=pc_myrepo&_=1234567890123 している?
    • 上記に直接アクセスしてみる
    • パラメータは固定?( _ はユーザー毎に固定?)
  • 以下のようなレスポンスが返ってくる
{
  "meta": {
    "status": 200,
    "maxId": "1499861535479-b3ec9...",
    "minId": "1499754804677-da9ff...",
    "impressionId": "c218734f-bff7-497f-b41c-48071c013111",
    "clientAppGroup": "nicorepo",
    "_limit": 25
  },
  "data": [
    {
      "id": "1499861535479-b3ec9...",
      (略)
      "video": {
        "id": "so31557548",
        "status": "PUBLIC",
        "thumbnailUrl": {
          "normal": "http://tn-skr1.smilevideo.jp/smile?i=31557548"
        },
        "title": "洲崎西 第211回放送(2017.07.11)",
        "videoWatchPageId": "1499858531"
        }
    },
    (略)
    {
      "id": "1499754804677-da9ff...",
      (略)
    },
   ],
  "errors": [],
  "status": "ok"
}
  • data.video が動画情報っぽい
  • 取得件数は _limit で変えられるような気がする
    • が、色々パラメータを付加してみたが25から変わらなかったので別の方法を考える
  • ニコレポページの「さらに読み込む」を選択してみる
    • 新たに http://www.nicovideo.jp/api/nicorepo/timeline/my/all?cursor=1499754804677-da9ff...&client_app=pc_myrepo&_=1234567890123 からニコレポの続きを取得された
    • cursor1499754804677-da9ff... は最初に取得したニコレポ一覧の最後尾の動画の data.id と一致した
    • そして、最後尾の動画の data.idmeta.minid と一致した
  • 以下を繰り返せばニコレポを取得できた
    • http://www.nicovideo.jp/api/nicorepo/timeline/my/all?client_app=pc_myrepo&_=1234567890123 を取得
    • 上記の meta.minidcursor パラメータとして付加する