人物详情与参演记录
学习并练习如何使用TMDB API获取人员的基本信息。
在本节课中,我们将重点学习如何获取两类主要信息:影视作品中某个人物的详细信息,以及该人物在影视作品中的全部演出或制作人员记录。
人物的详细信息
与电影和电视剧类似,我们也可以获取任何人物的详细信息。可以使用 person 端点来获取任意人物的基本信息。这里的人物可以是任何电影或电视剧的演员或工作人员。该端点接收一个整数路径参数 person_id,并返回该人物的完整信息,以单一 JSON 响应形式返回。
当前关注的基础 URL 如下:
1https://api.themoviedb.org/3/person/{person_id}?api_key={ourTMDBapikey}
### 请求参数
此端点支持的查询参数如下:
| 参数名 | 类型 | 可选性 | 描述 |
|---|---|---|---|
| language | string | 可选 | 使用 ISO_3166_1 国家代码来获取指定语言的翻译数据。仅适用于支持多语言的字段。默认值为 en-US。 |
| append_to_response | string | 可选 | 用于将同命名空间内的其他请求附加到响应中。格式为 ([\w]+)。 |
以下代码示例展示了基本人物详情端点的用法。在运行代码前,请填写 API_KEY 和 PERSON_ID 的值。虽然你可以提取并使用所有有效的人员 ID,但目前建议先尝试我们提供的部分示例 ID。
| 人物 | 人员 ID |
|---|---|
| 道恩·强森 | 18918 |
| 文斯·沃恩 | 12835 |
| 莱昂纳多·迪卡普里奥 | 6193 |
| 汤姆·克鲁斯 | 500 |
| 艾米莉亚·琼斯 | 1331023 |
| 泽恩达雅 | 505710 |
| 詹妮弗·安妮斯顿 | 4491 |
| 戈登·拉姆齐 | 208630 |
1import fetch from "node-fetch"; 2 3const API_KEY = '{{API_KEY}}'; 4 5const endpointUrl = new URL('https://api.themoviedb.org/3/person/{{PERSON_ID}}'); 6 7const queryParameters = new URLSearchParams({ 8 api_key : API_KEY 9}); 10 11async function fetchData() { 12 try { 13 endpointUrl.search = queryParameters; 14 const response = await fetch(endpointUrl); 15 16 // 调用打印响应的函数 17 printResponse(response); 18 } catch (error) { 19 20 // 调用打印错误信息的函数(如有) 21 printError(error); 22 } 23} 24 25// 调用发起 API 请求的函数 26fetchData();
### 响应字段
输出的 JSON 响应中包含的对象如下:
| 字段 | 类型 | 描述 |
|---|---|---|
| adult | boolean | 标志位,表示该人物是否参与过成人内容作品。 |
| birthday | string 或 null | 返回该人物的出生日期。 |
| known_for_department | string | 返回该人物最为知名的领域名称。例如,马修·佩里因表演而闻名。 |
| deathday | null 或 string | 返回该人物的去世日期(仅当适用时)。 |
| id | integer | 该人物在 TMDB 上的唯一标识 ID(与输入参数一致)。 |
| name | string | 该人物的原始姓名。 |
| also_known_as | array[string] | 返回该人物常被称呼的其他名字列表。 |
| gender | integer | 返回代表人物性别的整数值。0 表示未指定,1 表示女性,2 表示男性。 |
| biography | string | 返回一段简短的文字介绍,描述该人物的生平。 |
| popularity | number | 该人物在 TMDB 上的受欢迎程度评分。 |
| place_of_birth | string 或 null | 返回该人物的出生地。 |
| profile_path | string 或 null | 返回该人物头像图片的路径。 |
| imdb_id | string | 返回该人物在 IMDb 上的外部 ID。 |
| homepage | null 或 string | 返回该人物的个人主页链接(如存在)。 |
人物的演出/制作记录
在电影和电视剧中,我们可以获取特定作品的所有演职人员信息。但如果想了解某位人物的全部参与记录呢?例如,想知道汤姆·赫兰德参与过的所有电影和电视剧,无论是作为演员还是幕后工作人员。TMDB API 提供了三种方法来实现这一目标。我们可以使用以下三种方式获取某位人物的全部记录:
- 人物电影记录
- 人物电视剧记录
- 人物综合记录
获取人物的电影记录
此方法用于获取某位人物参与的所有电影记录。人物电影记录端点接收一个整数路径参数 person_id,并返回该人物在电影方面的参与情况,以单一 JSON 响应形式返回。
当前关注的基础 URL 如下:
1https://api.themoviedb.org/3/person/{person_id}/movie_credits?api_key={ourTMDBapikey}
#### 请求参数
此端点支持的查询参数如下:
| 参数名 | 类型 | 可选性 | 描述 |
|---|---|---|---|
| language | string | 可选 | 使用 ISO_3166_1 国家代码来获取指定语言的翻译数据。仅适用于支持多语言的字段。默认值为 en-US。 |
1import fetch from "node-fetch"; 2 3const API_KEY = '{{API_KEY}}'; 4 5const endpointUrl = new URL('https://api.themoviedb.org/3/person/{{PERSON_ID}}/movie_credits'); 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();
#### 响应字段
输出的 JSON 响应中包含的对象如下:
| 字段 | 类型 | 描述 |
|---|---|---|
| cast | array[object] | 返回该人物作为演员参与的电影列表。 |
| crew | array[object] | 返回该人物作为工作人员参与的电影列表。 |
| id | integer | 该人物在 TMDB 上的唯一标识 ID(与输入参数一致)。 |
获取人物的电视剧记录
此方法用于获取某位人物参与的所有电视剧记录。人物电视剧记录端点接收一个整数路径参数 person_id,并返回该人物在电视剧方面的参与情况,以单一 JSON 响应形式返回。
当前关注的基础 URL 如下:
1https://api.themoviedb.org/3/person/{person_id}/tv_credits?api_key={ourTMDBapikey}
#### 请求参数 该端点所需的查询参数与“人物电影记录”端点相同。
让我们也运行一个“人物电视剧记录”端点的示例。请复制下方代码并粘贴到上方代码编辑器中(第 5 行)。然后点击“运行”执行代码。
1const endpointUrl = new URL('https://api.themoviedb.org/3/person/{{PERSON_ID}}/tv_credits');
#### 响应字段 由于返回的是电视剧数据,输出结构略有不同。例如,`cast` 和 `crew` 字段返回的是该人物参与的电视剧列表。
获取人物的综合记录
相比前两种方法,此方法更高效且实用,可一次性获取某位人物的电影和电视剧记录。人物综合记录端点允许我们同时获取某位人物在电影和电视剧中的全部参与信息。该端点接收一个整数路径参数 person_id,并返回电影和电视剧的记录合并后的单一 JSON 响应。
当前关注的基础 URL 如下:
1https://api.themoviedb.org/3/person/{person_id}/combined_credits?api_key={ourTMDBapikey}
#### 请求参数 该端点所需的查询参数与“人物电影记录”端点相同。
让我们运行一个“人物综合记录”端点的示例。请复制下方代码并粘贴到上方代码编辑器中(第 5 行)。然后点击“运行”执行代码。
1const endpointUrl = new URL('https://api.themoviedb.org/3/person/{{PERSON_ID}}/combined_credits');
#### 响应字段 由于返回的是电影和电视剧的综合数据,输出结构有所不同。例如,`cast` 和 `crew` 字段返回的是该人物参与的所有电影和电视剧的列表。