API קרדיטים

נקודות הקצה של קרדיטים מחזירות את השחקנים והצוות של סרט ב-GET /3/movie/{movie_id}/credits, ושל סדרות, עונות ופרקים תחת /3/tv. ה-JSON זהה ל-TMDB v3, כולל credit_id, order, department ו-job. קרדיטים של פרק מוסיפים מערך guest_stars לצד crew, והמערך cast שלהם ריק. amodb לא מציע קרדיטים מצטברים לסדרות.

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

קבלת קרדיטים של סרט

GET /3/movie/{movie_id}/credits מחזיר שני מערכים לסרט אחד: cast לאנשים שמופיעים על המסך ו-crew לאנשים שעבדו מאחורי המצלמה. כל פריט מחזיק את מזהה האדם, כך שאפשר לפתוח את הרשומה המלאה בעמוד אנשים. אותם נתונים זמינים גם בתוך תגובת הסרט עם append_to_response=credits.

הדוגמה קוראת את Inception, מדפיסה את הבמאי ומציגה את חמשת השחקנים הראשונים בקרדיטים.

bashjspyphpgo
curl -sSf "https://api.amodb.dev/3/movie/27205/credits?language=en-US" \
  -H "Authorization: Bearer $AMODB_KEY"
const url = 'https://api.amodb.dev/3/movie/27205/credits?language=en-US';
const res = await fetch(url, { headers: { Authorization: `Bearer ${process.env.AMODB_KEY}` } });
if (!res.ok) throw new Error(`amodb returned ${res.status}`);
const credits = await res.json();
const director = credits.crew.find((c) => c.job === 'Director');
console.log('Director:', director?.name);
for (const c of [...credits.cast].sort((a, b) => a.order - b.order).slice(0, 5)) {
  console.log(c.order, c.name, 'as', c.character);
}
import os
import requests

r = requests.get(
    "https://api.amodb.dev/3/movie/27205/credits",
    params={"language": "en-US"},
    headers={"Authorization": f"Bearer {os.environ['AMODB_KEY']}"},
    timeout=10,
)
r.raise_for_status()
credits = r.json()
director = next((c for c in credits["crew"] if c["job"] == "Director"), None)
print("Director:", director and director["name"])
for c in sorted(credits["cast"], key=lambda c: c["order"])[:5]:
    print(c["order"], c["name"], "as", c["character"])
<?php
$url = 'https://api.amodb.dev/3/movie/27205/credits?language=en-US';
$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");
}
$credits = json_decode($body, true);
usort($credits['cast'], fn ($a, $b) => $a['order'] <=> $b['order']);
foreach (array_slice($credits['cast'], 0, 5) as $c) {
    echo $c['order'], ' ', $c['name'], ' as ', $c['character'], PHP_EOL;
}
package main

import (
	"encoding/json"
	"fmt"
	"net/http"
	"os"
	"time"
)

type Credits struct {
	Cast []struct {
		Order     int    `json:"order"`
		Name      string `json:"name"`
		Character string `json:"character"`
	} `json:"cast"`
	Crew []struct {
		Name string `json:"name"`
		Job  string `json:"job"`
	} `json:"crew"`
}

func main() {
	req, _ := http.NewRequest("GET", "https://api.amodb.dev/3/movie/27205/credits?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 c Credits
	if err := json.NewDecoder(res.Body).Decode(&c); err != nil {
		panic(err)
	}
	for _, m := range c.Crew {
		if m.Job == "Director" {
			fmt.Println("Director:", m.Name)
		}
	}
	for i, a := range c.Cast {
		if i == 5 {
			break
		}
		fmt.Println(a.Order, a.Name, "as", a.Character)
	}
}

פרמטרים

  • movie_idנתיבחובה
    מזהה סרט מספרי, למשל 27205.
  • api_keyשאילתהאחד משניים
    המפתח שלכם. השתמשו בו או בכותרת Authorization: Bearer.
  • languageשאילתה
    תגית TMDB כמו en-US או fr-FR. תגיות מחוץ ל-14 שפות הבסיס חוזרות ל-en.

שדות התגובה

שדהחל עלהערות
idרמה עליונהמזהה הסרט, הסדרה, העונה או הפרק שהקרדיטים שייכים לו.
cast, crewרמה עליונהמערכי פריטים. קרדיטים של פרק מוסיפים guest_stars.
idכל פריטמזהה האדם. פתחו אותו עם אנשים.
name, original_nameכל פריטשם האדם.
known_for_departmentכל פריטהתפקיד העיקרי של האדם בכלל, לא התפקיד בכותר הזה.
gender, popularity, adultכל פריטאותה משמעות כמו ברשומת האדם.
profile_pathכל פריטנתיב תמונה או null. מצרפים ל-https://img.amodb.dev/t/p/{size}.
credit_idכל פריטמחרוזת שמזהה את הקרדיט הבודד הזה.
characterשחקנים, שחקני אורחשם התפקיד, ריק בחלק מהפריטים.
orderשחקנים, שחקני אורחמיקום בקרדיטים, 0 הוא הראשון.
departmentצוותקבוצה כמו Directing, Writing, Production, Camera, Editing, Sound, Art, Visual Effects, Lighting, Costume & Make-Up או Crew.
jobצוותתפקיד ספציפי, למשל Director, Screenplay או Editor.

תגובה לדוגמה

GET /3/movie/27205/credits?language=en-US. בתגובה יש כיום 52 שחקנים ו-735 אנשי צוות, ולכן כאן שני המערכים קוצרו לשניים:

JSON
{
  "id": 27205,
  "cast": [
    {
      "adult": false,
      "gender": 2,
      "id": 6193,
      "known_for_department": "Acting",
      "name": "Leonardo DiCaprio",
      "original_name": "Leonardo DiCaprio",
      "popularity": 9.3213,
      "profile_path": "/wo2hJpn04vbtmh0B9utCFdsQhxM.jpg",
      "character": "Dom Cobb",
      "credit_id": "52fe4534c3a368484e04de03",
      "order": 0
    },
    {
      "adult": false,
      "gender": 2,
      "id": 24045,
      "known_for_department": "Acting",
      "name": "Joseph Gordon-Levitt",
      "original_name": "Joseph Gordon-Levitt",
      "popularity": 5.6202,
      "profile_path": "/z2FA8js799xqtfiFjBTicFYdfk.jpg",
      "character": "Arthur",
      "credit_id": "52fe4534c3a368484e04de0b",
      "order": 1
    }
  ],
  "crew": [
    {
      "adult": false,
      "gender": 2,
      "id": 1025090,
      "known_for_department": "Crew",
      "name": "Jim Wilkey",
      "original_name": "Jim Wilkey",
      "popularity": 0.9114,
      "profile_path": "/peEdS7ZYHwEeMJAwInJj732AeYs.jpg",
      "credit_id": "6634553bad59b501286dab5f",
      "department": "Crew",
      "job": "Stunt Driver"
    },
    {
      "adult": false,
      "gender": 2,
      "id": 1741194,
      "known_for_department": "Sound",
      "name": "James Thatcher",
      "original_name": "James Thatcher",
      "popularity": 0.6215,
      "profile_path": null,
      "credit_id": "5bcdece8925141613e0216d3",
      "department": "Sound",
      "job": "Musician"
    }
  ]
}

קרדיטים של סדרות, עונות ופרקים

כל הנתיבים שלמטה חולקים את הבסיס https://api.amodb.dev/3 ומקבלים language.

שיטה ונתיבמה מוחזר
GET /tv/{series_id}/creditsשחקנים וצוות של הסדרה, פריט אחד לכל אדם ותפקיד.
GET /tv/{series_id}/season/{season_number}/creditsשחקנים וצוות של עונה אחת.
GET /tv/{series_id}/season/{season_number}/episode/{episode_number}/creditscrew ו-guest_stars של פרק אחד. cast הוא מערך ריק.

אותם נתונים זמינים עם append_to_response=credits בנתיבי הסדרה, העונה והפרק. מבנה הפריט זהה לקרדיטים של סרט שלמעלה. לשחקני אורח בפרק יש character ו-order, ולפריטי צוות יש department ו-job.

GET /3/tv/1399/season/1/episode/1/credits?language=en-US, עם מערכים שקוצרו לשני פריטים:

JSON
{
  "id": 63056,
  "cast": [],
  "crew": [
    {
      "department": "Writing",
      "job": "Writer",
      "credit_id": "5256c8a019c2956ff6046e2b",
      "adult": false,
      "gender": 2,
      "id": 9813,
      "known_for_department": "Writing",
      "name": "David Benioff",
      "original_name": "David Benioff",
      "popularity": 2.0354,
      "profile_path": "/xvNN5huL0X8yJ7h3IZfGG4O2zBD.jpg"
    },
    {
      "department": "Editing",
      "job": "Editor",
      "credit_id": "54eef2ab925141795f005d4f",
      "adult": false,
      "gender": 2,
      "id": 18077,
      "known_for_department": "Editing",
      "name": "Oral Norrie Ottey",
      "original_name": "Oral Norrie Ottey",
      "popularity": 0,
      "profile_path": null
    }
  ],
  "guest_stars": [
    {
      "character": "Benjen Stark",
      "credit_id": "5256c8b919c2956ff604836a",
      "order": 61,
      "adult": false,
      "gender": 2,
      "id": 119783,
      "known_for_department": "Acting",
      "name": "Joseph Mawle",
      "original_name": "Joseph Mawle",
      "popularity": 1.4645,
      "profile_path": "/1Ocb9v3h54beGVoJMm4w50UQhLf.jpg"
    },
    {
      "character": "Rickon Stark",
      "credit_id": "566a83bcc3a3683f56003604",
      "order": 80,
      "adult": false,
      "gender": 2,
      "id": 1050248,
      "known_for_department": "Acting",
      "name": "Art Parkinson",
      "original_name": "Art Parkinson",
      "popularity": 1.2594,
      "profile_path": "/ejAKOJME1DsvHECLWdQ7dEtXyyc.jpg"
    }
  ]
}

amodb לא מציע קרדיטים מצטברים לסדרות או חיפוש לפי credit_id. לרשימת שחקנים של סדרה, קראו את /tv/{series_id}/credits ומיינו את cast לפי order.

קריאת שחקנים וצוות באפליקציה

משימהאיך
להציג את הבמאיבחרו את פריטי crew ש-job שלהם שווה ל-Director. לסרט יכולים להיות כמה.
להציג את השחקנים הראשייםמיינו את cast לפי order וקחו את 10 הראשונים.
לקבץ את הצוותקבצו לפי department. אדם עם שני תפקידים מופיע פעמיים, ולכן מזגו לפי ה-id של האדם.
להציג את השחקנים של סדרהקראו את קרדיטי הסדרה ומיינו את cast לפי order.
לרשום את כל המחלקות והתפקידיםקראו את רשימת החיפוש שמתוארת בעמוד ז'אנרים ורשימות חיפוש.

שגיאות

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

פרטים בעמודים שגיאות ומגבלות קצב.

הערות מעשיות

  • קרדיטים נשמרים במטמון 6 שעות, כמו פרטים. שחקן חדש יכול להופיע רק אחרי כל כך הרבה זמן.
  • הפקה גדולה יכולה לפרט מאות אנשי צוות. חתכו את המערכים לפני שמציגים אותם.
  • profile_path הוא null לאנשים בלי תמונה. השתמשו ב-w185 לשורות ברשימה וב-h632 לתצוגות פרטים.
  • רשומות סרטים וסדרות נמצאות בעמודים סרטים וסדרות טלוויזיה. רשומות עונות ופרקים בעמוד עונות ופרקים.