動かざることバグの如し

近づきたいよ 君の理想に

ShangriLa Anime APIで遊ぶ

ShangriLa Anime APIというAPIをこの前知った。秋葉原IT戦略研究所というところが無料で出しているらしいが、結構データが豊富で面白い。ここのサークルは以前の技術書典で本買った記憶がある。

が、ドキュメントが幾つか分散していたのでまとめメモ

共通仕様

ここで記述するAPIの共通仕様

  • すべてGETパラメータ
  • httpで書いているがhttpsでも取得可能

アニメ一覧取得

:yearは2018のような西暦が入る以下はhttp://api.moemoe.tokyo/anime/v1/master/2018 の取得例

[
  {
    "id": 673,
    "title": "探偵オペラ ミルキィホームズ アルセーヌ 華麗なる欲望"
  },
  {
    "id": 674,
    "title": "アイドリッシュセブン"
  },
  {
    "id": 675,
    "title": "宇宙よりも遠い場所"
  },
  {
    "id": 676,
    "title": "ダメプリ ANIME CARAVAN"
  },
  {
    "id": 677,
    "title": "ラーメン大好き小泉さん"
  },
  {
    "id": 678,
    "title": "ゆるキャン△"
  },
(略)

:yearのあとに1〜4の数字をつけるとクールごとに取得できる。こちらはタイトルに加えてURLやTwitterアカウントも取得できる。以下は http://api.moemoe.tokyo/anime/v1/master/2018/1 の例

[
  {
    "title_short2": "",
    "twitter_account": "milkyholmes",
    "public_url": "https://sp.bushiroad.com/special_tv/",
    "title_short1": "ミルキィホームズ",
    "sex": 0,
    "twitter_hash_tag": "milkyholmes",
    "id": 673,
    "sequel": 5,
    "created_at": "2018-01-07 20:29:38.0",
    "city_name": "",
    "cours_id": 17,
    "title": "探偵オペラ ミルキィホームズ アルセーヌ 華麗なる欲望",
    "city_code": 0,
    "title_short3": "",
    "updated_at": "2018-01-07 20:29:38.0"
  },
  {
    "title_short2": "",
    "twitter_account": "iD7Mng_Ogami",
    "public_url": "http://idolish7.com/aninana/",
    "title_short1": "アイドリッシュセブン",
    "sex": 1,
    "twitter_hash_tag": "アイナナ",
    "id": 674,
    "sequel": 0,
    "created_at": "2018-01-07 20:29:38.0",
    "city_name": "",
    "cours_id": 17,
    "title": "アイドリッシュセブン",
    "city_code": 0,
    "title_short3": "",
    "updated_at": "2018-01-07 20:29:38.0"
  },
  {
    "title_short2": "",
    "twitter_account": "yorimoi",
    "public_url": "http://yorimoi.com/",
    "title_short1": "宇宙よりも遠い場所",
    "sex": 0,
    "twitter_hash_tag": "よりもい",
    "id": 675,
    "sequel": 0,
    "created_at": "2018-01-07 20:29:38.0",
    "city_name": "",
    "cours_id": 17,
    "title": "宇宙よりも遠い場所",
    "city_code": 0,
    "title_short3": "",
    "updated_at": "2018-01-07 20:29:38.0"
  },
  {
    "title_short2": "",
    "twitter_account": "damepri_anime",
    "public_url": "https://damepri-anime.jp/",
    "title_short1": "ダメプリ",
    "sex": 1,
    "twitter_hash_tag": "ダメプリ",
    "id": 676,
    "sequel": 0,
    "created_at": "2018-01-07 20:29:38.0",
    "city_name": "",
    "cours_id": 17,
    "title": "ダメプリ ANIME CARAVAN",
    "city_code": 0,
    "title_short3": "",
    "updated_at": "2018-01-07 20:29:38.0"
  },
  {
    "title_short2": "小泉さん",
    "twitter_account": "ramen_koizumi",
    "public_url": "http://ramen-koizumi.com/",
    "title_short1": "ラーメン大好き小泉さん",
    "sex": 0,
    "twitter_hash_tag": "ラーメン大好き小泉さん",
    "id": 677,
    "sequel": 0,
    "created_at": "2018-01-07 20:29:38.0",
    "city_name": "",
    "cours_id": 17,
    "title": "ラーメン大好き小泉さん",
    "city_code": 0,
    "title_short3": "",
    "updated_at": "2018-01-07 20:29:38.0"
  },
  {
    "title_short2": "",
    "twitter_account": "yurucamp_anime",
    "public_url": "http://yurucamp.jp/",
    "title_short1": "ゆるキャン△",
    "sex": 0,
    "twitter_hash_tag": "ゆるキャン",
    "id": 678,
    "sequel": 0,
    "created_at": "2018-01-07 20:29:38.0",
    "city_name": "",
    "cours_id": 17,
    "title": "ゆるキャン△",
    "city_code": 0,
    "title_short3": "",
    "updated_at": "2018-01-07 20:29:38.0"
  },
Property Value Required description Sample
id Number APIで管理するアニメ作品に割り当てられているユニークなID 125
title String アニメ作品名 "冴えない彼女の育てかた"
title_short1 String - アニメ作品名の略称1 "冴えカノ"
title_short2 String - アニメ作品名の略称2
title_short3 String - アニメ作品名の略称3
public_url String アニメ作品の公式URL "http://www.saenai.tv/"
twitter_account String ツイッターアカウント "saenai_heroine"
twitter_hash_tag String ツイッターハッシュタグ "saekano"
cours_id Number coursマスターのID 5
created_at String データの作成日時 "2015-01-08 09:37:01.0"
updated_at String データの更新日時 "2015-01-08 09:37:01.0"
sex Number - 男性向け=0, 女性向け=1 0
sequel Number - 続編モノの場合は1以上の数値が入る 0

Twitterフォロワー数取得

取得したいTwitterのアカウントのスクリーンネーム(@以降のやつ)をaccountsパラメータで渡す。カンマ区切りで渡すと複数アカウントを一括で取得できる。以下は https://api.moemoe.tokyo/anime/v1/twitter/follower/status?accounts=usagi_anime,kinmosa_anime,nganime の取得例

// 20180503221210
// https://api.moemoe.tokyo/anime/v1/twitter/follower/status?accounts=usagi_anime,kinmosa_anime,nganime

{
  "kinmosa_anime": {
    "follower": 97431,
    "updated_at": 1525274645
  },
  "usagi_anime": {
    "follower": 305795,
    "updated_at": 1525275187
  },
  "nganime": {
    "follower": 138999,
    "updated_at": 1525278006
  }
}

Twitterフォロワー数推移取得

:screen_nameにはTwitterのアカウント名が入る。こちらは複数不可

http://api.moemoe.tokyo/anime/v1/twitter/follower/history/daily?account=usagi_anime&days=30 のようにdaysをつけると取得にっすが増える。が最大39日前までっぽい。デフォルト7。

// 20180503222117
// http://api.moemoe.tokyo/anime/v1/twitter/follower/history/daily?account=usagi_anime&days=10

[
  {
    "follower": 305549,
    "updated_at": 1524417182,
    "yyyy-mm-dd": "2018-04-23"
  },
  {
    "follower": 305605,
    "updated_at": 1524503582,
    "yyyy-mm-dd": "2018-04-24"
  },
  {
    "follower": 305680,
    "updated_at": 1524589982,
    "yyyy-mm-dd": "2018-04-25"
  },
  {
    "follower": 305697,
    "updated_at": 1524676382,
    "yyyy-mm-dd": "2018-04-26"
  },
  {
    "follower": 305701,
    "updated_at": 1524762782,
    "yyyy-mm-dd": "2018-04-27"
  },
  {
    "follower": 305729,
    "updated_at": 1524849183,
    "yyyy-mm-dd": "2018-04-28"
  },
  {
    "follower": 305779,
    "updated_at": 1524935583,
    "yyyy-mm-dd": "2018-04-29"
  },
  {
    "follower": 305796,
    "updated_at": 1525021982,
    "yyyy-mm-dd": "2018-04-30"
  },
  {
    "follower": 305843,
    "updated_at": 1525108382,
    "yyyy-mm-dd": "2018-05-01"
  },
  {
    "follower": 305806,
    "updated_at": 1525194782,
    "yyyy-mm-dd": "2018-05-02"
  }
]