电影与电视剧元数据 API

电影与剧集数据,兼容 TMDB 和 OMDb

路径和 JSON 与 TMDB v3 和 OMDb 相同。更换基础 URL,代码不用改。

BASE_URL
  • https://api.themoviedb.org/3
  • https://api.amodb.dev/3
  • https://www.omdbapi.com/
  • https://api.amodb.dev/omdb/

GEThttps://api.amodb.dev/3/movie/550?language=en-US

200 OKapplication/json1.7 kB实时响应

{  "id": 550,  "imdb_id": "tt0137523",  "title": "Fight Club",  "tagline": "Mischief. Mayhem. Soap.",  "release_date": "1999-10-15",  "runtime": 139,  "status": "Released",  "genres": [{ "id": 18, "name": "Drama" }, { "id": 53, "name": "Thriller" }],  "origin_country": ["US", "DE"],  "original_language": "en",  "budget": 63000000,  "revenue": 101209702,  "vote_average": 8.437,  "vote_count": 33042,  "popularity": 39.0054,  "poster_path": "/jSziioSwPVrOy9Yow3XhWIBDjq1.jpg",  "backdrop_path": "/b9HyPoxwxjxkWEUL5ErZdhApQe2.jpg"}

amodb 是付费的电影与剧集元数据 API,沿用 TMDB v3 和 OMDb 的路径、参数和 JSON,现有客户端只需更换基础 URL。一个密钥通用两种风格,支持 14 种语言,海报在 img.amodb.dev。各套餐数据相同,区别只在每分钟请求数。

01 · /3/movie/550

更换基础 URL,代码保持不变

amodb 使用与 TMDB v3 相同的路径。请求电影 550 会返回客户端已在解析的相同 JSON 字段:id、title、genres、release_date、poster_path 等。

  1. 获取密钥

    选择套餐,在账户页面复制密钥。

    Authorization: Bearer $AMODB_KEY
  2. 更换基础 URL

    把 TMDB 或 OMDb 客户端指向 api.amodb.dev。

    api.themoviedb.orgapi.amodb.dev
  3. 直接上线

    返回的 JSON 完全相同,解析代码无需改动。

    200 OKapplication/json

在查询中以 api_key 传入密钥,或使用 Authorization: Bearer 请求头。两种方式在每个接口上都可用。

bashjspy
curl "https://api.amodb.dev/3/movie/550?language=en-US" \
  -H "Authorization: Bearer $AMODB_KEY"
const res = await fetch("https://api.amodb.dev/3/movie/550?language=en-US", {
  headers: { Authorization: `Bearer ${process.env.AMODB_KEY}` },
});
const movie = await res.json();
console.log(movie.title, movie.release_date);
import os
import requests

res = requests.get(
    "https://api.amodb.dev/3/movie/550",
    params={"language": "en-US"},
    headers={"Authorization": f"Bearer {os.environ['AMODB_KEY']}"},
    timeout=10,
)
movie = res.json()
print(movie["title"], movie["release_date"])
JSON
{
  "id": 550,
  "imdb_id": "tt0137523",
  "title": "Fight Club",
  "release_date": "1999-10-15",
  "runtime": 139,
  "genres": [{ "id": 18, "name": "Drama" }],
  "vote_average": 8.4,
  "poster_path": "/pB8BM7pdSp6B6Ih7QZ4DrQ3PmJK.jpg"
}

02 · /omdb/?i=tt0137523

一个密钥,OMDb 风格查询

兼容 OMDb 的接口位于 https://api.amodb.dev/omdb/。它接受 i、t、s、type、y、plot 和 page,并返回 Title、Year、imdbRating、Ratings 等 OMDb 字段。

Poster 字段指向 img.amodb.dev,因此海报由同一服务加载。错误保持 OMDb 的格式:{"Response":"False","Error":"..."}。

bashjspy
curl "https://api.amodb.dev/omdb/?i=tt0137523&plot=short&apikey=$AMODB_KEY"
const url = new URL("https://api.amodb.dev/omdb/");
url.searchParams.set("t", "Fight Club");
url.searchParams.set("y", "1999");
url.searchParams.set("apikey", process.env.AMODB_KEY);

const film = await (await fetch(url)).json();
console.log(film.Title, film.imdbRating);
import os
import requests

film = requests.get(
    "https://api.amodb.dev/omdb/",
    params={"i": "tt0137523", "apikey": os.environ["AMODB_KEY"]},
    timeout=10,
).json()
print(film["Title"], film["imdbRating"])
JSON
{
  "Title": "Fight Club",
  "Year": "1999",
  "Runtime": "139 min",
  "Director": "David Fincher",
  "imdbRating": "8.8",
  "imdbID": "tt0137523",
  "Poster": "https://img.amodb.dev/t/p/w300/pB8BM7pdSp6B6Ih7QZ4DrQ3PmJK.jpg",
  "Response": "True"
}

03 · append_to_response

TMDB v3 没有的数据

每个密钥都可以在同一个基础 URL 上调用 amodb 扩展。用 append_to_response 附加,或单独调用。

  • 情绪指数

    恐惧、幽默、悲伤、暴力等指标,按 0 到 10 打分,只需多调用一次。

    GET /3/tv/1396/moods
  • 一次调用获取评分

    IMDb、TMDB 和另外三个来源的评分及投票数,来自同一个接口。

    GET /3/movie/550/ratings
  • 看得见的速率限制

    每个响应都会告诉你这一分钟还剩多少请求。

  • TMDB 的每种图片尺寸

    从 w92 缩略图到 img.amodb.dev 上的原图,无需密钥。

    img.amodb.dev/t/p/w500/…
  • 按任意外部 ID 查找

    传入 IMDb ID 或其他外部 ID,返回对应的 TMDB 记录。

    GET /3/find/tt0137523
  • 影院放映场次

    已知时,按国家提供在映影片的放映场次。

    GET /3/movie/550/showtimes?country=US
  • 原声配乐

    电影或剧集中使用的歌曲,使用同一个基础 URL。

    GET /3/movie/157336/soundtracks

04 · ?language=uk-UA

14 种语言的片名与简介

在 language 中传入 ru-RU 或 pt-BR 这样的 TMDB 风格标签。amodb 提供 14 种基础语言,其他标签一律回退到英语,因此请求不会因语言而失败。

语言

Spirited Away

Унесённые призраками

Віднесені привидами

Скрадзеныя прывідамі

千与千寻

A Viagem de Chihiro

Отнесени от духове

המסע המופלא

Cesta do fantazie

Călătoria lui Chihiro

Le Voyage de Chihiro

Spirited Away: W krainie Bogów

La città incantata

El viaje de Chihiro

  • en English Spirited Away
  • ru Русский Унесённые призраками
  • uk Українська Віднесені привидами
  • be Беларуская Скрадзеныя прывідамі
  • zh 中文 千与千寻
  • pt Português A Viagem de Chihiro
  • bg Български Отнесени от духове
  • he עברית המסע המופלא
  • cs Čeština Cesta do fantazie
  • ro Română Călătoria lui Chihiro
  • fr Français Le Voyage de Chihiro
  • pl Polski Spirited Away: W krainie Bogów
  • it Italiano La città incantata
  • es Español El viaje de Chihiro

05 · /plans

套餐的区别只在每分钟请求数

每个套餐都包含全部接口、14 种语言、图片和扩展。你一次性支付 1、3、6、12或24 个月,周期越长,每月越便宜。没有免费套餐,也不会自动续费。

定价

06 · X-RateLimit-Remaining

为生产流量而建

  • 共享边缘缓存

    热门列表缓存 30 分钟,详情缓存 6 小时,configuration 缓存 24 小时。

  • 清晰的速率限制

    每个响应都带有 X-RateLimit-Limit、X-RateLimit-Remaining 和 X-RateLimit-Reset。429 响应还会附带 Retry-After。

  • TMDB 风格的错误

    错误会返回 success、status_code 和 status_message,现有的错误处理无需改动。

  • 图片无需密钥

    海报和背景图从 img.amodb.dev/t/p/{size}/{file} 加载,提供 TMDB 的全部尺寸,缓存 30 天。

常见问题

需要修改现有的 TMDB 客户端代码吗?

不需要。把基础 URL 指向 https://api.amodb.dev/3,并把 amodb 密钥作为 api_key 或 Bearer 令牌传入。路径、查询参数和 JSON 字段与 TMDB v3 保持一致。

同一个密钥可以用于 OMDb 风格的调用吗?

可以。把它作为 apikey 传给 https://api.amodb.dev/omdb/。参数 i、t、s、type、y、plot 和 page 的用法与 OMDb 相同,响应使用 OMDb 的字段名。

有免费套餐或试用吗?

没有。amodb 只提供预付。你选择套餐和周期,一次性付款,密钥在周期结束前一直有效,不会自动续费。

套餐之间有什么区别?

只有请求速率:每分钟 20、40 或 120 次请求。每个套餐都包含全部接口、14 种语言、图片和 amodb 扩展。

支持哪些语言?

英语、俄语、乌克兰语、白俄罗斯语、中文、葡萄牙语、保加利亚语、希伯来语、捷克语、罗马尼亚语、法语、波兰语、意大利语和西班牙语。传入 ru-RU 这样的 TMDB 风格标签即可;其他语言会回退到英语。

从一个密钥开始

每个套餐都包含全部接口、14 种语言和图片。套餐的区别只在每分钟请求数。

$ curl https://api.amodb.dev/3/movie/550 -H "Authorization: Bearer $AMODB_KEY"