מה מתאים לפרויקט טלוויזיה

TheTVDB מתמקד בטלוויזיה ושומר כמה סדרי פרקים לסדרה, כולל סדר שידור, סדר DVD וסדר מוחלט, במודל של מפתח API. לפני שמתכננים מוצר מסחרי, את תנאי הרישוי ראו במסמכים שלהם. בחרו ב-amodb כשאתם רוצים סדרות, סרטים ואנשים ממפתח אחד, עם נתיבי TMDB v3 ו-14 שפות. בחרו ב-TheTVDB כשמספור חלופי מדויק הוא לב האפליקציה, כי amodb מציג את קבוצות הפרקים של סדרה אבל לא מגיש את מה שבתוכן.

איך נתוני טלוויזיה מתמפים בין השניים

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

צורךהגישה של TheTVDBקריאה ב-amodb
סדרה אחתרשומת סדרה לפי מזהה TVDBGET /3/tv/1396, אחרי חיפוש tvdb_id
רשימת עונותראו במסמכים שלהםהמערך seasons בפרטי הסדרה
עונה אחת עם פרקיםראו במסמכים שלהםGET /3/tv/1396/season/1
פרק אחדראו במסמכים שלהםGET /3/tv/1396/season/1/episode/1
אילו סדרים קיימיםסדר שידור, סדר DVD וסדר מוחלטGET /3/tv/1396/episode_groups
פרקים בתוך סדר אחדראו במסמכים שלהםלא קיים, /3/tv/episode_group/{id} מחזיר 404
הפרק הבא לשידורראו במסמכים שלהםnext_episode_to_air בפרטי הסדרה

שדות הפרק משתמשים בשמות של TMDB: air_date, episode_number, season_number, runtime ו-still_path. ה-external_ids של עונות ופרקים הם כולם null, ולכן אי אפשר לקרוא מ-amodb מזהה TVDB של עונה או פרק בודדים. במקום זאת בצעו התאמה לפי season_number ו-episode_number. פרטים בעמוד עונות ופרקים.

מה רשימת קבוצות הפרקים מחזירה

קריאת הרשימה מראה אילו סדרים קיימים לסדרה. היא לא מחזירה את הפרקים שבתוכם.

שדהמשמעות
idמזהה הקבוצה, מחרוזת
nameשם הסדר, כמו DVD / PVOD
descriptionטקסט מהמקור, לעיתים קרובות ריק
typeמספר שמציין איזה סוג סדר זה
episode_countמספר הפרקים בסדר
group_countמספר הבלוקים בסדר, למשל עונות
networkאובייקט עם הרשת, או null

זו תגובה אמיתית עבור Breaking Bad.

JSON
{
  "id": 1396,
  "results": [
    {
      "description": "Seasons grouped as they appear on DVD, as well as paid video-on-demand services, such as Prime Video and YouTube.",
      "episode_count": 62,
      "group_count": 6,
      "id": "69f50757054263b7bc87e32a",
      "name": "DVD / PVOD",
      "network": null,
      "type": 3
    }
  ]
}

בחלק מהסדרות חוזר סדר שידור אחד ובאחרות כמה, ובחלק חוזר מערך results ריק. בדקו את הסדרות שחשובות לכם. מכיוון שהתוכן של קבוצה אינו קיים, אפליקציה שצריכה את מספר ה-DVD או את המספר המוחלט של כל פרק לא יכולה לקבל אותו מ-amodb.

השוואת תכונות

תכונהTheTVDBamodb
מודל תמחורמודל של מפתח API, את הרישוי ראו במסמכים שלהםתקופות בתשלום מראש של 1 עד 24 חודשים
מסלול חינמיראו במסמכים שלהםאין, וגם אין תקופת ניסיון
אימותמפתח API, את התהליך ראו במסמכים שלהםapi_key או כותרת Bearer
פורמט תגובהJSON, ראו במסמכים שלהםJSON במבנה של TMDB v3
שפותראו במסמכים שלהם14 שפות ממשק
סרטיםראו במסמכים שלהםכן
סדרותכן, זה הדגש המרכזי שלוכן, עם עונות ופרקים
אנשיםראו במסמכים שלהםכן
תמונותראו במסמכים שלהםimg.amodb.dev, בלי מפתח
דירוגיםראו במסמכים שלהםIMDb ועוד ארבעה מקורות כשהם ידועים
מגבלת קצבראו במסמכים שלהם20, 40 או 120 לדקה לכל מפתח
שימוש מסחריאת הרישוי ראו במסמכים שלהםמסלולים בתשלום, ראו תמחור
תאימותה-API שלוקריאות של TMDB v3 ו-OMDb

במה amodb שונה

  • מפתח אחד לכל הקטלוג. סדרה, השחקנים שלה, הטריילרים שלה וסרט שחולק איתה שחקן משתמשים כולם באותה כתובת בסיס ובאותה מגבלה.
  • דירוגים לצד מדריך הפרקים. append_to_response=ratings בפרטי הסדרה מוסיף את IMDb וציונים אחרים בקריאה אחת.
  • כותרות פשוטות לקביעת קצב. X-RateLimit-Remaining ו-X-RateLimit-Reset אומרים למשימת סנכרון כמה בקשות נותרו בחלון של 60 שניות.
  • שמות מקוריים נשמרים. סדרה שומרת את original_name בעוד name עוקב אחרי ה-language שלכם, מה שעוזר כשמציגים כותרת בשפת המקור.

מתי TheTVDB מתאים יותר

  • הסדר הוא המוצר. אם המשתמשים שלכם מתווכחים על סדר DVD מול סדר שידור מול סדר מוחלט, TheTVDB רואה בכך חלק מרכזי במודל שלו. amodb נותן שמות לסדרים של סדרה אבל לא מחזיר את הפרקים שלהם, ואילו קבוצות קיימות משתנה מסדרה לסדרה.
  • אינטגרציות קיימות. אם התהליך שלכם כבר שומר מזהים של TheTVDB וקורא את הסדרים שלו, השאירו את החלק הזה והוסיפו את amodb עבור הנתונים הנוספים.
  • מיקוד בטלוויזיה. אם אתם אף פעם לא מציגים סרטים או אנשים, למקור שנבנה סביב טלוויזיה יש פחות מה ללמוד.

מעבר ל-amodb

מפו פעם אחת את מזהי ה-TVDB ששמרתם. אחר כך השתמשו במזהה amodb בכל קריאה. נקודת הקצה find פותרת מזהי סדרות בלבד. המערכים tv_season_results ו-tv_episode_results שלה ריקים תמיד, ולכן מפו עונות ופרקים לפי מספר.

JavaScript
const key = process.env.AMODB_KEY;
const headers = { Authorization: `Bearer ${key}` };
const base = 'https://api.amodb.dev/3';

async function getJson(path) {
  const res = await fetch(`${base}${path}`, { headers });
  if (!res.ok) throw new Error(`${path} returned ${res.status}`);
  return res.json();
}

const found = await getJson('/find/81189?external_source=tvdb_id');
const show = found.tv_results[0];
console.log(show.id, show.name);

const groups = await getJson(`/tv/${show.id}/episode_groups`);
for (const g of groups.results) {
  console.log(g.name, g.type, g.episode_count);
}

הבקשה הראשונה מחזירה את Breaking Bad עם מזהה 1396. השנייה מציגה את הסדרים הקיימים לסדרה הזו, עם הגדלים שלהם. כדי להשוות מספור למה ששמור אצלכם היום, קראו את סדר השידור מ-/tv/{id}/season/{n} והשאירו כל סדר חלופי בצד של TheTVDB. בצעו את הבדיקה הזו על עשר הסדרות הנצפות ביותר אצלכם לפני שאתם מעבירים את השאר.

כל קריאה נספרת כבקשה אחת בחלון של 60 שניות, ותגובת 429 נושאת Retry-After. ראו חיפוש לפי מזהה חיצוני ומגבלות קצב.

תמחור

amodb הוא בתשלום מראש וללא חידוש אוטומטי. בחרו 1, 3, 6, 12 או 24 חודשים ואחד משלושה מסלולים של 20, 40 או 120 בקשות לדקה. תקופות ארוכות יותר מקנות 10, 20, 30 או 40 אחוז הנחה, וכל מסלול מקבל את כל הנתונים. אין מסלול חינמי. הסכומים מופיעים בעמוד תמחור.