API de détails de personne

Le point de terminaison de personne renvoie un acteur, un réalisateur ou un membre de l'équipe sur GET /3/person/{person_id}. Le JSON suit TMDB v3 : biographie, naissance, image de profil et service. D'autres points de terminaison donnent les crédits de films, de séries et combinés, les ids externes, les images de profil et la liste populaire.

Mis à jour le Voir en Markdown

Obtenir les détails d'une personne

GET /3/person/{person_id} renvoie la fiche de base d'une personne : nom, biographie, date de naissance, lieu de naissance, service, image de profil et id IMDb. L'identifiant est l'identifiant numérique de personne TMDB : Tom Hanks reste donc 31 et Leonardo DiCaprio reste 6193. Les personnes qui travaillent devant et derrière la caméra partagent un même espace d'identifiants.

L'exemple lit Tom Hanks et ajoute ses crédits combinés, puis affiche le nom, la date de naissance, le service principal et le nombre de ses crédits d'acteur.

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

Paramètres

  • person_idcheminobligatoire
    Identifiant numérique de la personne, par exemple 31.
  • api_keyrequêtel'un des deux
    Votre clé. Utilisez-la ou l'en-tête Authorization: Bearer.
  • languagerequête
    Balise TMDB comme en-US ou ru-RU. La biographie est renvoyée dans cette langue quand une traduction existe.
  • append_to_responserequête
    Liste séparée par des virgules : movie_credits, tv_credits, combined_credits, external_ids, images. Les noms inconnus sont ignorés.

Champs de la réponse

ChampTypeRemarques
identierIdentifiant de la personne.
namechaîneNom affiché, dans la language demandée quand une traduction existe.
also_known_astableauAutres noms et graphies.
biographychaîneTexte localisé, vide quand il n'existe pas de traduction.
birthday, deathdaychaîne ou nullYYYY-MM-DD. deathday est null pour les personnes vivantes.
place_of_birthchaîne ou nullTexte libre.
genderentier0 non précisé, 1 féminin, 2 masculin, 3 non binaire.
known_for_departmentchaîneMétier principal, par exemple Acting ou Directing.
imdb_idchaîne ou nullIdentifiant IMDb de personne comme nm0000158.
homepagechaîne ou nullSite officiel.
profile_pathchaîne ou nullÀ ajouter à https://img.amodb.dev/t/p/{size}. Voir images.
popularitynombreScore relatif utilisé par la liste des populaires.
adultbooléenToujours false. Les personnes pour adultes ne sont jamais servies.

Exemple de réponse

GET /3/person/31?language=en-US, avec la biographie raccourcie :

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

Points de terminaison de filmographie

Trois points de terminaison listent ce sur quoi une personne a travaillé. Tous acceptent language et renvoient les clés id, cast et crew. Quand vous les ajoutez avec append_to_response, la clé id est omise.

Méthode et cheminRenvoieParamètres supplémentaires
GET /person/{person_id}/movie_creditsFilms, avec character et order dans cast et department et job dans crewaucun
GET /person/{person_id}/tv_creditsSéries, avec character dans cast et department et job dans crewaucun
GET /person/{person_id}/combined_creditsFilms et séries ensemble, chacun avec media_type réglé sur movie ou tvaucun

Les entrées de films portent title et release_date. Les entrées de séries portent name et first_air_date, et les entrées de distribution des séries contiennent aussi une clé episode_count qui vaut 0 dans les données actuelles. Les entrées portent aussi credit_id, genre_ids, poster_path, vote_average et les autres champs de liste. L'extrait ci-dessous trie les crédits combinés par date et affiche les cinq plus récents.

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

Listes et images

Méthode et cheminRenvoieParamètres supplémentaires
GET /person/popularListe paginée de personnes populaires avec les titres known_forlanguage, page
GET /person/{person_id}/imagesPhotos de profil dans un tableau profilesaucun
GET /person/{person_id}/external_idsimdb_id, wikidata_id, facebook_id, instagram_id, tiktok_id, twitter_id, youtube_idaucun

Les entrées populaires contiennent id, name, original_name, known_for_department, gender, profile_path, popularity et un tableau known_for. Les pages vont de 1 à 500. Les photos de profil sont traitées sur images, et les identifiants externes sur recherche par identifiant externe.

amodb ne propose ni traductions de personnes, ni fiche de personne la plus récente, ni images étiquetées, ni changements. Demandez plutôt la biographie dans la langue voulue avec le paramètre language.

Erreurs

HTTPstatus_codeQuand
4017La clé est absente ou fausse.
40236La période de l'offre est terminée.
40434Aucune personne avec cet identifiant, une personne pour adultes, ou un chemin non proposé.
40537Vous avez appelé une méthode d'écriture.
42925Au-dessus de vos requêtes par minute. Attendez les secondes de Retry-After.

La liste complète est sur erreurs, et les fenêtres par offre sont sur limites de débit.

Remarques pratiques

  • Les détails d'une personne et les listes de crédits sont mis en cache 6 heures. La liste des populaires est mise en cache 30 minutes et ses pages vont de 1 à 500.
  • Ajoutez combined_credits via append_to_response au lieu de faire un second appel. Les deux façons renvoient les mêmes données.
  • Dans movie_credits, chaque entrée de cast a une valeur order, la position de la personne au générique de ce film. Les entrées de séries n'ont pas d'order : triez-les donc par first_air_date.
  • Utilisez known_for_department pour décider quelle liste montrer en premier : cast pour les acteurs, crew pour les réalisateurs et les scénaristes.
  • Cherchez une personne par son nom sur recherche, puis utilisez l'identifiant ici.