קבלת הטריילר הרשמי של סרט
GET / מחזיר כל סרטון שמצורף לסרט. לכל פריט יש type, סימון official, קוד שפה, חותמת זמן published_at, וה-site וה-key שמזהים את הסרטון. השאירו את הפריטים שבהם type הוא Trailer ו-official הוא true, וקיבלתם את הטריילר.
מקבלים רשימת רשומות סרטונים שאפשר לדרג בעצמכם, לא זרם. התגובה נותנת שם לסרטון ואומרת איפה הוא נמצא, והעמוד שלכם בונה את הנגן מ-site ומ-key. אותו מבנה חוזר לסדרות. נתיבים של עונה ופרק עונים ברשימה ריקה.
אילו נתונים מקבלים
| נקודת קצה | מה מוחזר |
|---|---|
GET / | טריילרים, טיזרים, קטעים, פיצ'רטים, מאחורי הקלעים וטעויות צילום של סרט |
GET / | אותה רשימה לסדרה |
GET / | תמיד רשימת results ריקה |
GET / | תמיד רשימת results ריקה |
GET / עם append_ | פרטים וסרטונים בבקשה אחת |
שדות בכל סרטון:
| שדה | סוג | שימוש |
|---|---|---|
type | string | סוג הסרטון: Trailer, Teaser, Clip, Featurette, Behind the Scenes או Bloopers, כמו בעמוד הסרטונים |
official | boolean | true כשהסרטון מסומן כרשמי |
iso_639_1, iso_3166_1 | string | קודי שפה ומדינה של הסרטון |
key, site | string | מזהה הסרטון ושם האתר שמארח אותו, YouTube בכל סרטון שנראה |
size | integer | רזולוציה אנכית, 1080 בכל סרטון שנראה |
published_at | string | חותמת זמן ISO 8601, מתאימה למיון מהחדש לישן |
name, id | string | כותרת הסרטון והמזהה שלו, שהוא אותה מחרוזת כמו key |
מתחילים בשלושה שלבים
- בחרו מסלול בעמוד תמחור. כל מסלול מחזיר את כל הנתונים, ולכן בוחרים לפי בקשות לדקה.
- צרו מפתח בלוח הבקרה של החשבון. הוא 32 תווים הקסדצימליים באותיות קטנות.
- קראו ל-
GET /עם המפתח ב-3/ movie/ {movie_ id}/ videos api_keyאו בכותרתAuthorization: Bearer.
בקשה לדוגמה
הדוגמה מבקשת את הסרטונים של Inception (מזהה 27205), מדרגת אותם בקוד ומדפיסה את הטוב ביותר. הדירוג מציב קודם התאמות שפה, אחר כך Trailer לפני Teaser, אחר כך רשמי לפני לא רשמי, ואז את ה-published_at החדש ביותר.
curl -s "https://api.amodb.dev/3/movie/27205/videos" \
-H "Authorization: Bearer $AMODB_KEY"const BASE = 'https://api.amodb.dev/3';
const headers = { Authorization: `Bearer ${process.env.AMODB_KEY}` };
const TYPE_RANK = { Trailer: 0, Teaser: 2 };
function rank(video, lang) {
const language = video.iso_639_1 === lang ? 0 : 10;
const type = TYPE_RANK[video.type] ?? 4;
return language + type + (video.official ? 0 : 1);
}
async function pickTrailer(movieId, lang = 'en') {
const res = await fetch(`${BASE}/movie/${movieId}/videos`, { headers });
if (!res.ok) throw new Error(`amodb returned ${res.status}`);
const { results } = await res.json();
results.sort(
(a, b) => rank(a, lang) - rank(b, lang) || (b.published_at || '').localeCompare(a.published_at || ''),
);
return results[0] ?? null;
}
const trailer = await pickTrailer(27205, 'en');
console.log(trailer ? `${trailer.name}: ${trailer.site} ${trailer.key}` : 'no video found');תגובה מקוצרת: 2 הראשונים מתוך 42 סרטונים. הרשימה מכילה את כל השפות.
{
"id": 27205,
"results": [
{
"iso_639_1": "en",
"iso_3166_1": "US",
"name": "The Dream Sequence",
"key": "mpj9dL7swwk",
"site": "YouTube",
"size": 1080,
"type": "Clip",
"official": true,
"published_at": "2022-03-09T01:00:20Z",
"id": "mpj9dL7swwk"
},
{
"iso_639_1": "en",
"iso_3166_1": "US",
"name": "35mm Theatrical Trailer #3",
"key": "cdx31ak4KbQ",
"site": "YouTube",
"size": 1080,
"type": "Trailer",
"official": false,
"published_at": "2022-03-07T06:00:19Z",
"id": "cdx31ak4KbQ"
}
]
}בחירת הסרטון להפעלה
לכותר יש לעיתים קרובות כמה טריילרים רשמיים (הודעה ראשונה, גרסה סופית) לצד טיזרים וקטעים. דרגו אותם בסדר קבוע כדי שהעמוד לא יסיים עם סרטון טעויות צילום במקום הטריילר.
| עדיפות | סינון | שימוש אופייני |
|---|---|---|
| 1 | Trailer, רשמי, השפה מתאימה | הסרטון להפעלה |
| 2 | Trailer, לא רשמי | העלאות אזוריות או של מעריצים כשאין רשמי |
| 3 | Teaser, רשמי | קטעים קצרים לפני היציאה |
| 4 | Clip, Featurette | גיבוי כדי שהמקום לא יישאר ריק |
| לדלג | Behind the Scenes, Bloopers | להציג ברשימת בונוסים נפרדת |
שוויון פותרים לפי published_at. מהחדש לישן נותן את הגרסה האחרונה, מהישן לחדש נותן את ההודעה הראשונה.
שפות של טריילרים
סרטונים מסומנים בשפה דרך iso_639_1, ולכותר אחד יכולים להיות טריילרים בכמה שפות. ל-Inception יש 42 סרטונים ב-9 שפות. amodb מחזיר את כולם בתגובה אחת. הפרמטרים language ו-include_video_language אינם משפיעים על נקודות הקצה של סרטונים, ולכן בחרו את השפה בקוד.
| שלב | מה לעשות |
|---|---|
| 1 | השאירו את הסרטונים ש-iso_639_1 שלהם תואם למשתמש, למשל ru |
| 2 | אם אין התאמה, השאירו en |
| 3 | אם עדיין אין התאמה, השאירו את השאר |
דרגו בתוך כל שלב לפי סוג וסימון official כמו בדוגמה. שפות הסרטונים נגזרות מההעלאה, לא מ-14 שפות הממשק שמפורטות בעמוד שפות, ולכן טריילר יכול להיות cs או he.
טריילרים לסדרות
טריילר של סדרה נמצא ב-/3/tv/1396/videos (Breaking Bad), שמכיל 9 טריילרים. פונקציית הדירוג למעלה עובדת כמו שהיא, כי השדות לא משתנים. נתיבי עונה ופרק כמו / עונים 200 עם רשימת results ריקה, ולכן קראו את רשימת הסדרה. את רשימת הנתיבים המלאה ראו בעמוד סרטונים וטריילרים.
בניית פס טריילרים
פס טריילרים של סרטים שמוצגים עכשיו דורש קריאת רשימה אחת וקריאה אחת לכל כותר. הקריאה GET / (ראו טרנדים ורשימות) ועוד עשר קריאות סרטונים הן 11 בקשות לעשרה כותרים. שמרו את ה-key שנבחר ליד מזהה הסרט. טריילרים משתנים לעיתים רחוקות, ולכן רעננו בחירה שמורה כל כמה שעות או כשכותר יוצא מחדש.
איך זה בהשוואה
| יכולת | גירוד דפים בעצמכם | API למטא-נתונים עם מסלול חינמי | amodb |
|---|---|---|---|
| סימון רשמי | ניחוש מכותרת הדף | ראו במסמכים שלהם | ערך בוליאני official בכל סרטון |
| סינון לפי סוג סרטון | ניתוח טקסט | ראו במסמכים שלהם | שישה ערכי type |
| בחירת שפה | אזור שפה אחד לכל דף | ראו במסמכים שלהם | iso_639_1 ו-iso_3166_1 בכל סרטון, מסננים בקוד שלכם |
| סדרות ופרקים | דפים נפרדים לסריקה | ראו במסמכים שלהם | סדרות משתמשות באותה נקודת קצה, רשימות עונה ופרק ריקות |
| תחזוקה | נשבר כשהמבנה משתנה | תלוי בספק | מבנה JSON יציב אחד |
| תנאים | הסיכון עליכם | ראו את התנאים שלהם | מסלולים בתשלום, ראו תמחור |
תמחור
המסלולים בתשלום מראש. קונים 1, 3, 6, 12 או 24 חודשים ומקבלים 0, 10, 20, 30 או 40 אחוז הנחה לתקופות הארוכות יותר. שום דבר לא מתחדש מעצמו. המסלולים של 20, 40 ו-120 בקשות לדקה מגישים כולם כל נקודת קצה בעמוד הזה, ולכן פס טריילרים עמוס הוא שאלה של קצב בלבד. אין מסלול חינמי ואין תקופת ניסיון. השוו מסלולים בעמוד תמחור.