API dei dettagli della persona

L'endpoint della persona restituisce un attore, un regista o un membro della troupe per ID su GET /3/person/{person_id}. Il JSON segue TMDB v3: biografia, data e luogo di nascita, immagine del profilo e reparto. Endpoint correlati restituiscono crediti di film, serie e combinati, ID esterni, immagini del profilo e lista dei popolari.

Aggiornato il Vedi in Markdown

Ottenere i dettagli di una persona

GET /3/person/{person_id} restituisce la scheda di base di una persona: nome, biografia, data di nascita, luogo di nascita, reparto, immagine del profilo e ID IMDb. L'ID è l'ID numerico di persona di TMDB, quindi Tom Hanks resta 31 e Leonardo DiCaprio resta 6193. Chi lavora davanti e dietro la macchina da presa condivide un unico spazio di ID.

L'esempio legge Tom Hanks e aggiunge i suoi crediti combinati, poi stampa il nome, la data di nascita, il reparto principale e quanti crediti da attore ha.

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_idpercorsoobbligatorio
    ID numerico della persona, per esempio 31.
  • api_keyqueryuno dei due
    La tua chiave. Usa questa o l'header Authorization: Bearer.
  • languagequery
    Tag TMDB come en-US o ru-RU. La biografia viene restituita in quella lingua quando esiste una traduzione.
  • append_to_responsequery
    Elenco separato da virgole: movie_credits, tv_credits, combined_credits, external_ids, images. I nomi sconosciuti vengono ignorati.

Campi della risposta

CampoTipoNote
idinteroID della persona.
namestringaNome visualizzato, nella language richiesta quando esiste una traduzione.
also_known_asarrayNomi e grafie alternativi.
biographystringaTesto localizzato, vuoto quando non esiste una traduzione.
birthday, deathdaystringa o nullYYYY-MM-DD. deathday è null per le persone viventi.
place_of_birthstringa o nullTesto libero.
genderintero0 non specificato, 1 femminile, 2 maschile, 3 non binario.
known_for_departmentstringaMestiere principale, per esempio Acting o Directing.
imdb_idstringa o nullID IMDb di persona come nm0000158.
homepagestringa o nullSito ufficiale.
profile_pathstringa o nullDa accodare a https://img.amodb.dev/t/p/{size}. Vedi immagini.
popularitynumeroPunteggio relativo usato dalla lista dei popolari.
adultbooleanoSempre false. Le persone per adulti non vengono mai servite.

Risposta di esempio

GET /3/person/31?language=en-US, con la biografia accorciata:

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 della filmografia

Tre endpoint elencano i lavori di una persona. Tutti accettano language e restituiscono le chiavi id, cast e crew. Quando li aggiungi con append_to_response, la chiave id viene omessa.

Metodo e percorsoRestituisceParametri aggiuntivi
GET /person/{person_id}/movie_creditsFilm, con character e order in cast e department e job in crewnessuno
GET /person/{person_id}/tv_creditsSerie, con character in cast e department e job in crewnessuno
GET /person/{person_id}/combined_creditsFilm e serie insieme, ciascuno con media_type impostato su movie o tvnessuno

Le voci dei film portano title e release_date. Le voci delle serie TV portano name e first_air_date, e le voci di cast delle serie contengono anche una chiave episode_count che nei dati attuali è 0. Le voci portano anche credit_id, genre_ids, poster_path, vote_average e gli altri campi di lista. Il frammento qui sotto ordina i crediti combinati per data e stampa i cinque più recenti.

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 e immagini

Metodo e percorsoRestituisceParametri aggiuntivi
GET /person/popularLista paginata di persone popolari con i titoli known_forlanguage, page
GET /person/{person_id}/imagesFoto del profilo in un array profilesnessuno
GET /person/{person_id}/external_idsimdb_id, wikidata_id, facebook_id, instagram_id, tiktok_id, twitter_id, youtube_idnessuno

Le voci dei popolari contengono id, name, original_name, known_for_department, gender, profile_path, popularity e un array known_for. Le pagine vanno da 1 a 500. Le foto del profilo sono trattate nella pagina immagini, e gli ID esterni nella pagina ricerca per ID esterno.

amodb non offre traduzioni delle persone, la scheda di persona più recente, immagini taggate né modifiche. Chiedi invece la biografia nella lingua che ti serve con il parametro language.

Errori

HTTPstatus_codeQuando
4017La chiave manca o è sbagliata.
40236Il periodo del piano è terminato.
40434Nessuna persona con quell'ID, una persona per adulti, o un percorso non offerto.
40537Hai chiamato un metodo di scrittura.
42925Oltre le tue richieste al minuto. Attendi i secondi di Retry-After.

L'elenco completo è nella pagina errori, e le finestre per piano sono in limiti di richieste.

Note pratiche

  • I dettagli della persona e le liste dei crediti restano in cache per 6 ore. La lista dei popolari resta in cache per 30 minuti e le sue pagine vanno da 1 a 500.
  • Aggiungi combined_credits tramite append_to_response invece di fare una seconda chiamata. Entrambi i modi restituiscono gli stessi dati.
  • In movie_credits, ogni voce di cast ha un valore order, la posizione della persona nel cast di quel film. Le voci delle serie TV non hanno order, quindi ordinale per first_air_date.
  • Usa known_for_department per decidere quale lista mostrare per prima: cast per gli attori, crew per registi e sceneggiatori.
  • Cerca una persona per nome nella pagina ricerca, poi usa qui l'ID.