一些有用的 ID
学习如何提取 TMDB 接口所需的某些有用 ID。
对于 TMDB 的基础电影和电视剧端点,我们需要 movie_id 和 tv_id。以下是获取这些有效值的方法:
电影 ID
movie_id 的值可以是 TMDB 中当前有效的任意整数电影 ID。以下是一些 TMDB 上有效的电影 ID 示例:
| 电影名称 | 电影 ID |
|---|---|
| 教父 | 238 |
| 蜘蛛侠:英雄无归 | 634649 |
| 小鬼当家 | 10585 |
| 三傻大闹宝莱坞 | 20413 |
| 超能陆战队 | 177572 |
获取有效 movie_id 的两种主要方法如下:
-
使用搜索端点。该端点接收查询字符串,并返回包含
movie_id值的 JSON 响应。 -
通过其 每日文件导出 页面获取 TMDB 上所有有效电影 ID 的列表。数据每天在 UTC 时间上午 7 点更新,可在上午 8 点前下载!
具体使用的 URL 如下:
http://files.tmdb.org/p/exports/movie_ids_MM_DD_YYYY.json.gz。例如,若需要截至 2022 年 2 月 23 日的所有电影 ID,则使用:
http://files.tmdb.org/p/exports/movie_ids_02_23_2022.json.gz。
电视剧 ID
与 movie_id 类似,tv_id 是表示 TMDB 中有效电视剧 ID 的整数。以下是一些 TMDB 上有效的电视剧 ID 示例:
| 电视剧名称 | 电视剧 ID |
|---|---|
| 老友记 | 1668 |
| 主厨争霸赛 | 40290 |
| 纸钞屋(金钱游戏) | 71446 |
| 急诊室故事 | 1416 |
| 办公室 | 2316 |
| 企鹅人 | 60574 |
获取有效 tv_id 的两种主要方法如下:
-
使用搜索端点。该端点接收查询字符串,并返回包含
tv_id值的 JSON 响应。 -
通过其 每日文件导出 页面获取 TMDB 上所有有效电视剧 ID 的列表。数据每天在 UTC 时间上午 7 点更新,可在上午 8 点前下载!
具体使用的 URL 如下:
http://files.tmdb.org/p/exports/tv_ids_MM_DD_YYYY.json.gz。例如,若需要截至 2022 年 2 月 23 日的所有电视剧 ID,则使用:http://files.tmdb.org/p/exports/tv_ids_02_23_2022.json.gz。
人物 ID
每位演员和工作人员都关联有一个称为“人物 ID”的唯一标识符。信用信息端点会返回任何电影或电视剧的演员和工作人员列表,该列表中也包含人物 ID,因此我们可以利用此端点获取人物 ID。下面的代码用于获取演员和工作人员列表中的第一个人物 ID。
1import fetch from "node-fetch"; 2 3const API_KEY = '{{API_KEY}}'; 4const language = 'en-US'; 5 6const endpointUrl = new URL('https://api.themoviedb.org/3/movie/{{MOVIE_ID}}/credits'); 7 8const queryParameters = new URLSearchParams({ 9 api_key: API_KEY, 10 language: language 11}); 12 13async function fetchData() { 14 try { 15 endpointUrl.search = queryParameters; 16 const response = await fetch(endpointUrl); 17 printResponse(response); 18 } catch (error) { 19 // 调用打印错误信息的函数(如有) 20 printError(error); 21 } 22} 23 24// 调用执行 API 请求的函数 25fetchData();
另一种获取 TMDB 上有效人物 ID 的方式是使用其 每日文件导出 页面。数据每天在 UTC 时间上午 7 点更新,可在上午 8 点前下载!
具体使用的 URL 如下:http://files.tmdb.org/p/exports/person_ids_MM_DD_YYYY.json.gz。
例如,若需要截至 2022 年 2 月 23 日的所有人物 ID,则使用:http://files.tmdb.org/p/exports/person_ids_02_23_2022.json.gz。
外部 ID
TMDB 提供外部 ID 功能,用于查找任何项目(电影、电视剧/季/集,或人物)的外部平台标识符。这些 ID 是项目在其他外部平台上的编号,而非 TMDB 自身的 ID。例如,电视剧《老友记》在 TVDB、Facebook、Instagram 等平台上都有各自的 ID。
目前,TMDB 支持以下外部数据源:
| 媒体数据库 | 社交平台 ID |
|---|---|
| IMDb ID | |
| TVDB ID | |
| - |
我们可以通过 外部 ID 端点获取 TMDB 中任意项目的外部 ID。以下是获取 TMDB 任意项目外部 ID 的有效 URL:
上述所有 URL 均支持有效的路径参数值。路径参数 movie_id、tv_id、season_number 和 episode_number 均为整数类型。
现在,我们尝试使用下方代码获取某个项目的外部 ID 列表。请将代码中的 API_KEY 和 MOVIE_ID 替换为有效值(目前可忽略 TV_ID 的值),然后运行程序。
1import fetch from "node-fetch"; 2 3const API_KEY = '{{API_KEY}}'; 4 5const endpointUrl = new URL('https://api.themoviedb.org/3/movie/{{MOVIE_ID}}/external_ids'); 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 19 } catch (error) { 20 // 调用打印错误信息的函数(如有) 21 printError(error); 22 } 23} 24 25// 调用执行 API 请求的函数 26fetchData();
我们刚刚获取了指定 MOVIE_ID 的电影的外部 ID。接下来,尝试获取一部电视剧的外部 ID。为此,请填写 TV_ID 的值,并将第 5 行的 URL 替换为以下内容:
1https://api.themoviedb.org/3/tv/{{TV_ID}}/external_ids