ההשוואה בקצרה
amodb הוא API עצמאי שמדבר באותו פרוטוקול כמו TMDB v3. לקוח שנכתב עבור TMDB קורא מ-amodb אחרי שמחליפים את כתובת הבסיס ואת המפתח, כל עוד הוא לא קורא לנתיב מהטבלה של הנתיבים שאינם קיימים, בהמשך. לכן הבחירה נוגעת לתנאים, לתוספות ולכמה פערים. TMDB מציע API חינמי לשימוש מתאים לפי התנאים שלו. amodb הוא API בתשלום לקריאה בלבד, עם 14 שפות, חמישה בלוקי נתונים נוספים ומגבלה שנספרת לכל מפתח.
התאמת נקודות קצה
כל שורה מציגה נתיב קריאה של TMDB v3 ואת אופן ההתנהגות שלו ב-https:/.
| תחום | נתיב ב-TMDB v3 | ב-amodb |
|---|---|---|
| פרטי סרט | /movie/{movie_id} | זהה, עם חמישה ערכים נוספים ל-append_to_response |
| פרטי סדרה | /tv/{series_id} | זהה, אבל בלי השדה type, ו-created_by ריק ברוב הסדרות |
| עונות ופרקים | / | אותו מבנה. תמונות, סרטונים ותרגומים של עונה ריקים, ו-external_ids של עונות ופרקים הם null |
| אנשים | /person/{person_id} | זהה, עם combined_credits, movie_credits, tv_credits, external_ids ו-images (תמונות פרופיל בלבד) |
| קרדיטים | / | זהה. בפרקים cast ריק |
| חיפוש | /search/multi | זהה, נשמר במטמון 10 דקות |
| גילוי | /discover/movie | זהה, נשמר במטמון 30 דקות |
| טרנדים | / | זהה, נשמר במטמון 30 דקות |
| רשימות | /movie/popular | זהה, page בין 1 ל-500 |
| תמונות | / | אותו מבנה, הקבצים נטענים מ-img.amodb.dev |
| סרטונים | / | זהה |
| תרגומים | / | זהה, מוגשות 14 שפות |
| מילות מפתח | / | זהה |
| ביקורות | / | מחזיר 200, אבל רק לכותרים מעטים יש ביקורות, ולכן רשימה ריקה היא דבר רגיל |
| אוספים | / | זהה, parts ממוין לפי תאריך יציאה |
| חברות ורשתות | /company/{company_id} | אותם מפתחות. description של חברה ריק ו-parent_company הוא null |
| ז'אנרים | /genre/movie/list | זהה |
| הגדרות | /configuration | אותם מפתחות, מארח התמונות הוא img.amodb.dev |
| חיפוש לפי מזהה חיצוני | /find/{external_id} | אותה נקודת קצה, בתוספת kinopoisk_id. tv_episode_results ו-tv_season_results תמיד ריקים |
| קבוצות פרקים | / | מציג את הקבוצות של סדרה, בלי התוכן שלהן |
מה amodb לא מציע
לקריאות האלה של TMDB v3 אין מקבילה. נתיבים לא מוכרים מחזירים 404 עם status_code 34, ושיטות כתיבה מחזירות 405 עם status_code 37.
| קריאה ב-TMDB v3 | התשובה של amodb |
|---|---|
/movie/changes, /tv/changes, /person/changes ו-changes תחת מזהה בודד | 404, status_code 34 |
aggregate_credits תחת סדרה או עונה | 404, status_code 34 |
/credit/{credit_id} ו-/review/{review_id} | 404, status_code 34 |
/tv/episode_group/{id} | 404, status_code 34 |
/, tagged_images ו-/person/latest | 404, status_code 34 |
images, translations ו-alternative_names של אוספים, חברות ורשתות | 404, status_code 34 |
/ | 404, status_code 34 |
כל מה שתחת account, authentication, guest_session ו-list, וכל נתיב /rating או /account_states | 405, status_code 37 |
אם מוסיפים aggregate_credits או changes ל-append_to_response, amodb מתעלם מהשם בלי שגיאה, ולכן המפתח פשוט חסר בגוף התגובה.
השוואת תכונות
| תכונה | TMDB | amodb |
|---|---|---|
| מודל תמחור | חינם לשימוש מתאים, לפי התנאים של TMDB | תשלום מראש, 1 עד 24 חודשים לרכישה |
| מסלול חינמי | כן, לשימוש מתאים | אין, וגם אין תקופת ניסיון |
| אימות | מפתח v3 ב-api_key, או אסימון v4 כ-Bearer | api_key או Bearer עם מפתח הקסדצימלי של 32 תווים |
| פורמט תגובה | JSON | JSON, אותם שדות בנתיבים שהוא מגיש |
| שפות | ראו במסמכים שלהם | 14 מוגשות, תגיות אחרות חוזרות ל-en |
| סרטים | כן | כן |
| סדרות | כן | כן |
| אנשים | כן | כן |
| תמונות | כן | img.amodb.dev, גדלים מ-w92 עד original |
| דירוגים | ציון המשתמשים של TMDB, מקורות אחרים ראו במסמכים שלהם | חמישה מקורות באובייקט אחד, כשהם ידועים |
| שיטות כתיבה | שיטות חשבון, רשימות ודירוג | אין, הן מחזירות 405 |
| מגבלת קצב | ראו במסמכים שלהם | 20, 40 או 120 לדקה לכל מפתח |
| שימוש מסחרי | את התנאים לשימוש מסחרי ולייחוס ראו אצלם | מסלולים בתשלום, ראו תמחור |
| תאימות | מגדיר את TMDB v3 | רוב נתיבי הקריאה של TMDB v3 ונתיב OMDb |
מה שונה בפירוט
- תנאים. TMDB מבקש שתקראו את התנאים שלו לשימוש מסחרי ולייחוס. amodb נמכר לפי תקופת תשלום מראש, בלי חידוש אוטומטי, בלי מסלול חינמי ובלי תקופת ניסיון.
- שפות. amodb מגיש en, ru, uk, be, zh, pt, bg, he, cs, ro, fr, pl, it ו-es. הוא מקבל תגיות של TMDB כמו
ru-RUו-pt-BR. גרמנית, יפנית וקוריאנית חוזרות ל-en, ואילוoriginal_titleשומר את הכותרת המקורית. את כיסוי השפות של TMDB ראו במסמכים שלהם. ראו שפות. - הרחבות.
append_to_responseמקבל גםmoods,soundtracks,ratings,wikidataו-showtimes, ולכל אחד יש נתיב משלו תחת סרטים וסדרות. - מזהים חיצוניים.
/3/findפותר אתimdb_id,tvdb_id,wikidata_id,kinopoisk_id,facebook_id,twitter_idו-instagram_id. המקורותfreebase_mid,freebase_id,tvrage_id,tiktok_idו-youtube_idמתקבלים אבל מחזירים מערכים ריקים.external_sourceחסר או לא מוכר מחזיר 400 עםstatus_code22. - ריק בכוונה. תמונות, סרטונים ותרגומים של עונה ו-
descriptionשל חברה ריקים תמיד. ביקורות ו-created_byבסדרה מלאים רק בכותרים מעטים.external_idsשל עונות ופרקים הם כולם null. - כותרים למבוגרים.
include_adultמתעלמים ממנו. כותרים ואנשים למבוגרים לא מוגשים לעולם ומחזירים 404. - תמונות. נתיב ה-CDN הוא
https:/. אין צורך במפתח, והקבצים נשמרים במטמון 30 יום./ img.amodb.dev/ t/ p/ {size}/ {file} - מגבלות. החלון הוא 60 שניות נעות לכל מפתח. הכותרות מציגות את הכמות שנותרה, וגם פגיעות מטמון נספרות, כי בדיקת המגבלה רצה קודם.
- עצמאות. הקטלוג מגיע ממקורות ציבוריים ופתוחים ומהעשרה משלנו. מבנה משותף לא מבטיח ערכים זהים בכל שדה של כל כותר.
מתי TMDB מתאים יותר
- שימוש חינמי מתאים. אין צורך בתשלום, ו-amodb לא יכול להתחרות בזה.
- כתיבה. דירוג כותר, בניית רשימה והתחברויות של חשבון עובדים ב-TMDB. ב-amodb הם מחזירים 405.
- פידים של שינויים. TMDB מציג את המזהים שהשתנו. ל-amodb אין פיד כזה, ולכן מרעננים לפי לוח הזמנים שלכם.
- קרדיטים מצטברים ושליפת קרדיט. שניהם מחזירים 404 ב-amodb. השתמשו ב-
/creditsעל הכותר. - צורכי שפה רחבים יותר. אם הממשק שלכם צריך שפה מחוץ ל-14, בדקו קודם את TMDB.
- אישור קיים. צוות שכבר אישר את TMDB בבדיקה משפטית צריך לשקול את העלות של בדיקה שנייה.
מעבר ל-amodb
השינוי הוא שורה אחת לכל בקשה.
# before: TMDB_BASE is your current TMDB v3 base URL
curl -s "$TMDB_BASE/movie/550?api_key=$TMDB_KEY"
# after
curl -s "https://api.amodb.dev/3/movie/550?api_key=$AMODB_KEY"לפני המעבר, השוו זו לצד זו את המבנה של כמה תגובות. הסקריפט הזה מדפיס מפתחות ברמה העליונה שצד אחד מחזיר והצד השני לא.
async function topLevelKeys(base, key, path) {
const res = await fetch(`${base}${path}?api_key=${key}`);
if (!res.ok) throw new Error(`${path} returned ${res.status}`);
return Object.keys(await res.json()).sort();
}
for (const path of ['/movie/550', '/tv/1396', '/person/31']) {
const current = await topLevelKeys(process.env.TMDB_BASE, process.env.TMDB_KEY, path);
const next = await topLevelKeys('https://api.amodb.dev/3', process.env.AMODB_KEY, path);
const missing = current.filter((k) => !next.includes(k));
console.log(path, missing.length ? `missing: ${missing.join(', ')}` : 'same keys');
}שדות אופציונליים יכולים להיות שונים בכותר מסוים, ולכן קראו מפתח חסר כרמז לבדיקה ולא כפסק דין. אחר כך עברו על הרשימה:
- בחרו מסלול בעמוד תמחור, ואז צרו מפתח בלוח הבקרה של החשבון.
- העבירו את כתובת הבסיס ואת המפתח להגדרות.
- קראו את
images.secure_base_urlמ-/3/configuration. - חפשו בקוד קריאות כתיבה ואת הנתיבים מהטבלה של מה שאינו קיים. השאירו את הכתיבה ב-TMDB והחליפו את השאר.
- הוסיפו טיפול ב-429 שממתין
Retry-Afterשניות. ראו מגבלות קצב ושגיאות.
תמחור
amodb הוא בתשלום מראש. בחרו 1, 3, 6, 12 או 24 חודשים, שמקנים 0, 10, 20, 30 או 40 אחוז הנחה, ואחד משלושה מסלולים של 20, 40 או 120 בקשות לדקה. כל מסלול מחזיר את כל הנתונים, ואף אחד מהם לא מתחדש מעצמו. הסכומים מופיעים בעמוד תמחור.