ההשוואה בקצרה

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

התאמת נקודות קצה

כל שורה מציגה נתיב קריאה של TMDB v3 ואת אופן ההתנהגות שלו ב-https://api.amodb.dev/3.

תחוםנתיב ב-TMDB v3ב-amodb
פרטי סרט/movie/{movie_id}זהה, עם חמישה ערכים נוספים ל-append_to_response
פרטי סדרה/tv/{series_id}זהה, אבל בלי השדה type, ו-created_by ריק ברוב הסדרות
עונות ופרקים/tv/{series_id}/season/{season_number}אותו מבנה. תמונות, סרטונים ותרגומים של עונה ריקים, ו-external_ids של עונות ופרקים הם null
אנשים/person/{person_id}זהה, עם combined_credits, movie_credits, tv_credits, external_ids ו-images (תמונות פרופיל בלבד)
קרדיטים/movie/{movie_id}/creditsזהה. בפרקים cast ריק
חיפוש/search/multiזהה, נשמר במטמון 10 דקות
גילוי/discover/movieזהה, נשמר במטמון 30 דקות
טרנדים/trending/{media_type}/{time_window}זהה, נשמר במטמון 30 דקות
רשימות/movie/popularזהה, page בין 1 ל-500
תמונות/movie/{movie_id}/imagesאותו מבנה, הקבצים נטענים מ-img.amodb.dev
סרטונים/movie/{movie_id}/videosזהה
תרגומים/movie/{movie_id}/translationsזהה, מוגשות 14 שפות
מילות מפתח/movie/{movie_id}/keywordsזהה
ביקורות/movie/{movie_id}/reviewsמחזיר 200, אבל רק לכותרים מעטים יש ביקורות, ולכן רשימה ריקה היא דבר רגיל
אוספים/collection/{collection_id}זהה, 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 תמיד ריקים
קבוצות פרקים/tv/{series_id}/episode_groupsמציג את הקבוצות של סדרה, בלי התוכן שלהן

מה 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
/person/{person_id}/translations, tagged_images ו-/person/latest404, status_code 34
images, translations ו-alternative_names של אוספים, חברות ורשתות404, status_code 34
/configuration/timezones404, status_code 34
כל מה שתחת account, authentication, guest_session ו-list, וכל נתיב /rating או /account_states405, status_code 37

אם מוסיפים aggregate_credits או changes ל-append_to_response, amodb מתעלם מהשם בלי שגיאה, ולכן המפתח פשוט חסר בגוף התגובה.

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

תכונהTMDBamodb
מודל תמחורחינם לשימוש מתאים, לפי התנאים של TMDBתשלום מראש, 1 עד 24 חודשים לרכישה
מסלול חינמיכן, לשימוש מתאיםאין, וגם אין תקופת ניסיון
אימותמפתח v3 ב-api_key, או אסימון v4 כ-Bearerapi_key או Bearer עם מפתח הקסדצימלי של 32 תווים
פורמט תגובהJSONJSON, אותם שדות בנתיבים שהוא מגיש
שפותראו במסמכים שלהם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_code 22.
  • ריק בכוונה. תמונות, סרטונים ותרגומים של עונה ו-description של חברה ריקים תמיד. ביקורות ו-created_by בסדרה מלאים רק בכותרים מעטים. external_ids של עונות ופרקים הם כולם null.
  • כותרים למבוגרים. include_adult מתעלמים ממנו. כותרים ואנשים למבוגרים לא מוגשים לעולם ומחזירים 404.
  • תמונות. נתיב ה-CDN הוא https://img.amodb.dev/t/p/{size}/{file}. אין צורך במפתח, והקבצים נשמרים במטמון 30 יום.
  • מגבלות. החלון הוא 60 שניות נעות לכל מפתח. הכותרות מציגות את הכמות שנותרה, וגם פגיעות מטמון נספרות, כי בדיקת המגבלה רצה קודם.
  • עצמאות. הקטלוג מגיע ממקורות ציבוריים ופתוחים ומהעשרה משלנו. מבנה משותף לא מבטיח ערכים זהים בכל שדה של כל כותר.

מתי TMDB מתאים יותר

  • שימוש חינמי מתאים. אין צורך בתשלום, ו-amodb לא יכול להתחרות בזה.
  • כתיבה. דירוג כותר, בניית רשימה והתחברויות של חשבון עובדים ב-TMDB. ב-amodb הם מחזירים 405.
  • פידים של שינויים. TMDB מציג את המזהים שהשתנו. ל-amodb אין פיד כזה, ולכן מרעננים לפי לוח הזמנים שלכם.
  • קרדיטים מצטברים ושליפת קרדיט. שניהם מחזירים 404 ב-amodb. השתמשו ב-/credits על הכותר.
  • צורכי שפה רחבים יותר. אם הממשק שלכם צריך שפה מחוץ ל-14, בדקו קודם את TMDB.
  • אישור קיים. צוות שכבר אישר את TMDB בבדיקה משפטית צריך לשקול את העלות של בדיקה שנייה.

מעבר ל-amodb

השינוי הוא שורה אחת לכל בקשה.

Shell
# 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"

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

JavaScript
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');
}

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

  1. בחרו מסלול בעמוד תמחור, ואז צרו מפתח בלוח הבקרה של החשבון.
  2. העבירו את כתובת הבסיס ואת המפתח להגדרות.
  3. קראו את images.secure_base_url מ-/3/configuration.
  4. חפשו בקוד קריאות כתיבה ואת הנתיבים מהטבלה של מה שאינו קיים. השאירו את הכתיבה ב-TMDB והחליפו את השאר.
  5. הוסיפו טיפול ב-429 שממתין Retry-After שניות. ראו מגבלות קצב ושגיאות.

תמחור

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