קבלת כל הפרקים של עונה
GET / מחזיר עונה עם מערך episodes המלא שלה. לכל פרק יש episode_number, name, overview, air_date, runtime ו-still_path. המזהים הם המזהים המספריים של TMDB, למשל 1396 עבור Breaking Bad.
מקבלים עונות, פרקים עם תאריכים ומשכים, תמונות סצנה, את הפרק הבא והאחרון ששודרו בסדרה, ואת רשימת הסדרים החלופיים של הפרקים. שדות טקסט עוקבים אחרי הפרמטר language, ותקציר נשאר ריק כשאין תרגום.
אילו נתונים מקבלים
| נקודת קצה | מה מוחזר |
|---|---|
GET /3/tv/{tv_id} | סיכום seasons, number_of_seasons, status, next_episode_to_air, last_episode_to_air |
GET / | עונה אחת עם כל ה-episodes שלה |
GET / | פרק אחד עם crew ו-guest_stars |
GET / | שם, type ומספר הפרקים של כל סדר חלופי שהוגדר לסדרה |
שדות של פרק:
| שדה | סוג | הערות |
|---|---|---|
id, show_id | integer | מזהה הפרק ומזהה הסדרה. show_id מופיע ברשימות עונות וב-next_episode_to_air, לא בנתיב של פרק בודד |
episode_number, season_number | integer | המיקום בעונה |
episode_type | string | למשל standard |
name, overview | string | מתורגמים לפי language |
air_date | string או null | YYYY-MM-DD, ריק או null כשלא הוכרז |
runtime | integer או null | דקות |
still_path | string או null | מצרפים ל-https:/ |
vote_average, vote_count | number, integer | כרגע 0 בפרקים |
production_code | string | קוד אולפן, לעיתים קרובות ריק |
crew, guest_stars | array | אנשים שמופיעים בקרדיטים של הפרק, עם אותם שדות כמו חבר צוות שחקנים |
מתחילים בשלושה שלבים
- בחרו מסלול בעמוד תמחור. כל המסלולים מחזירים את אותם נתוני פרקים, ורק קצב הבקשות שונה.
- צרו מפתח בלוח הבקרה של החשבון ושמרו אותו במשתנה סביבה.
- בקשו
/3/tv/{tv_id}/season/1עם המפתח ככותרת Bearer או כ-api_key.
בקשה לדוגמה
הדוגמה שולפת את עונה 1 של Breaking Bad (מזהה סדרה 1396) באנגלית. תוכנית ה-Go מפענחת אותה למבנים עם טיפוסים ומדפיסה שורה לכל פרק עם תאריך השידור, המשך וכתובת תמונת הסצנה.
curl -s "https://api.amodb.dev/3/tv/1396/season/1?language=en-US" \
-H "Authorization: Bearer $AMODB_KEY"package main
import (
"encoding/json"
"fmt"
"net/http"
"os"
"time"
)
type Episode struct {
EpisodeNumber int `json:"episode_number"`
Name string `json:"name"`
AirDate string `json:"air_date"`
Runtime int `json:"runtime"`
StillPath *string `json:"still_path"`
}
type Season struct {
Name string `json:"name"`
SeasonNumber int `json:"season_number"`
Episodes []Episode `json:"episodes"`
}
func main() {
client := &http.Client{Timeout: 10 * time.Second}
url := "https://api.amodb.dev/3/tv/1396/season/1?language=en-US"
req, err := http.NewRequest("GET", url, nil)
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer "+os.Getenv("AMODB_KEY"))
res, err := client.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
if res.StatusCode != http.StatusOK {
panic(fmt.Sprintf("amodb returned %s", res.Status))
}
var season Season
if err := json.NewDecoder(res.Body).Decode(&season); err != nil {
panic(err)
}
fmt.Println(season.Name)
for _, e := range season.Episodes {
still := "no still"
if e.StillPath != nil {
still = "https://img.amodb.dev/t/p/w300" + *e.StillPath
}
fmt.Printf("S%02dE%02d %s %3d min %s %s\n",
season.SeasonNumber, e.EpisodeNumber, e.AirDate, e.Runtime, e.Name, still)
}
}תגובה מקוצרת: 2 מתוך 7 הפרקים, עם חבר צוות אחד ושחקן אורח אחד בכל אחד.
{
"air_date": "2008-01-20",
"episodes": [
{
"air_date": "2008-01-20",
"episode_number": 1,
"episode_type": "standard",
"id": 62085,
"name": "Pilot",
"overview": "When an unassuming high school chemistry teacher discovers he has a rare form...",
"production_code": "",
"runtime": 59,
"season_number": 1,
"show_id": 1396,
"still_path": "/ydlY3iPfeOAvu8gVqrxPoMvzNCn.jpg",
"vote_average": 0,
"vote_count": 0,
"crew": [
{
"department": "Camera",
"job": "Director of Photography",
"credit_id": "52b7029219c29533d00dd2c1",
"adult": false,
"gender": 2,
"id": 2483,
"known_for_department": "Camera",
"name": "约翰·托尔",
"original_name": "约翰·托尔",
"popularity": 1.1957,
"profile_path": "/cfL9A6tC7L5Ps5fq1o3WpVKGMb1.jpg"
}
],
"guest_stars": [
{
"character": "Steven Gomez",
"credit_id": "5271b489760ee35b3e0881a7",
"order": 8,
"adult": false,
"gender": 2,
"id": 61535,
"known_for_department": "Acting",
"name": "史蒂文·迈克尔·奎扎达",
"original_name": "史蒂文·迈克尔·奎扎达",
"popularity": 1.7511,
"profile_path": "/pVYrDkwI6GWvCNL2kJhpDJfBFyd.jpg"
}
]
},
{
"air_date": "2008-01-27",
"episode_number": 2,
"episode_type": "standard",
"id": 62086,
"name": "Cat's in the Bag...",
"overview": "Walt and Jesse attempt to tie up loose ends. The desperate situation gets mor...",
"production_code": "",
"runtime": 49,
"season_number": 1,
"show_id": 1396,
"still_path": "/AbMoecO0ZZio0LcgeLxlzdyGs6X.jpg",
"vote_average": 0,
"vote_count": 0,
"crew": [
{
"department": "Camera",
"job": "Director of Photography",
"credit_id": "52b7049c19c2953b63015013",
"adult": false,
"gender": 2,
"id": 17948,
"known_for_department": "Camera",
"name": "Reynaldo Villalobos",
"original_name": "Reynaldo Villalobos",
"popularity": 0.904,
"profile_path": "/4YlfhHDRZWhbRgeqT2Bwl1u5p9j.jpg"
}
],
"guest_stars": [
{
"character": "Krazy-8",
"credit_id": "52725845760ee3046b09426e",
"order": 504,
"adult": false,
"gender": 2,
"id": 1046460,
"known_for_department": "Acting",
"name": "Max Arciniega",
"original_name": "Max Arciniega",
"popularity": 1.4399,
"profile_path": "/eqKAJKPpt41KpsLIkkBnAY4HMAL.jpg"
}
]
}
],
"name": "Season 1",
"overview": "High school chemistry teacher Walter White's life is suddenly transformed by...",
"id": 3572,
"poster_path": "/91EIXdWxmp2mHNRsSuDW3WyDJLj.jpg",
"season_number": 1,
"vote_average": 0
}שליפת סדרה שלמה
amodb לא מקבל ערכים בסגנון season/1 ב-append_to_response, ולכן קריאות העונות נשארות נפרדות. קראו קודם את number_of_seasons ואת הרשימה seasons מפרטי הסדרה, ואז בקשו כל עונה בלולאה.
const base = 'https://api.amodb.dev/3';
const headers = { Authorization: `Bearer ${process.env.AMODB_KEY}` };
async function get(path) {
const res = await fetch(base + path, { headers });
if (!res.ok) throw new Error(`amodb returned ${res.status} for ${path}`);
return res.json();
}
const show = await get('/tv/1396');
for (const { season_number } of show.seasons) {
const season = await get(`/tv/1396/season/${season_number}`);
console.log(season.name, season.episodes.length);
}seasons כולל עונה 0 כשיש לסדרה פרקים מיוחדים, ולכן Breaking Bad עולה קריאת פרטים אחת ועוד 6 קריאות עונה. סדרה עם 10 עונות עולה 11 בקשות. הפרטים נשמרים בקצה במטמון 6 שעות, ולכן שמרו את התוצאה ורעננו אותה לפי לוח זמנים.
תאריכי שידור ומה בא אחר כך
GET /3/tv/{tv_id} כולל את next_episode_to_air ואת last_episode_to_air, אובייקטי פרק מלאים עם name, air_date, season_number, episode_number, runtime ו-still_path. הערך next_episode_to_air הוא null כשלא הוכרז דבר. שלבו אותו עם status (למשל Returning Series, Ended או Canceled) כדי להחליט אם להציג ספירה לאחור.
air_date הוא תאריך לוח שנה בלי שעה ביום. השוו אותו לתאריך של היום כדי לסמן פרקים חדשים. ללוח של מה משודר, הרשימות airing_today ו-on_the_air בעמוד טרנדים ורשימות נשמרות במטמון 30 דקות.
תמונות סצנה ומשכים
השתמשו ב-w185 או ב-w300 לשורות ברשימה וב-original לגודל מלא. גדלי תמונות הסצנה הם w92, w185, w300 ו-original. לפרק יכולה להיות חסרה תמונת סצנה, ולכן הציגו תמונת מחדל כש-still_path הוא null. שרת התמונות לא דורש מפתח, ראו תמונות.
runtime הוא בדקות ויכול להיות null. כדי להציג זמן צפייה רצוף לעונה, סכמו את runtime על פני episodes וספרו null כ-0. הוסיפו append_ לנתיב של פרק בודד כדי לקבל אובייקט credits ורשימת stills. מערך cast של הפרק ריק, והאנשים נמצאים ב-crew וב-guest_stars. פרטים בעמודים עונות ופרקים וקרדיטים.
סדרים חלופיים עם קבוצות פרקים
סדרות מסוימות נצפות בסדר שונה מזה ששודרו בו. GET / מציג את הסדרים שהוגדרו לסדרה. בכל פריט יש id, name, description, type, episode_count, group_count ו-network. המערך results ריק כשלא הוגדר דבר.
type | סדר |
|---|---|
| 1 | תאריך שידור מקורי |
| 2 | מוחלט |
| 3 | DVD |
| 4 | דיגיטלי |
| 5 | קשת עלילה |
| 6 | הפקה |
| 7 | טלוויזיה |
amodb מחזיר רק את הרשימה הזו. הוא לא מציע GET /, ולכן הפרקים שבתוך קבוצה אינם זמינים. את נתוני הפרקים קראו מנקודות הקצה של עונות.
איך זה בהשוואה
| יכולת | גירוד דפי פרקים | API למטא-נתונים עם מסלול חינמי | amodb |
|---|---|---|---|
| עונה מלאה | שליפת דף אחד לכל עונה | ראו במסמכים שלהם | קריאה אחת, כולל מערך episodes |
| סדרה שלמה | סריקה של כל עונה | ראו במסמכים שלהם | קריאה אחת לכל עונה, הרשומות ב-seasons |
| תאריכי שידור | ניתוח טקסט | ראו במסמכים שלהם | air_date ועוד next_episode_to_air |
| תמונות סצנה | הורדה ושינוי גודל | ראו במסמכים שלהם | גדלים קבועים ב-img.amodb.dev, בלי מפתח |
| סדרי פרקים אחרים | לא קיים | ראו במסמכים שלהם | רשימת episode_groups, תוכן הקבוצות לא מוגש |
| שפות | אזור שפה אחד לכל אתר | ראו במסמכים שלהם | 14 שפות דרך language |
תמחור
המסלולים בתשלום מראש ל-1, 3, 6, 12 או 24 חודשים, עם 0, 10, 20, 30 או 40 אחוז הנחה לתקופות הארוכות יותר, והם לעולם לא מתחדשים מעצמם. המסלולים של 20, 40 ו-120 בקשות לדקה מחזירים כל נקודת קצה בעמוד הזה. רענון סדרה עולה בקשה אחת לפרטים ובקשה אחת לכל עונה. אין מסלול חינמי. בחרו מסלול בעמוד תמחור.