主要电影信息
学习并练习如何使用TMDB API获取电影的主要信息。
我们需要 TMDB API 密钥来访问各个端点,以了解它们的工作方式。在本节课中,我们将首先探索并练习 TMDB 的基础且重要的端点——电影端点。该端点用于获取指定 movie_id 的电影的基本信息。

电影详情
人们选择观看某部电影时,通常会参考一些基本信息,例如剧情简介、片长、评论、评分和受欢迎程度。我们可以使用 电影 端点,并通过路径参数 movie_id 获取目标电影的主要信息。
当前关注的基地址如下:
1https://api.themoviedb.org/3/movie/{movie_id}?api_key={ourTMDBapikey}
该端点所需的输入查询参数如下:
| 参数名 | 类型 | 可选性 | 描述 |
|---|---|---|---|
| language | 字符串 | 可选 | 使用 ISO_3166_1 代码指定语言,以获取对应语言的翻译数据。仅适用于支持该功能的字段。默认值为 en-US。 |
| append_to_response | 字符串 | 可选 | 用于在一个 HTTP 请求中附加多个请求,从而在同一个命名空间内获取响应。 |
电影详情方法的返回结果为 JSON 格式。下表解释了部分响应对象。如需了解完整输出中的所有对象详情,请参阅 TMDB 官方 API 文档。
| 对象 | 类型 | 可选性 | 描述 |
|---|---|---|---|
| genres | 数组[对象] | 可选 | 返回请求电影的所有主题类别,如动作、剧情等。 |
| id | 整数 | 可选 | 即我们在 GET 请求 URL 中提供的电影 ID。 |
| original_language | 字符串 | 可选 | 电影原始创作的语言。 |
| original_title | 字符串 | 可选 | 请求电影的原始标题。 |
| overview | 字符串或 null | 可选 | 请求电影的简明、无剧透且简洁的剧情概述。若无描述,则返回 null。 |
| popularity | 数字 | 可选 | 基于多种因素(如用户投票数、页面访问量)计算出的数值,反映请求电影的受欢迎程度。 |
| release_date | 字符串 | 可选 | 请求电影的正式上映日期。 |
| revenue | 整数 | 可选 | 电影获得的总收入,单位为美元(USD)。 |
| runtime | 整数或 null | 可选 | 请求电影的时长,单位为分钟。 |
| tagline | 字符串或 null | 可选 | 用于电影海报上的简短但极具吸引力的宣传语,能吸引用户注意。 |
| vote_count | 整数 | 可选 | 请求电影的总投票数。 |
下方代码模块展示了基本电影详情端点的工作方式。我们还将提供包含可选参数的示例。
在运行代码前,请填写 API_KEY 和 MOVIE_ID 的值。虽然我们可以提取并使用应用中的所有有效电影 ID,但目前建议尝试以下推荐的电影 ID:
| 电影名称 | 电影 ID |
|---|---|
| 教父 | 238 |
| 蜘蛛侠:英雄无归 | 634649 |
| 小鬼当家 | 10585 |
| 三傻大闹宝莱坞 | 20413 |
| 超能陆战队 | 177572 |
点击“编辑”并输入 API_KEY 和 MOVIE_ID 的值。别忘了保存!然后点击“运行”以获取指定 ID 电影的通用信息。
1import json 2import requests 3from pprint import pprint 4 5api_key = '{{API_KEY}}' 6 7response = requests.get("https://api.themoviedb.org/3/movie/{{MOVIE_ID}}", 8 params={'api_key':api_key}) 9 10# 格式化并打印 JSON 响应 11pprint(response.json())
使用可选输入参数
让我们尝试使用可选参数 language 和 append_to_response 运行电影详情端点。
language 参数
我们可以使用电影详情端点,并通过查询参数 language 获取特定语言的电影信息。例如,若希望以法语获取信息,可将语言值设为 fr-FR,其中 fr 是语言代码,FR 是国家代码。language 的默认值为 en-US。有关 language 参数的更多详情,可参阅 TMDB 官方 API 文档。
要运行以下代码,请复制下方代码,并替换上方可执行代码模块中的第 7–8 行。然后点击“运行”执行代码。
注意: 仅支持翻译的部分字段会在指定语言下显示输出。
1language = 'en-US' 2 3response = requests.get("https://api.themoviedb.org/3/movie/{{MOVIE_ID}}", 4 params={'api_key':api_key, 5 'language':language})
append_to_response 参数
可选查询参数 append_to_response 允许我们在单个 HTTP 请求中,在同一命名空间内发起多个子请求,而无需进行多次独立请求。这有助于避免 API 调用频率限制,并显著提升效率。每个子请求的结果都会作为新的 JSON 对象附加到主响应中。
例如,若需要同时获取电影详情、图片和视频信息,可以使用如下方式:
要运行此示例,请复制下方代码,并替换上方可执行代码模块中的第 7–8 行。然后点击“运行”执行代码。
1append_to_response = 'images,videos' 2 3response = requests.get("https://api.themoviedb.org/3/movie/{{MOVIE_ID}}", 4 params={'api_key':api_key, 5 'append_to_response':append_to_response})
该端点对开发者非常有帮助,因为它允许用户在应用程序页面直接查看电影详情,而无需跳转至外部链接或来源。