מה מתאים לפרויקט טלוויזיה
TheTVDB מתמקד בטלוויזיה ושומר כמה סדרי פרקים לסדרה, כולל סדר שידור, סדר DVD וסדר מוחלט, במודל של מפתח API. לפני שמתכננים מוצר מסחרי, את תנאי הרישוי ראו במסמכים שלהם. בחרו ב-amodb כשאתם רוצים סדרות, סרטים ואנשים ממפתח אחד, עם נתיבי TMDB v3 ו-14 שפות. בחרו ב-TheTVDB כשמספור חלופי מדויק הוא לב האפליקציה, כי amodb מציג את קבוצות הפרקים של סדרה אבל לא מגיש את מה שבתוכן.
איך נתוני טלוויזיה מתמפים בין השניים
המושגים מתיישרים, אבל השמות שונים. הטבלה הזו מכסה את מה שאפליקציית טלוויזיה קוראת בדרך כלל.
| צורך | הגישה של TheTVDB | קריאה ב-amodb |
|---|---|---|
| סדרה אחת | רשומת סדרה לפי מזהה TVDB | GET /3/tv/1396, אחרי חיפוש tvdb_id |
| רשימת עונות | ראו במסמכים שלהם | המערך seasons בפרטי הסדרה |
| עונה אחת עם פרקים | ראו במסמכים שלהם | GET / |
| פרק אחד | ראו במסמכים שלהם | GET / |
| אילו סדרים קיימים | סדר שידור, סדר DVD וסדר מוחלט | GET / |
| פרקים בתוך סדר אחד | ראו במסמכים שלהם | לא קיים, / מחזיר 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.
{
"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.
השוואת תכונות
| תכונה | TheTVDB | amodb |
|---|---|---|
| מודל תמחור | מודל של מפתח 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_בפרטי הסדרה מוסיף את IMDb וציונים אחרים בקריאה אחת.to_ response= ratings - כותרות פשוטות לקביעת קצב.
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 שלה ריקים תמיד, ולכן מפו עונות ופרקים לפי מספר.
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 אחוז הנחה, וכל מסלול מקבל את כל הנתונים. אין מסלול חינמי. הסכומים מופיעים בעמוד תמחור.