API дэталяў персоны
Эндпоінт персоны вяртае аднаго акцёра, рэжысёра або члена здымачнай групы па id па адрасе GET /3/person/{person_id}. JSON адпавядае TMDB v3: біяграфія, дата нараджэння, месца нараджэння, выява профілю і аддзел. Дадатковыя эндпоінты вяртаюць удзел у фільмах, серыялах і зводны спіс, вонкавыя id, выявы профілю і спіс папулярных.
Атрыманне дэталяў персоны
GET / вяртае асноўны запіс аднаго чалавека: імя, біяграфію, дату нараджэння, месца нараджэння, аддзел, выяву профілю і IMDb id. Id гэта лікавы id персоны ў TMDB, таму Tom Hanks застаецца 31, а Leonardo DiCaprio застаецца 6193. Людзі, што працуюць перад камерай і за ёй, падзяляюць адну прастору id.
У прыкладзе чытаецца Tom Hanks з дададзенымі зводнымі ўдзеламі, потым друкуюцца імя, дата нараджэння, асноўны аддзел і колькасць акцёрскіх работ.
curl -sSf "https://api.amodb.dev/3/person/31?language=en-US&append_to_response=combined_credits" \
-H "Authorization: Bearer $AMODB_KEY"const url = 'https://api.amodb.dev/3/person/31?language=en-US&append_to_response=combined_credits';
const res = await fetch(url, { headers: { Authorization: `Bearer ${process.env.AMODB_KEY}` } });
if (!res.ok) throw new Error(`amodb returned ${res.status}`);
const person = await res.json();
console.log(person.name, person.birthday, person.known_for_department, person.combined_credits.cast.length);import os
import requests
r = requests.get(
"https://api.amodb.dev/3/person/31",
params={"language": "en-US", "append_to_response": "combined_credits"},
headers={"Authorization": f"Bearer {os.environ['AMODB_KEY']}"},
timeout=10,
)
r.raise_for_status()
person = r.json()
print(person["name"], person["birthday"], person["known_for_department"], len(person["combined_credits"]["cast"]))<?php
$url = 'https://api.amodb.dev/3/person/31?language=en-US&append_to_response=combined_credits';
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 10,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('AMODB_KEY')],
]);
$body = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($status !== 200) {
throw new RuntimeException("amodb returned $status");
}
$person = json_decode($body, true);
echo $person['name'], ' ', $person['birthday'], ' ', count($person['combined_credits']['cast']), PHP_EOL;package main
import (
"encoding/json"
"fmt"
"net/http"
"os"
"time"
)
type Person struct {
Name string `json:"name"`
Birthday string `json:"birthday"`
Department string `json:"known_for_department"`
PlaceOfBirth string `json:"place_of_birth"`
}
func main() {
req, _ := http.NewRequest("GET", "https://api.amodb.dev/3/person/31?language=en-US", nil)
req.Header.Set("Authorization", "Bearer "+os.Getenv("AMODB_KEY"))
client := &http.Client{Timeout: 10 * time.Second}
res, err := client.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
if res.StatusCode != http.StatusOK {
panic(res.Status)
}
var p Person
if err := json.NewDecoder(res.Body).Decode(&p); err != nil {
panic(err)
}
fmt.Println(p.Name, p.Birthday, p.Department, p.PlaceOfBirth)
}Параметры
person_idшляхабавязковыЛікавы id персоны, напрыклад31.api_keyзапытадзін з двухВаш ключ. Выкарыстоўвайце яго або загаловакAuthorization: Bearer.languageзапытТэг TMDB, напрыкладen-USабоru-RU. Біяграфія вяртаецца на гэтай мове, калі пераклад існуе.append_to_responseзапытСпіс праз коску:movie_credits,tv_credits,combined_credits,external_ids,images. Невядомыя назвы ігнаруюцца.
Палі адказу
| Поле | Тып | Заўвагі |
|---|---|---|
id | цэлы лік | Id персоны. |
name | радок | Імя для паказу, на запытанай мове language, калі пераклад існуе. |
also_known_as | масіў | Іншыя імёны і варыянты напісання. |
biography | радок | Лакалізаваны тэкст, пусты, калі перакладу няма. |
birthday, deathday | радок або null | YYYY-MM-DD. deathday роўны null для жывых людзей. |
place_of_birth | радок або null | Вольны тэкст. |
gender | цэлы лік | 0 не ўказана, 1 жаночы, 2 мужчынскі, 3 небінарны. |
known_for_department | радок | Асноўная праца, напрыклад Acting або Directing. |
imdb_id | радок або null | IMDb id персоны, напрыклад nm0000158. |
homepage | радок або null | Афіцыйны сайт. |
profile_path | радок або null | Дадайце да https:/. Гл. выявы. |
popularity | лік | Адносная ацэнка, якую выкарыстоўвае спіс папулярных. |
adult | лагічнае значэнне | Заўсёды false. Людзі для дарослых ніколі не вяртаюцца. |
Прыклад адказу
GET /, з карацейшай біяграфіяй:
{
"adult": false,
"also_known_as": [
"Thomas Jeffrey Hanks"
],
"biography": "Thomas Jeffrey Hanks (born July 9, 1956) is an American actor and filmmaker. Known for both his comedic and dramatic roles, Hanks is one of the most popular...",
"birthday": "1956-07-09",
"deathday": null,
"gender": 2,
"homepage": null,
"id": 31,
"imdb_id": "nm0000158",
"known_for_department": "Acting",
"name": "Tom Hanks",
"place_of_birth": "Concord, California, USA",
"popularity": 12.98,
"profile_path": "/oFvZoKI6lvU03n4YoNGAll9rkas.jpg"
}Эндпоінты фільмаграфіі
Тры эндпоінты пералічваюць, над чым працаваў чалавек. Усе прымаюць language і вяртаюць ключы id, cast і crew. Калі вы далучаеце іх праз append_to_response, ключ id не вяртаецца.
| Метад і шлях | Што вяртае | Дадатковыя параметры |
|---|---|---|
GET / | Фільмы, з character і order у cast і department і job у crew | няма |
GET / | Серыялы, з character у cast і department і job у crew | няма |
GET / | Фільмы і серыялы разам, у кожнага media_type роўны movie або tv | няма |
Запісы фільмаў нясуць title і release_date. Запісы серыялаў нясуць name і first_air_date, а запісы акцёраў серыялаў таксама ўтрымліваюць ключ episode_count, які ў бягучых даных роўны 0. Запісы таксама нясуць credit_id, genre_ids, poster_path, vote_average і іншыя палі спісу. Фрагмент ніжэй сартуе зводныя ўдзелы па даце і друкуе пяць самых новых.
const credits = person.combined_credits;
const date = (c) => c.release_date || c.first_air_date || '';
const latest = credits.cast.filter((c) => date(c)).sort((a, b) => date(b).localeCompare(date(a))).slice(0, 5);
for (const c of latest) console.log(date(c), c.media_type, c.title || c.name, 'as', c.character);Спісы і выявы
| Метад і шлях | Што вяртае | Дадатковыя параметры |
|---|---|---|
GET /person/popular | Спіс папулярных людзей па старонках з назвамі known_for | language, page |
GET / | Фота профілю ў масіве profiles | няма |
GET / | imdb_id, wikidata_id, facebook_id, instagram_id, tiktok_id, twitter_id, youtube_id | няма |
Запісы папулярных утрымліваюць id, name, original_name, known_for_department, gender, profile_path, popularity і масіў known_for. Старонкі ідуць ад 1 да 500. Фота профілю апісаны на старонцы выявы, а вонкавыя id на старонцы пошук па вонкавым ідэнтыфікатары.
amodb не прапануе пераклады персон, апошні запіс персоны, выявы з пазнакамі і змены. Замест гэтага запытвайце біяграфію на патрэбнай мове праз параметр language.
Памылкі
| HTTP | status_code | Калі |
|---|---|---|
| 401 | 7 | Ключ адсутнічае або няправільны. |
| 402 | 36 | Тэрмін дзеяння плана скончыўся. |
| 404 | 34 | Няма персоны з гэтым id, гэта персона для дарослых або шлях не падтрымліваецца. |
| 405 | 37 | Вы выклікалі метад запісу. |
| 429 | 25 | Перавышаны ліміт запытаў у хвіліну. Пачакайце Retry-After секунд. |
Поўны спіс ёсць на старонцы памылкі, а акны па планах на старонцы ліміты запытаў.
Практычныя заўвагі
- Дэталі персоны і спісы ўдзелаў кэшуюцца на 6 гадзін. Спіс папулярных кэшуецца на 30 хвілін, а старонкі ідуць ад 1 да 500.
- Дадавайце
combined_creditsпразappend_to_responseзамест другога выкліку. Абодва спосабы вяртаюць тыя ж даныя. - У
movie_creditsкожны запісcastмае значэннеorder, месца чалавека ў спісе ў гэтым фільме. Запісы серыялаў не маюцьorder, таму сартуйце іх паfirst_air_date. - Выкарыстоўвайце
known_for_department, каб вырашыць, які спіс паказваць першым:castдля акцёраў,crewдля рэжысёраў і сцэнарыстаў. - Шукайце чалавека па імені на старонцы пошук, а потым выкарыстоўвайце id тут.