API קרדיטים
נקודות הקצה של קרדיטים מחזירות את השחקנים והצוות של סרט ב-GET /3/movie/{movie_id}/credits, ושל סדרות, עונות ופרקים תחת /3/tv. ה-JSON זהה ל-TMDB v3, כולל credit_id, order, department ו-job. קרדיטים של פרק מוסיפים מערך guest_stars לצד crew, והמערך cast שלהם ריק. amodb לא מציע קרדיטים מצטברים לסדרות.
קבלת קרדיטים של סרט
GET / מחזיר שני מערכים לסרט אחד: cast לאנשים שמופיעים על המסך ו-crew לאנשים שעבדו מאחורי המצלמה. כל פריט מחזיק את מזהה האדם, כך שאפשר לפתוח את הרשומה המלאה בעמוד אנשים. אותם נתונים זמינים גם בתוך תגובת הסרט עם append_.
הדוגמה קוראת את Inception, מדפיסה את הבמאי ומציגה את חמשת השחקנים הראשונים בקרדיטים.
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:/. |
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 /. בתגובה יש כיום 52 שחקנים ו-735 אנשי צוות, ולכן כאן שני המערכים קוצרו לשניים:
{
"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:/ ומקבלים language.
| שיטה ונתיב | מה מוחזר |
|---|---|
GET / | שחקנים וצוות של הסדרה, פריט אחד לכל אדם ותפקיד. |
GET / | שחקנים וצוות של עונה אחת. |
GET / | crew ו-guest_stars של פרק אחד. cast הוא מערך ריק. |
אותם נתונים זמינים עם append_ בנתיבי הסדרה, העונה והפרק. מבנה הפריט זהה לקרדיטים של סרט שלמעלה. לשחקני אורח בפרק יש character ו-order, ולפריטי צוות יש department ו-job.
GET /, עם מערכים שקוצרו לשני פריטים:
{
"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. לרשימת שחקנים של סדרה, קראו את / ומיינו את cast לפי order.
קריאת שחקנים וצוות באפליקציה
| משימה | איך |
|---|---|
| להציג את הבמאי | בחרו את פריטי crew ש-job שלהם שווה ל-Director. לסרט יכולים להיות כמה. |
| להציג את השחקנים הראשיים | מיינו את cast לפי order וקחו את 10 הראשונים. |
| לקבץ את הצוות | קבצו לפי department. אדם עם שני תפקידים מופיע פעמיים, ולכן מזגו לפי ה-id של האדם. |
| להציג את השחקנים של סדרה | קראו את קרדיטי הסדרה ומיינו את cast לפי order. |
| לרשום את כל המחלקות והתפקידים | קראו את רשימת החיפוש שמתוארת בעמוד ז'אנרים ורשימות חיפוש. |
שגיאות
| HTTP | status_code | מתי |
|---|---|---|
| 401 | 7 | המפתח חסר או שגוי. |
| 402 | 36 | תקופת המסלול הסתיימה. |
| 404 | 34 | הסרט, הסדרה, העונה או הפרק לא קיימים, או שהנתיב אינו מוצע. |
| 405 | 37 | קראתם לשיטת כתיבה. |
| 429 | 25 | מעל הבקשות שלכם לדקה. המתינו Retry-After שניות. |
פרטים בעמודים שגיאות ומגבלות קצב.
הערות מעשיות
- קרדיטים נשמרים במטמון 6 שעות, כמו פרטים. שחקן חדש יכול להופיע רק אחרי כל כך הרבה זמן.
- הפקה גדולה יכולה לפרט מאות אנשי צוות. חתכו את המערכים לפני שמציגים אותם.
profile_pathהוא null לאנשים בלי תמונה. השתמשו ב-w185לשורות ברשימה וב-h632לתצוגות פרטים.- רשומות סרטים וסדרות נמצאות בעמודים סרטים וסדרות טלוויזיה. רשומות עונות ופרקים בעמוד עונות ופרקים.