# 评分齐全的电影 API，兼容 TMDB 和 OMDb

> amodb 是付费的电影与剧集 API，沿用 TMDB v3 和 OMDb 的路径与 JSON，更换基础 URL 后代码照常运行。一个密钥提供 IMDb、Rotten Tomatoes、Metacritic 和 Kinopoisk 评分，套餐均支持商用。

## 既然 TMDB 免费，为什么还要为电影 API 付费？

TMDB 在你的应用赚到第一美元之前都是免费的。此后 TMDB 会要求你购买商业套餐，对收入低于 $1M 的公司是每月 $149。TMDB 也没有 IMDb、Rotten Tomatoes 或 Metacritic 评分，而常用的第二个 API OMDb 只授权用于非商业用途。amodb 用一个密钥同时提供两种格式，并支持商用，每月 US$3.11 起。

| 功能                                   | TMDB              | OMDb  | amodb                 |
| ------------------------------------ | ----------------- | ----- | --------------------- |
| 应用开始盈利后的价格                           | 收入低于 $1M 时每月 $149 | 非商业条款 | 每月 US$3.11 起          |
| TMDB v3 路径和 JSON                     | 是                 | 否     | 是                     |
| OMDb 参数和字段                           | 否                 | 是     | 是                     |
| IMDb、Rotten Tomatoes 和 Metacritic 评分 | 否，只有 TMDB 评分      | 是     | 是，另有 Kinopoisk 和 TMDB |
| 情绪指数、原声配乐和放映场次                       | 否                 | 否     | 是                     |
| 界面上无需显示 logo 或声明                     | 否，必须显示 logo 和声明   | 没有说明  | 是                     |
| 一个密钥通用两种格式                           | 否                 | 否     | 是                     |

来源：[TMDB API 条款](https://www.themoviedb.org/api-terms-of-use)，TMDB 工作人员关于[商业定价](https://www.themoviedb.org/talk/69cbf4f91b914f0e9542a772)和[应用何时算商业用途](https://www.themoviedb.org/talk/6ac5579ae24d7a00344571d5)的回答，以及 [OMDb 法律页面](https://www.omdbapi.com/legal.htm)，查阅于 2026 年 10 月。

## 更换基础 URL，代码保持不变

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

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

```bash
curl "https://api.amodb.dev/3/movie/550?language=en-US" \
  -H "Authorization: Bearer $AMODB_KEY"
```

```js
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);
```

```python
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"
}
```

## 一个密钥，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":"..."}`。

```bash
curl "https://api.amodb.dev/omdb/?i=tt0137523&plot=short&apikey=$AMODB_KEY"
```

```js
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);
```

```python
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"
}
```

## TMDB v3 没有的数据

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

- **情绪指数**: 恐惧、幽默、悲伤、暴力等指标，按 0 到 10 打分，只需多调用一次。
- **一次调用获取评分**: IMDb、TMDB 和另外三个来源的评分及投票数，来自同一个接口。
- **看得见的速率限制**: 每个响应都会告诉你这一分钟还剩多少请求。
- **一个 ID，14 种语言**: 同一部电影，amodb 提供的每种语言都有。未知的标签会回退到英语。
- **TMDB 的每种图片尺寸**: 从 w92 缩略图到 img.amodb.dev 上的原图，无需密钥。
- **按任意外部 ID 查找**: 传入 IMDb ID 或其他外部 ID，返回对应的 TMDB 记录。
- **影院放映场次**: 已知时，按国家提供在映影片的放映场次。
- **原声配乐**: 电影或剧集中使用的歌曲，使用同一个基础 URL。

## 14 种语言的片名与简介

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

| Code | Language   | Native name | Example tag |
| ---- | ---------- | ----------- | ----------- |
| `en` | English    | English     | `en-US`     |
| `ru` | Russian    | Русский     | `ru-RU`     |
| `uk` | Ukrainian  | Українська  | `uk-UA`     |
| `be` | Belarusian | Беларуская  | `be-BY`     |
| `zh` | Chinese    | 中文          | `zh-CN`     |
| `pt` | Portuguese | Português   | `pt-BR`     |
| `bg` | Bulgarian  | Български   | `bg-BG`     |
| `he` | Hebrew     | עברית       | `he-IL`     |
| `cs` | Czech      | Čeština     | `cs-CZ`     |
| `ro` | Romanian   | Română      | `ro-RO`     |
| `fr` | French     | Français    | `fr-FR`     |
| `pl` | Polish     | Polski      | `pl-PL`     |
| `it` | Italian    | Italiano    | `it-IT`     |
| `es` | Spanish    | Español     | `es-ES`     |

## 个人项目和商业项目都适用

周末小项目和付费产品调用同一个 API，得到同样的数据，适用同样的[服务条款](https://amodb.dev/zh/terms/)。下面是团队用它构建的东西。

- **流媒体和片单应用：** 海报、预告片、各季和各集，另有五种评分，可用于排序和筛选。
- **Telegram 和 Discord 机器人：** 按片名或 IMDb ID 做 OMDb 风格的查询，一次调用就返回现成的答案。
- **媒体服务器和插件：** 已经支持 TMDB v3 的元数据抓取器保留原有客户端，并新增 IMDb 和 Rotten Tomatoes 评分。
- **电影网站和博客：** 14 种语言的片名和简介，让每个市场都有自己的页面。
- **推荐引擎：** 情绪指数按 0 到 10 给恐惧、幽默、暴力等打分，这些信号只看类型是得不到的。
- **AI 智能体和聊天机器人：** 用真实的评分、情绪、演员和放映场次回答“今晚看什么”。

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

每个套餐的数据都相同：TMDB 和 OMDb 接口、14 种语言、图片和扩展。Pro+ 还提供 `/3/all`，一次请求即可获取一部电影、剧集或一位人物的全部信息。你一次性支付 1、3、6、12或24 个月，周期越长，每月越便宜。没有免费套餐，也不会自动续费。

| 功能         | Lite     | Pro      | Pro+      |
| ---------- | -------- | -------- | --------- |
| 每分钟请求数     | 20       | 40       | 120       |
| 满速率下每天的请求数 | 28,800   | 57,600   | 172,800   |
| 1 个月的价格    | US$5.19  | US$6.19  | US$7.19   |
| 3 个月的价格    | US$14.01 | US$16.71 | US$19.41  |
| 6 个月的价格    | US$24.91 | US$29.71 | US$34.51  |
| 12 个月的价格   | US$43.60 | US$52.00 | US$60.40  |
| 24 个月的价格   | US$74.74 | US$89.14 | US$103.54 |

## 为生产流量而建

热门列表缓存 30 分钟，详情缓存 6 小时，`configuration` 缓存 24 小时。
每个响应都带有 `X-RateLimit-Limit`、`X-RateLimit-Remaining` 和 `X-RateLimit-Reset`。429 响应还会附带 `Retry-After`。
错误会返回 `success`、`status_code` 和 `status_message`，现有的错误处理无需改动。
海报和背景图从 `img.amodb.dev/t/p/{size}/{file}` 加载，提供 TMDB 的全部尺寸，缓存 30 天。

## 常见问题

### TMDB API 可以免费商用吗？

不可以。只要项目没有收入，TMDB 密钥就是免费的。TMDB 工作人员表示，来自广告、应用内购买、捐赠或订阅的任何收入，都会使应用被视为商业用途；商业套餐的价格是每月 $149，适用于收入低于 $1M 的公司。amodb 的每个套餐都支持商用。

### TMDB API 要多少钱？

非商业用途免费。对于商业应用，TMDB 工作人员给出的价格是：年收入低于 $1M 时每月 $149，超出后为定制价格。amodb 的套餐每月只要几美元，区别主要在每分钟请求数。

### TMDB API 免费，为什么还要为 amodb 付费？

因为产生收入的应用在 TMDB 上并不免费。amodb 的价格只是 TMDB 的 $149 商业套餐的一小部分，不要求在你的界面上显示 logo，并且在同一个响应里返回 IMDb、Rotten Tomatoes、Metacritic 和 Kinopoisk 评分。一个密钥同时支持 TMDB v3 和 OMDb 两种格式，所以你只需运行一个 API，而不是两个。

### OMDb 可以免费商用吗？

OMDb 的法律页面将该服务描述为仅限个人、非商业用途，并以 CC BY-NC 4.0 授权其内容。amodb 支持相同的 OMDb 参数，返回相同的字段名，并支持商用。

### 需要修改现有的 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 只提供预付。你选择套餐和周期，通过银行卡、Apple Pay、Google Pay、加密货币或 Patreon 一次性付款，密钥在周期结束前一直有效，不会自动续费。

### 套餐之间有什么区别？

区别在于请求速率：每分钟 20、40 或 120 次请求。每个套餐的数据都相同，都包含 14 种语言、图片、评分和 amodb 的其他扩展。Pro+ 还提供 /3/all，一次请求即可获取一部电影、剧集或一位人物的全部信息。

### 支持哪些语言？

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

## 相关页面

- [快速开始](https://amodb.dev/zh/quickstart/): 发出第一次 amodb 调用：获取密钥，用 curl、JavaScript、Python、PHP 或 Go 请求电影详情，再加载海报。
- [定价](https://amodb.dev/zh/pricing/): amodb 套餐的区别只在每分钟请求数：20、40 或 120。所有套餐都包含全部兼容 TMDB v3 和 OMDb 的数据。预付，不续费，无试用。
- [amodb 与 TMDB 对比](https://amodb.dev/zh/amodb-vs-tmdb/): amodb 与 TMDB 正面对比：接口兼容程度、amodb 未提供的路径、免费与付费条款、14 种语言、扩展功能和速率限制。
- [TMDB API 替代方案](https://amodb.dev/zh/tmdb-api-alternative/): 在找 TMDB API 替代方案？对比条款、限制、语言和评分，再迁移到保留大多数 TMDB v3 读取路径和 JSON 的付费 API，并了解缺口。

更新于: 2026-10-19. Source: https://amodb.dev/zh/
