API detalii persoană

Endpoint-ul pentru persoane întoarce un actor, regizor sau membru al echipei după ID la GET /3/person/{person_id}. JSON-ul se potrivește cu TMDB v3: biografie, zi de naștere, loc de naștere, imagine de profil și departament. Endpoint-urile însoțitoare întorc credite de film, TV și combinate, ID-uri externe, imagini de profil și lista populară.

Actualizat Vezi ca Markdown

Obține detaliile unei persoane

GET /3/person/{person_id} întoarce fișa de bază a unei persoane: nume, biografie, zi de naștere, loc de naștere, departament, imagine de profil și ID IMDb. ID-ul este ID-ul numeric de persoană TMDB, deci Tom Hanks rămâne 31, iar Leonardo DiCaprio rămâne 6193. Persoanele care lucrează în fața și în spatele camerei împart un singur spațiu de ID-uri.

Exemplul citește Tom Hanks și îi atașează creditele combinate, apoi afișează numele, ziua de naștere, departamentul principal și câte credite de actorie are.

bashjspyphpgo
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)
}

Parametri

  • person_idcaleobligatoriu
    ID numeric de persoană, de exemplu 31.
  • api_keyinterogareuna dintre cele două
    Cheia ta. Folosește-o pe aceasta sau antetul Authorization: Bearer.
  • languageinterogare
    Etichetă TMDB precum en-US sau ru-RU. Biografia este întoarsă în acea limbă când există o traducere.
  • append_to_responseinterogare
    Listă separată prin virgulă: movie_credits, tv_credits, combined_credits, external_ids, images. Numele necunoscute sunt ignorate.

Câmpurile răspunsului

CâmpTipObservații
idnumăr întregID-ul persoanei.
nameșirNume afișat, în language cerută când există o traducere.
also_known_asarrayNume și grafii alternative.
biographyșirText localizat, gol când nu există traducere.
birthday, deathdayșir sau nullYYYY-MM-DD. deathday este null pentru persoanele în viață.
place_of_birthșir sau nullText liber.
gendernumăr întreg0 nespecificat, 1 feminin, 2 masculin, 3 non-binar.
known_for_departmentșirMeseria principală, de exemplu Acting sau Directing.
imdb_idșir sau nullID IMDb de persoană precum nm0000158.
homepageșir sau nullSite oficial.
profile_pathșir sau nullSe adaugă la https://img.amodb.dev/t/p/{size}. Vezi imagini.
popularitynumărScor relativ folosit de lista populară.
adultbooleanMereu false. Persoanele pentru adulți nu sunt servite niciodată.

Exemplu de răspuns

GET /3/person/31?language=en-US, cu biografia scurtată:

JSON
{
  "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"
}

Endpoint-uri de filmografie

Trei endpoint-uri listează la ce a lucrat o persoană. Toate primesc language și întorc cheile id, cast și crew. Când le atașezi cu append_to_response, cheia id este omisă.

Metodă și caleÎntoarceParametri suplimentari
GET /person/{person_id}/movie_creditsFilme, cu character și order în cast și department și job în crewniciunul
GET /person/{person_id}/tv_creditsSeriale, cu character în cast și department și job în crewniciunul
GET /person/{person_id}/combined_creditsFilme și seriale împreună, fiecare cu media_type setat la movie sau tvniciunul

Intrările de film poartă title și release_date. Intrările TV poartă name și first_air_date, iar intrările TV de distribuție au și o cheie episode_count, care este 0 în datele curente. Intrările poartă și credit_id, genre_ids, poster_path, vote_average și celelalte câmpuri de listă. Fragmentul de mai jos sortează creditele combinate după dată și afișează cele mai noi cinci.

JavaScript
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);

Liste și imagini

Metodă și caleÎntoarceParametri suplimentari
GET /person/popularListă paginată de persoane populare cu titluri known_forlanguage, page
GET /person/{person_id}/imagesFotografii de profil într-un array profilesniciunul
GET /person/{person_id}/external_idsimdb_id, wikidata_id, facebook_id, instagram_id, tiktok_id, twitter_id, youtube_idniciunul

Intrările populare conțin id, name, original_name, known_for_department, gender, profile_path, popularity și un array known_for. Paginile merg de la 1 la 500. Fotografiile de profil sunt tratate la imagini, iar ID-urile externe la căutare după ID extern.

amodb nu oferă traduceri de persoane, cea mai nouă înregistrare de persoană, imagini etichetate sau modificări. Cere în schimb biografia în limba de care ai nevoie cu parametrul language.

Erori

HTTPstatus_codeCând
4017Cheia lipsește sau este greșită.
40236Perioada planului s-a încheiat.
40434Nicio persoană cu acel ID, o persoană pentru adulți sau o cale care nu este oferită.
40537Ai apelat o metodă de scriere.
42925Ai depășit cererile pe minut. Așteaptă numărul de secunde din Retry-After.

Lista completă este la erori, iar ferestrele pe plan sunt la limite de cereri.

Note practice

  • Detaliile persoanelor și listele de credite sunt ținute în cache 6 ore. Lista populară este ținută în cache 30 de minute, iar paginile merg de la 1 la 500.
  • Adaugă combined_credits prin append_to_response în loc să faci un al doilea apel. Ambele variante întorc aceleași date.
  • În movie_credits, fiecare intrare cast are o valoare order, poziția persoanei pe generic în acel film. Intrările TV nu au order, deci sortează-le după first_air_date.
  • Folosește known_for_department ca să decizi ce listă arăți prima: cast pentru actori, crew pentru regizori și scenariști.
  • Caută o persoană după nume la căutare, apoi folosește ID-ul aici.