用类型 16 和原始语言 ja 查找动漫

amodb 没有单独的动漫接口。动漫是对 GET /3/discover/tv 和 GET /3/discover/movie 的筛选:with_genres=16(动画)加上 with_original_language=ja。再加上 anime 关键词的 ID(用 GET /3/search/keyword 查询),就只保留被标记为动漫的作品。

需要坦率说明一个限制:日语不属于 amodb 提供的 14 种界面语言。片名和简介会以你请求的语言返回,或使用英语。日文片名保留在剧集的 original_name 和电影的 original_title 中。

你会得到:

  • 来自同一组 discover 筛选的动漫剧集和动漫电影。
  • 原始日文片名与本地化片名并列。
  • 你选中的每部剧集的季和集列表。
  • 来自 https://img.amodb.dev/t/p/{size}/{file} 的海报和背景图。

可获取的数据

你需要调用或字段说明
动漫剧集GET /3/discover/tv,带 with_genres=16 和 with_original_language=jaresults 中包含 name、original_name、first_air_date、genre_ids
动漫电影GET /3/discover/movie,使用相同的两个筛选title、original_title、release_date
anime 关键词 IDGET /3/search/keyword?query=animeresults 数组,包含 id 和 name
剧集列表GET /3/tv/{series_id}/season/{season_number}每季一次调用
日文片名original_name 或 original_title原始文字,按存储内容返回
海报poster_path拼接到图片主机,无需密钥

三步开始

  1. 在定价页选择套餐。每个套餐的数据相同,只有速率不同:每分钟 20、40 或 120 个请求。
  2. 在账户后台创建密钥。
  3. 先查一次关键词 ID,再用它和这两个筛选调用 discover。

请求示例

这段 Python 脚本先找到 anime 关键词 ID,再列出带有该关键词的最热门日本动画剧集。下面的 curl 调用不使用关键词,而是按日期窗口列出单个播出季。

bashpy
curl -s "https://api.amodb.dev/3/discover/tv?with_genres=16&with_original_language=ja&first_air_date.gte=2026-10-01&first_air_date.lte=2026-12-31&sort_by=popularity.desc" \
  -H "Authorization: Bearer $AMODB_KEY"
import os
import requests

BASE = "https://api.amodb.dev/3"
session = requests.Session()
session.headers["Authorization"] = f"Bearer {os.environ['AMODB_KEY']}"


def get(path, **params):
    r = session.get(BASE + path, params=params, timeout=10)
    r.raise_for_status()
    return r.json()


keywords = get("/search/keyword", query="anime")["results"]
anime_id = next((k["id"] for k in keywords if k["name"].lower() == "anime"), None)
if anime_id is None:
    raise SystemExit("anime keyword not found")

page = get(
    "/discover/tv",
    with_genres=16,
    with_original_language="ja",
    with_keywords=anime_id,
    sort_by="popularity.desc",
    language="en-US",
    page=1,
)
for show in page["results"]:
    print(show.get("first_air_date"), show["name"], "/", show["original_name"])

上面 Python 调用的精简响应:第 1 页 19 条结果中的 2 条,数组缩减为 2 项。

JSON
{
  "page": 1,
  "results": [
    {
      "adult": false,
      "backdrop_path": "/dmptwhmqxcMrCKgyvBlTt18PgDu.jpg",
      "first_air_date": "2005-04-22",
      "genre_ids": [
        10759,
        16
      ],
      "id": 65733,
      "name": "Doraemon",
      "origin_country": [
        "JP"
      ],
      "original_language": "ja",
      "original_name": "ドラえもん",
      "overview": "Robotic cat Doraemon is sent back in time from the 22nd century to protect 10-year-old...",
      "popularity": 301.2214,
      "poster_path": "/9ZN1P32SHviL3SV51qLivxycvcx.jpg",
      "vote_average": 8.089,
      "vote_count": 252
    },
    {
      "adult": false,
      "backdrop_path": "/mFKys64gbDQrFqwUheGwXQwo2JK.jpg",
      "first_air_date": "2004-10-05",
      "genre_ids": [
        10759,
        16
      ],
      "id": 30984,
      "name": "Bleach",
      "origin_country": [
        "JP"
      ],
      "original_language": "ja",
      "original_name": "BLEACH",
      "overview": "For as long as he can remember, Ichigo Kurosaki has been able to see ghosts. But when h...",
      "popularity": 190.3257,
      "poster_path": "/2EewmxXe72ogD0EaWM8gqa0ccIw.jpg",
      "vote_average": 8.4,
      "vote_count": 2295
    }
  ],
  "total_pages": 216,
  "total_results": 4302
}

影响动漫列表的筛选

筛选取值效果
with_genres16动画。逗号表示 AND,因此 16,35 是动画加喜剧。
without_genres类型 ID排除带有该类型的作品。
with_original_languageja仅限日语原版。
with_keywords关键词 ID仅限带有该关键词标记的作品。没有标记的作品会被漏掉。
first_air_date.gte、first_air_date.lteYYYY-MM-DD剧集的播出时间窗口。电影使用 primary_release_date.gte 和 .lte。
sort_bypopularity.desc、vote_average.desc、first_air_date.desc排序。把 vote_average.desc 与 vote_count.gte 搭配使用,避免样本极少的作品排在最前。
page1 到 500每页最多 20 条结果。

关键词标记并不完整。如果列表看起来偏短,请去掉 with_keywords,只保留类型和语言筛选来扩大范围。完整的筛选列表见发现,关键词 ID 的说明见关键词。

动漫电影和长篇剧集

电影接口使用同样的两个筛选。这个调用列出评分较高的日本动画电影,vote_count.gte 用来排除只有寥寥几票的作品。

curl
curl -s "https://api.amodb.dev/3/discover/movie?with_genres=16&with_original_language=ja&sort_by=vote_average.desc&vote_count.gte=200" \
  -H "Authorization: Bearer $AMODB_KEY"

每条结果都有 title、original_title、release_date 和 poster_path。长期连载的剧集在目录中常被拆成多个季。GET /3/tv/{series_id}/episode_groups 会在已知时列出其他排序方式及名称和集数,但 amodb 不提供分组本身,剧集上的 number_of_episodes 给出总集数。季的调用见电视剧 API。

片名与语言

动漫是原始片名最重要的场景,所以请同时保留两个字段。

字段内容用途
name你请求的语言的片名界面中的主标签
original_name原始语言的片名,日语原版为日文文字次要标签,对了解日文片名的粉丝有用
original_languageja混用多个数据源时在你这边筛选
overview本地化文本,没有译文时为空为空时用 language=en-US 重新请求

GET /3/tv/{series_id}/alternative_titles 会在已知时按国家列出其他片名。14 种提供的语言见语言页。

对比

能力抓取粉丝网站仅动漫的数据库 APIamodb
范围网站覆盖什么就是什么仅限动漫,深度请查阅文档一个目录包含电影和电视剧,用筛选选出动漫
动漫筛选网站分类请查阅文档类型 16、with_original_language=ja、anime 关键词
原始语言片名各不相同请查阅文档original_name 和 original_title
剧集列表从页面解析请查阅文档带 episodes 数组的季调用
日语界面语言取决于网站请查阅文档不提供,只有原始片名
访问条款各网站自己的条款免费和付费层各不相同付费,预付,无免费额度

定价

动漫列表只需几次 discover 调用,而 discover 结果在边缘缓存 30 分钟,所以对许多应用来说每分钟 20 个请求就够了。套餐为每分钟 20、40 或 120 个请求,数据相同。可预付 1、3、6、12 或 24 个月,分别享受 0、10、20、30 和 40% 的折扣,不会自动续费。没有免费额度。请在定价页选择套餐。