主要电视剧详情
学习并练习如何使用TMDB API获取主要电视剧的详细信息。
本课程聚焦于 TMDB 的接口,用于通过 ID 获取电视剧、季和集的关键信息。
电视剧详情
电视剧的主要信息有助于用户决定是否观看某部剧集。TMDB 允许我们通过其 TMDB ID 获取一部电视剧的所有主要信息。该方法接收 tv_id 作为参数,并返回包含所有核心信息的单一 JSON 响应。这一功能对开发者非常有帮助,是任何媒体应用的基础功能。
我们可以通过 TMDB 的 电视剧详情 接口,使用整数路径参数 tv_id 获取电视剧的关键信息。
当前关注的基地址如下:
1https://api.themoviedb.org/3/tv/{tv_id}?api_key={yourTMDBapikey}
此接口所需的查询参数如下:
| 参数名 | 类型 | 可选性 | 描述 |
|---|---|---|---|
| language | 字符串 | 可选 | 使用 ISO_3166_1 代码指定语言,以获取对应语言的翻译数据。仅适用于支持多语言的字段。默认值为 en-US。 |
| append_to_response | 字符串 | 可选 | 用于将同命名空间内的其他请求附加到响应中。格式为 ([\w]+)。 |
输出 JSON 响应中的对象如下:
| 对象 | 类型 | 可选性 | 描述 |
|---|---|---|---|
| episode_run_time | 整数数组 | 可选 | 每集的平均时长。 |
| first_air_date | 字符串 | 可选 | 该电视剧首次正式播出的日期。 |
| genres | 对象数组 | 可选 | 返回该电视剧的所有主题类别,如动作、剧情等。 |
| id | 整数 | 可选 | 电视剧的 ID,即我们在 GET 请求 URL 中提供的 ID。 |
| networks | 对象数组 | 可选 | 返回正在播放该电视剧的所有电视台(含详细信息)。 |
| number_of_episodes | 整数 | 可选 | 该电视剧的总集数。 |
| number_of_seasons | 整数 | 可选 | 该电视剧的总季数。 |
| original_language | 字符串 | 可选 | 该电视剧原始创作的语言。 |
| original_name | 字符串 | 可选 | 该电视剧在原始语言中的名称。例如,在日本首播的剧集,其原始名称为日文。 |
| overview | 字符串 | 可选 | 简明扼要、无剧透的剧情简介或概要。 |
| popularity | 数字 | 可选 | 基于多种因素(如用户投票数、页面访问量)计算出的数值,反映该电视剧的受欢迎程度。 |
| tagline | 字符串或 null | 可选 | 用于电视剧海报上的简短而吸引人的宣传语,激发观众兴趣。 |
| type | 字符串 | 可选 | 该电视剧的类型。有效值包括:纪录片、新闻、迷你剧、真人秀、剧本类、访谈节目和视频。 |
| vote_count | 整数 | 可选 | 该电视剧的总投票数。 |
下面我们尝试运行一个电视剧详情接口示例。点击“编辑”,填写 API_KEY(即我们的 TMDB API 密钥)和 TV_ID。虽然我们可以从 TMDB 获取所有有效的电视剧 ID(参见课程中的“实用 ID”列表),但目前我们可以使用以下任意一个:
| 电视剧 | TV ID |
|---|---|
| 朋友 | 1668 |
| 主厨对决 | 40290 |
| 纸钞屋(金钱游戏) | 71446 |
| 急诊室故事 | 1416 |
| 办公室 | 2316 |
| 皮尔·布兰迪斯 | 60574 |
现在点击“运行”,即可获取我们提供 ID 的电视剧的所有基本信息。
1import json 2import requests 3from pprint import pprint 4 5api_key = '{{API_KEY}}' 6language = 'en-US' 7response = requests.get("https://api.themoviedb.org/3/tv/{{TV_ID}}", 8 params={'api_key':api_key, 9 'language':language}) 10 11# 格式化并打印 JSON 响应 12pprint(response.json())
我们已成功获取了所请求电视剧的英文信息。现在将第 6 行的 language 改为另一种语言,例如西班牙语,观察结果变化。西班牙语的 ISO 3166 1 代码为 es-ES。如果所请求的电视剧本身是西班牙语(如《金钱游戏》),这种变化会更加明显。
电视剧季详情
如今大多数电视剧都有多个季。因此,获取某一季的信息与获取电视剧整体信息同等重要。TMDB 能够轻松实现这一点。我们可以通过 电视剧季详情 接口,使用电视剧 ID 和季号来获取该季的主要信息。
该接口是电视剧详情接口的扩展。它接收两个整数路径参数 tv_id 和 season_number,并返回所请求季的详细信息,以单一 JSON 响应形式呈现。
当前关注的基地址如下:
1https://api.themoviedb.org/3/tv/{tv_id}/season/{season_number}?api_key={yourTMDBapikey}
该接口使用的查询参数与电视剧详情接口相同。但其返回的 JSON 响应对象如下:
| 对象 | 类型 | 可选性 | 描述 |
|---|---|---|---|
| _id | 字符串 | 可选 | 所请求季的 ID,以字符串形式表示。 |
| air_date | 字符串 | 可选 | 该季正式发布的日期。 |
| episodes | 对象数组 | 可选 | 返回该季的所有剧集(含详细信息)。 |
| name | 字符串 | 可选 | 所请求季的名称,可以是原名或其他名称。 |
| id | 整数 | 可选 | 所请求季的 ID,以整数形式表示。 |
| overview | 字符串 | 可选 | 该季的简明扼要、无剧透的剧情概要。 |
| poster_path | 字符串或 null | 可选 | 该季海报图片的路径。若无海报,则返回 null。 |
| season_number | 整数 | 可选 | 我们请求的电视剧季号。 |
以下代码用于获取某部电视剧第一季的主要信息。我们需要提供电视剧的 ID。可根据需要更改季号:改为 season/2 即获取第二季,season/3 获取第三季,依此类推。要运行此示例,请复制下方代码,替换上方可执行代码框中的第 7 至 9 行代码。然后点击“运行”执行。
1response = requests.get("https://api.themoviedb.org/3/tv/{{TV_ID}}/season/1", 2 params={'api_key':api_key, 3 'language':language})
电视剧集详情
每部电视剧在每一季中都有一定数量的剧集。获取某集的详细信息至关重要,直接影响用户是否选择观看该剧。这些信息包括评分、制作团队和客串演员等。
我们可以通过 TMDB 的 电视剧集详情 接口,使用电视剧 ID、季号和集号来获取某一集的主要信息。该接口接收三个整数路径参数:tv_id、season_number 和 episode_number,并返回所请求剧集的完整信息,以单一 JSON 响应形式返回。
当前关注的基地址如下:
1https://api.themoviedb.org/3/tv/{tv_id}/season/{season_number}/episode/{episode_number}?api_key={yourTMDBapikey}
该接口使用的查询参数与电视剧详情接口相同。但其输出 JSON 响应中的对象如下:
| 对象 | 类型 | 可选性 | 描述 |
|---|---|---|---|
| air_date | 字符串 | 可选 | 该集正式发布的日期。 |
| crew | 对象数组 | 可选 | 返回该集的所有工作人员(含详细信息)。 |
| episode_number | 整数 | 可选 | 我们请求的电视剧集号。 |
| guest_stars | 对象数组 | 可选 | 返回该集的所有客串演员(含详细信息)。 |
| name | 字符串 | 可选 | 该集的名称,可以是原名或其他名称。 |
| id | 整数 | 可选 | 所请求剧集的 ID。 |
| overview | 字符串 | 可选 | 该集的简明扼要、无剧透的剧情概要。 |
| production_code | 字符串或 null | 可选 | 该集的制作编号。 |
| runtime | 整数 | 可选 | 该集的播放时长(单位:分钟)。 |
| season_number | 整数 | 可选 | 我们请求的电视剧季号。 |
| still_path | 字符串 | 可选 | 该集的图片路径(如有)。 |
| vote_average | 数字 | 可选 | 该集的平均评分,基于投票数计算,取值范围为 0 到 10。 |
| vote_count | 整数 | 可选 | 该集的总投票数。 |
以下代码用于获取某部电视剧第一季第一集的主要信息。我们需提供电视剧 ID。可根据需要更改集号:改为 episode/2 获取第二集,episode/3 获取第三集,依此类推。要运行此示例,请复制下方代码,替换上方可执行代码框中的第 7 至 9 行代码。然后点击“运行”执行。
1response = requests.get("https://api.themoviedb.org/3/tv/{{TV_ID}}/season/1/episode/1", 2 params={'api_key':api_key, 3 'language':language})
现在我们已经掌握了通过 ID 获取电视剧、季或集信息的方法。如需获取更多细节,如演员阵容、工作人员、图片和视频等内容,可使用 credits、images 和 videos 接口。请查看这些接口的基地址,并自行练习相关接口。