Wyszukiwanie aktora i jego filmografii

GET /3/person/{person_id} zwraca biografię, dane urodzenia i ścieżkę do zdjęcia profilowego jednej osoby. Dodaj append_to_response=combined_credits, a ta sama odpowiedź zawiera też wszystkie role filmowe i serialowe. ID to numeryczne ID osób używane przez TMDB, na przykład 31 dla Toma Hanksa.

Dostajesz rekord osoby, filmografię obsady i ekipy, zdjęcia profilowe oraz listy do odkrywania. Aktorzy, reżyserzy i scenarzyści są w tych samych endpointach i różnią się wartością known_for_department.

Jakie dane dostajesz

EndpointZwraca
GET /3/person/{person_id}name, biography, birthday, deathday, place_of_birth, known_for_department, profile_path, imdb_id
GET /3/person/{person_id}/movie_creditsRole filmowe w cast i stanowiska w crew
GET /3/person/{person_id}/tv_creditsTo samo dla seriali
GET /3/person/{person_id}/combined_creditsFilmy i seriale w jednej liście, oznaczone media_type
GET /3/person/{person_id}/imagesTablica profiles ze zdjęciami
GET /3/person/popularLista popularnych osób z paginacją
GET /3/search/personOsoby pasujące do query

Start w 3 krokach

  1. Wybierz plan na stronie cennik. Wszystkie plany zwracają te same dane i różnią się tylko liczbą żądań na minutę.
  2. Wygeneruj klucz w panelu konta.
  3. Wyślij GET /3/person/31 z Authorization: Bearer YOUR_API_KEY albo użyj api_key w query string.

Przykładowe żądanie

To wywołanie pobiera Toma Hanksa wraz z combined credits. Przykład w Pythonie zostawia role filmowe z datą premiery, sortuje je od najnowszych i wypisuje pięć, a do tego URL zdjęcia.

bashpy
curl -s "https://api.amodb.dev/3/person/31?language=en-US&append_to_response=combined_credits" \
  -H "Authorization: Bearer $AMODB_KEY"
import os
import requests

BASE = "https://api.amodb.dev/3"
HEADERS = {"Authorization": f"Bearer {os.environ['AMODB_KEY']}"}

r = requests.get(
    f"{BASE}/person/31",
    params={"language": "en-US", "append_to_response": "combined_credits"},
    headers=HEADERS,
    timeout=10,
)
r.raise_for_status()
person = r.json()

movies = [
    c for c in person["combined_credits"]["cast"]
    if c["media_type"] == "movie" and c.get("release_date")
]
movies.sort(key=lambda c: c["release_date"], reverse=True)

print(person["name"], person["birthday"], person["known_for_department"])
if person.get("profile_path"):
    print("Photo:", "https://img.amodb.dev/t/p/w342" + person["profile_path"])
for c in movies[:5]:
    print(c["release_date"][:4], c["title"], "as", c.get("character") or "n/a")

Przycięta odpowiedź dla language=en-US. combined_credits jest przycięte do 2 wierszy obsady i 1 wiersza ekipy, a biografia jest skrócona.

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...",
  "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",
  "combined_credits": {
    "cast": [
      {
        "adult": false,
        "backdrop_path": "/owUcU7WcM42uPXIVJHglDQceY5R.jpg",
        "genre_ids": [
          12,
          16,
          35
        ],
        "id": 1084244,
        "original_language": "en",
        "original_title": "Toy Story 5",
        "overview": "",
        "popularity": 158.5027,
        "poster_path": "/sfQtVlIHljToOwYjhe21KPGzZWK.jpg",
        "release_date": "2026-06-17",
        "title": "Toy Story 5",
        "video": false,
        "vote_average": 8.285,
        "vote_count": 2649,
        "media_type": "movie",
        "credit_id": "65edd5772790bf01634423c9",
        "character": "Woody (voice)",
        "order": 0
      },
      {
        "adult": false,
        "backdrop_path": "/1dvOCqKgBcXvfqzVPmAAM5Rv4PP.jpg",
        "genre_ids": [
          16,
          35,
          10751
        ],
        "id": 863,
        "original_language": "en",
        "original_title": "Toy Story 2",
        "overview": "",
        "popularity": 49.6885,
        "poster_path": "/4rbcp3ng8n1MKHjpeqW0L7Fnpzz.jpg",
        "release_date": "1999-10-30",
        "title": "Toy Story 2",
        "video": false,
        "vote_average": 7.6,
        "vote_count": 15484,
        "media_type": "movie",
        "credit_id": "5ac0152ec3a368443f034084",
        "character": "Woody (voice)",
        "order": 0
      }
    ],
    "crew": [
      {
        "adult": false,
        "backdrop_path": "/23GjGDQdMHW5C2UYwSV00fE3FNi.jpg",
        "first_air_date": "2001-09-09",
        "genre_ids": [
          18,
          10768
        ],
        "id": 4613,
        "name": "Band of Brothers",
        "origin_country": [],
        "original_language": "en",
        "original_name": "Band of Brothers",
        "overview": "",
        "popularity": 63.5427,
        "poster_path": "/pGzV187ogXzgJrvPRy2YPi29ofH.jpg",
        "vote_average": 8.608,
        "vote_count": 4424,
        "media_type": "tv",
        "credit_id": "5257765d760ee36aaa522862",
        "department": "Production",
        "job": "Executive Producer"
      }
    ]
  }
}

Budowanie filmografii

Osoba może występować w cast i w crew tego samego tytułu, na przykład aktor, który także reżyseruje. Traktuj obie tablice jako osobne listy i scal je we własnym widoku. Wiersze filmów i seriali używają różnych nazw pól, więc czytaj właściwe.

PoleWierszeZnaczenie
media_typecombined creditsmovie lub tv
title lub namewiersze filmów lub serialiWyświetlany tytuł
release_date lub first_air_datewiersze filmów lub serialiKlucz sortowania, może być pusty
charactercastNazwa roli
job, departmentcrewNa przykład Director w Directing
credit_idobaID wiersza roli

Sortuj po dacie, wiersze bez daty dawaj na koniec i usuwaj duplikaty po parze id i media_type. Wiersze obsady seriali niosą episode_count, ale amodb zwraca tam 0, więc nie używaj tego pola do liczenia odcinków. amodb nie udostępnia GET /3/credit/{credit_id} ani aggregate_credits. Szczegóły pól obsady i ekipy są na stronie obsada i ekipa.

Zdjęcia profilowe

profile_path łączy się z hostem obrazów: https://img.amodb.dev/t/p/{size}{profile_path}. Użyj w185 dla miniatur na listach, h632 dla strony profilu i original do pobierania. Obrazy nie wymagają klucza i są w cache przez 30 dni.

Dla więcej niż jednego zdjęcia wywołaj GET /3/person/{person_id}/images. Tablica profiles ma file_path, width, height, aspect_ratio i vote_average, więc możesz wybrać najwyżej ocenianą fotografię. Tabele rozmiarów i srcset są na stronie obrazy.

Popularne osoby, wyszukiwanie i wyszukiwanie po ID

  • GET /3/person/popular?page=1 zwraca listę z paginacją. Strony biegną od 1 do 500, a lista jest w cache przez 30 minut.
  • GET /3/search/person?query=tom+hanks dopasowuje po nazwisku. W cache przez 10 minut.
  • GET /3/find/{external_id}?external_source=imdb_id mapuje ID nazwiska z IMDb na osobę. W odpowiedzi czytaj person_results. Zobacz wyszukiwanie po zewnętrznym ID.

Jak wypada w porównaniu

MożliwośćWłasny scraping stronAPI z metadanymi i darmowym planemamodb
FilmografiaPrzejść jedną stronę na każdą rolęSprawdź ich dokumentacjęcombined_credits w jednym wywołaniu
Podział obsady i ekipyParsować nagłówki sekcjiSprawdź ich dokumentacjęTablice cast i crew
ZdjęciaPobierać i zmniejszać samodzielnieSprawdź ich dokumentacjęStałe rozmiary na img.amodb.dev, bez klucza
Wyszukiwanie po nazwiskuObsługiwać formularz wyszukiwania stronySprawdź ich dokumentacjęGET /3/search/person
Mapowanie IDDopasowywać po nazwiskuSprawdź ich dokumentację/3/find z imdb_id
JęzykiJedna lokalizacja na stronęSprawdź ich dokumentację14 języków przez language

Cennik

Płacisz z góry za 1, 3, 6, 12 lub 24 miesiące. Dłuższe okresy mają zniżkę 0, 10, 20, 30 lub 40 procent, a plany nigdy nie odnawiają się same. Trzy plany dopuszczają 20, 40 i 120 żądań na minutę i każdy zwraca wszystkie endpointy osób. Siatka obsady filmu kosztuje jedno żądanie credits, bo imiona i ścieżki do zdjęć przychodzą razem z nią, a strona osoby kosztuje jedno żądanie z dołączonymi credits. Wybierz tempo odpowiednie do liczby odsłon stron. Brak darmowego planu. Zacznij na stronie cennik.