API פרטי אדם

נקודת הקצה של אדם מחזירה שחקן, במאי או איש צוות לפי מזהה ב-GET /3/person/{person_id}. ה-JSON זהה ל-TMDB v3: ביוגרפיה, תאריך לידה, מקום לידה, תמונת פרופיל ומחלקה. נקודות קצה נלוות מחזירות קרדיטים של סרטים, סדרות ומשולבים, מזהים חיצוניים, תמונות פרופיל והרשימה הפופולרית.

עודכן צפייה כ-Markdown

קבלת פרטי אדם

GET /3/person/{person_id} מחזיר את רשומת הליבה של אדם אחד: שם, ביוגרפיה, תאריך לידה, מקום לידה, מחלקה, תמונת פרופיל ומזהה IMDb. המזהה הוא מזהה האדם המספרי של TMDB, ולכן Tom Hanks נשאר 31 ו-Leonardo DiCaprio נשאר 6193. אנשים שעובדים מול המצלמה ומאחוריה חולקים מרחב מזהים אחד.

הדוגמה קוראת את Tom Hanks ומצרפת את הקרדיטים המשולבים שלו, ואז מדפיסה את השם, תאריך הלידה, המחלקה הראשית וכמה קרדיטי משחק יש לו.

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

פרמטרים

  • person_idנתיבחובה
    מזהה אדם מספרי, למשל 31.
  • api_keyשאילתהאחד משניים
    המפתח שלכם. השתמשו בו או בכותרת Authorization: Bearer.
  • languageשאילתה
    תגית TMDB כמו en-US או ru-RU. הביוגרפיה מוחזרת בשפה הזו כשיש תרגום.
  • append_to_responseשאילתה
    רשימה מופרדת בפסיקים: movie_credits, tv_credits, combined_credits, external_ids, images. שמות לא מוכרים מתעלמים מהם.

שדות התגובה

שדהסוגהערות
idintegerמזהה האדם.
namestringשם להצגה, ב-language המבוקש כשיש תרגום.
also_known_asarrayשמות וכתיבים חלופיים.
biographystringטקסט מתורגם, ריק כשאין תרגום.
birthday, deathdaystring או nullYYYY-MM-DD. הערך deathday הוא null לאנשים חיים.
place_of_birthstring או nullטקסט חופשי.
genderinteger0 לא צוין, 1 נקבה, 2 זכר, 3 לא בינארי.
known_for_departmentstringהתפקיד הראשי, למשל Acting או Directing.
imdb_idstring או nullמזהה אדם ב-IMDb כמו nm0000158.
homepagestring או nullאתר רשמי.
profile_pathstring או nullמצרפים ל-https://img.amodb.dev/t/p/{size}. ראו תמונות.
popularitynumberציון יחסי שמשמש את הרשימה הפופולרית.
adultbooleanתמיד false. אנשי תוכן למבוגרים לא מוגשים לעולם.

תגובה לדוגמה

GET /3/person/31?language=en-US, עם ביוגרפיה מקוצרת:

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

נקודות קצה לפילמוגרפיה

שלוש נקודות קצה מציגות את מה שאדם עבד עליו. כולן מקבלות language ומחזירות את המפתחות id, cast ו-crew. כשמצרפים אותן עם append_to_response, המפתח id מושמט.

שיטה ונתיבמה מוחזרפרמטרים נוספים
GET /person/{person_id}/movie_creditsסרטים, עם character ו-order ב-cast ו-department ו-job ב-crewאין
GET /person/{person_id}/tv_creditsסדרות, עם character ב-cast ו-department ו-job ב-crewאין
GET /person/{person_id}/combined_creditsסרטים וסדרות יחד, כל אחד עם media_type שהוא movie או tvאין

פריטי סרטים נושאים title ו-release_date. פריטי סדרות נושאים name ו-first_air_date, ולפריטי שחקנים בסדרות יש גם מפתח episode_count שערכו 0 בנתונים הנוכחיים. הפריטים נושאים גם credit_id, genre_ids, poster_path, vote_average ושאר שדות הרשימה. הקטע שלמטה ממיין קרדיטים משולבים לפי תאריך ומדפיס את חמשת החדשים ביותר.

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

רשימות ותמונות

שיטה ונתיבמה מוחזרפרמטרים נוספים
GET /person/popularרשימה מדורגת של אנשים פופולריים עם כותרי known_forlanguage, page
GET /person/{person_id}/imagesתמונות פרופיל במערך profilesאין
GET /person/{person_id}/external_idsimdb_id, wikidata_id, facebook_id, instagram_id, tiktok_id, twitter_id, youtube_idאין

פריטים פופולריים מחזיקים id, name, original_name, known_for_department, gender, profile_path, popularity ומערך known_for. העמודים נעים בין 1 ל-500. תמונות פרופיל מכוסות בעמוד תמונות, ומזהים חיצוניים בעמוד חיפוש לפי מזהה חיצוני.

amodb לא מציע תרגומי אנשים, את רשומת האדם החדשה ביותר, תמונות מתויגות או שינויים. בקשו את הביוגרפיה בשפה שאתם צריכים עם הפרמטר language במקום.

שגיאות

HTTPstatus_codeמתי
4017המפתח חסר או שגוי.
40236תקופת המסלול הסתיימה.
40434אין אדם עם המזהה הזה, אדם מתחום התוכן למבוגרים, או נתיב שאינו מוצע.
40537קראתם לשיטת כתיבה.
42925מעל הבקשות שלכם לדקה. המתינו Retry-After שניות.

הרשימה המלאה בעמוד שגיאות, והחלונות לכל מסלול בעמוד מגבלות קצב.

הערות מעשיות

  • פרטי אדם ורשימות קרדיטים נשמרים במטמון 6 שעות. הרשימה הפופולרית נשמרת 30 דקות והעמודים נעים בין 1 ל-500.
  • הוסיפו combined_credits דרך append_to_response במקום לבצע קריאה שנייה. שתי הדרכים מחזירות אותם נתונים.
  • ב-movie_credits לכל פריט cast יש ערך order, מיקום האדם בקרדיטים של הסרט הזה. לפריטי סדרות אין order, ולכן מיינו אותם לפי first_air_date.
  • השתמשו ב-known_for_department כדי להחליט איזו רשימה להציג קודם: cast לשחקנים, crew לבמאים ולתסריטאים.
  • חפשו אדם לפי שם בעמוד חיפוש, ואז השתמשו כאן במזהה שלו.