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ă.
Obține detaliile unei persoane
GET / î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.
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_idcaleobligatoriuID numeric de persoană, de exemplu31.api_keyinterogareuna dintre cele douăCheia ta. Folosește-o pe aceasta sau antetulAuthorization: Bearer.languageinterogareEtichetă TMDB precumen-USsauru-RU. Biografia este întoarsă în acea limbă când există o traducere.append_to_responseinterogareListă separată prin virgulă:movie_credits,tv_credits,combined_credits,external_ids,images. Numele necunoscute sunt ignorate.
Câmpurile răspunsului
| Câmp | Tip | Observații |
|---|---|---|
id | număr întreg | ID-ul persoanei. |
name | șir | Nume afișat, în language cerută când există o traducere. |
also_known_as | array | Nume și grafii alternative. |
biography | șir | Text localizat, gol când nu există traducere. |
birthday, deathday | șir sau null | YYYY-MM-DD. deathday este null pentru persoanele în viață. |
place_of_birth | șir sau null | Text liber. |
gender | număr întreg | 0 nespecificat, 1 feminin, 2 masculin, 3 non-binar. |
known_for_department | șir | Meseria principală, de exemplu Acting sau Directing. |
imdb_id | șir sau null | ID IMDb de persoană precum nm0000158. |
homepage | șir sau null | Site oficial. |
profile_path | șir sau null | Se adaugă la https:/. Vezi imagini. |
popularity | număr | Scor relativ folosit de lista populară. |
adult | boolean | Mereu false. Persoanele pentru adulți nu sunt servite niciodată. |
Exemplu de răspuns
GET /, cu biografia scurtată:
{
"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 | Întoarce | Parametri suplimentari |
|---|---|---|
GET / | Filme, cu character și order în cast și department și job în crew | niciunul |
GET / | Seriale, cu character în cast și department și job în crew | niciunul |
GET / | Filme și seriale împreună, fiecare cu media_type setat la movie sau tv | niciunul |
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.
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 | Întoarce | Parametri suplimentari |
|---|---|---|
GET /person/popular | Listă paginată de persoane populare cu titluri known_for | language, page |
GET / | Fotografii de profil într-un array profiles | niciunul |
GET / | imdb_id, wikidata_id, facebook_id, instagram_id, tiktok_id, twitter_id, youtube_id | niciunul |
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
| HTTP | status_code | Când |
|---|---|---|
| 401 | 7 | Cheia lipsește sau este greșită. |
| 402 | 36 | Perioada planului s-a încheiat. |
| 404 | 34 | Nicio persoană cu acel ID, o persoană pentru adulți sau o cale care nu este oferită. |
| 405 | 37 | Ai apelat o metodă de scriere. |
| 429 | 25 | Ai 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_creditsprinappend_to_responseîn loc să faci un al doilea apel. Ambele variante întorc aceleași date. - În
movie_credits, fiecare intrarecastare o valoareorder, poziția persoanei pe generic în acel film. Intrările TV nu auorder, deci sortează-le dupăfirst_air_date. - Folosește
known_for_departmentca să decizi ce listă arăți prima:castpentru actori,crewpentru regizori și scenariști. - Caută o persoană după nume la căutare, apoi folosește ID-ul aici.