主要电视剧详情
学习并练习如何使用TMDB API获取主要电视剧的详细信息。
本课程聚焦于 TMDB 的接口,用于通过 ID 获取电视剧、季和集的详细信息。
电视剧详情
电视剧的主要信息有助于用户决定是否观看某部剧集。TMDB 允许我们通过其 TMDB ID 获取一部电视剧的所有主要信息。该方法接收 tv_id 作为参数,并返回包含所有核心信息的单一 JSON 响应。这一功能对开发者非常有帮助,是任何媒体应用的基础功能。
我们可以使用 TMDB 的 电视剧详情 接口,通过一个整数路径参数 tv_id 获取电视剧的关键信息。
以下是基础 URL:
1https://api.themoviedb.org/3/tv/{tv_id}?api_key={yourTMDBapikey}
请求参数
此接口支持以下查询字符串输入参数:
| 参数名 | 类型 | 可选性 | 描述 |
|---|---|---|---|
| language | 字符串 | 可选 | 使用 ISO_3166_1 代码指定语言,以获取对应语言的翻译数据。仅适用于支持多语言的字段。默认值为 en-US。 |
| append_to_response | 字符串 | 可选 | 用于将同命名空间内的其他请求附加到响应中。格式为 ([\w]+)。 |
让我们尝试运行一个电视剧详情接口的示例。点击“编辑”,填写 API_KEY(即你的 TMDB API 密钥)和 TV_ID。虽然我们可以在 TMDB 上提取所有有效的电视剧 ID(参见课程前面列出的实用电视剧 ID),但目前可以使用以下任意一个:
| 电视剧 | TV ID |
|---|---|
| 朋友 | 1668 |
| 主厨对决 | 40290 |
| 纸钞屋(金钱游戏) | 71446 |
| 急诊室故事 | 1416 |
| 办公室 | 2316 |
| 浴血黑帮 | 60574 |
现在点击“运行”,即可获取你提供的 ID 对应的电视剧全部基本信息。
1import fetch from "node-fetch"; 2 3const API_KEY = '{{API_KEY}}'; 4 5const endpointUrl = new URL('https://api.themoviedb.org/3/tv/{{TV_ID}}'); 6 7const queryParameters = new URLSearchParams({ 8 api_key : API_KEY, 9 language : 'en-US' 10}); 11 12async function fetchData() { 13 try { 14 endpointUrl.search = queryParameters; 15 const response = await fetch(endpointUrl); 16 17 // 调用打印响应的函数 18 printResponse(response); 19 } catch (error) { 20 21 // 调用打印错误信息的函数 22 printError(error); 23 } 24} 25 26// 调用执行 API 请求的函数 27fetchData();
我们已成功获取了所请求电视剧的英文信息。现在将第 9 行中的 language 改为另一种语言,例如西班牙语,观察结果变化。西班牙语的 ISO 3166 1 代码为 es-ES。如果所请求的电视剧本身是西班牙语的(如《纸钞屋》),这种变化会更加明显。
响应字段
输出 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 | 整数 | 该电视剧的总投票数。 |
电视剧季详情
如今大多数电视剧都有多个季。因此,获取某一季的详细信息与获取电视剧整体信息同样重要。TMDB 可轻松实现这一点。我们可以通过 电视剧季详情 接口,使用电视剧 ID 来获取其某一季的主信息。
该接口是电视剧详情接口的扩展。它接收两个整数路径参数 tv_id 和 season_number,并返回请求季的详细信息,以单一 JSON 响应形式返回。
基础 URL 如下:
1https://api.themoviedb.org/3/tv/{tv_id}/season/{season_number}?api_key={yourTMDBapikey}
请求参数
该接口接受与电视剧详情接口相同的查询参数。
下面的代码用于获取某部电视剧第一季的主信息。我们需要提供电视剧的 ID。可根据需要更改季数:改为第二季则使用 season/2,第三季则使用 season/3,依此类推。要运行此示例,请复制下方代码,并替换上方可执行代码框中的第 5 行代码。然后点击“运行”执行代码。
1const endpointUrl = new URL('https://api.themoviedb.org/3/tv/{{TV_ID}}/season/1');
响应字段
返回的 JSON 响应中的对象如下:
| 对象 | 类型 | 描述 |
|---|---|---|
| _id | 字符串 | 请求季的 ID,以字符串形式表示。 |
| air_date | 字符串 | 该季正式发布的日期。 |
| episodes | 对象数组 | 返回请求季的所有剧集及其详细信息。 |
| name | 字符串 | 请求季的名称,可以是原名或其他名称。 |
| id | 整数 | 请求季的 ID,以整数形式表示。 |
| overview | 字符串 | 该季的简明扼要、无剧透的剧情简介或概要。 |
| poster_path | 字符串或 null | 该季海报图片的路径。若无海报,则返回 null。 |
| season_number | 整数 | 请求的电视剧季数。 |
电视剧集详情
每部电视剧在每一季中都有一定数量的剧集。获取某集的详细信息至关重要,直接影响用户是否决定观看该剧。这些信息包括评分、幕后团队和客串演员等。
我们可以使用 TMDB 的 电视剧集详情 接口,通过剧集 ID 获取其主信息。该接口接收三个整数路径参数:tv_id、season_number 和 episode_number,并返回请求剧集的完整信息,以单一 JSON 响应形式返回。
基础 URL 如下:
1https://api.themoviedb.org/3/tv/{tv_id}/season/{season_number}/episode/{episode_number}?api_key={yourTMDBapikey}
请求参数
该接口接受与电视剧详情接口相同的查询参数。
下面的代码用于获取某部电视剧第一季第一集的主信息。我们需提供电视剧 ID。可根据需要更改剧集编号:第二集使用 episode/2,第三集使用 episode/3,依此类推。要运行此示例,复制下方代码并替换上方可执行代码框中的第 5 行代码。然后点击“运行”执行代码。
1const endpointUrl = new URL('https://api.themoviedb.org/3/tv/{{TV_ID}}/season/1/episode/1');
响应字段
输出的 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 获取电视剧、季或集详细信息的方法。如需获取更多内容(如演员表、幕后团队、图片和视频),可使用 credits、images 和 videos 接口。请查看这些接口的基础 URL 并在课程中的“电影演员与幕后团队”课时中练习