תפקידים שונים, כלים שונים

Trakt מתמקד בנתוני משתמש: היסטוריית צפייה, רשימות מעקב, דירוגים, לוחות שידורים והתחברות עם OAuth. יש לו גם נקודות קצה ציבוריות למטא-נתונים, והמסמכים שלו מציינים את המגבלות החלות. ל-amodb יש תפקיד אחד: מטא-נתונים של סרטים, סדרות ואנשים, שמוחזרים כ-JSON במבנה של TMDB v3. בחרו ב-Trakt למה שהמשתמשים שלכם עשו. בחרו ב-amodb למה שהכותר הוא. רוב האפליקציות שצריכות את שניהם קוראות לכל שירות עבור החלק שלו.

נתוני משתמש מול נתוני כותרים

משימהTraktamodb
היסטוריית צפייהיכולת מרכזיתלא קיים, שמרו בעצמכם
רשימות מעקב ורשימותיכולת מרכזיתלא קיים, בקשות כתיבה מחזירות 405
דירוגי משתמשיםיכולת מרכזיתלא קיים, בקשות כתיבה מחזירות 405
לוחות שידוריםלכל משתמש, ראו במסמכים שלהםnext_episode_to_air לכל סדרה ורשימות לפי לוח שידורים
התחברותOAuthמפתח בלבד, בלי התחברות משתמשים
מטא-נתונים של כותריםנקודות קצה ציבוריות, את המגבלות ראו במסמכים שלהםנקודות קצה לפרטים ב-14 שפות
שחקנים וצוותראו במסמכים שלהם/credits לכותר, combined_credits לאדם
תמונותראו במסמכים שלהםimg.amodb.dev, בלי מפתח
טריילריםראו במסמכים שלהם/videos עם type ו-official
שינויים מאז תאריךראו במסמכים שלהםלא קיים, אין פידים של שינויים

לקבלת לוחות שידורים, GET /3/tv/airing_today ו-GET /3/tv/on_the_air מציגים סדרות לפי תאריך שידור, ולכל רשומת סדרה יש next_episode_to_air משלה. עבור סדרה שהסתיימה השדה הזה הוא null. שתי הרשימות מתוארות בעמוד טרנדים ורשימות. את לוח השידורים של משתמש אחד מרכיבים מרשומות הצפייה שלכם.

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

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

במה amodb שונה

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

מתי Trakt מתאים יותר

  • כל מה שאישי. סקרובלינג (scrobbling), סנכרון היסטוריה, רשימות חברתיות ולוחות שידורים לכל משתמש הם יכולות של Trakt. ל-amodb אין חשבונות ואין שיטות כתיבה.
  • מצב בין מכשירים. אם משתמש מצפה לראות את אותם סימוני צפייה בטלפון ובטלוויזיה, המצב חייב לחיות בשירות משתמשים, ו-amodb אינו כזה.
  • אפליקציות OAuth קיימות. אם האפליקציה שלכם כבר מחזיקה אסימונים של Trakt, המשיכו להשתמש בהם. הוסיפו את amodb רק עבור נתוני הכותרים שאתם מביאים כיום ממקום אחר.

מעבר ל-amodb: חיבור הרשומות שלכם

אין צורך להעביר נתוני משתמש, כי ב-amodb אין כאלה. מחליפים את קריאות המטא-נתונים. פריטי Trakt נושאים מזהים של מאגרים אחרים (את השדות המדויקים ראו במסמכים שלהם), ולכן שמרו את מזהה TMDB או את מזהה IMDb ליד כל רשומת צפייה והשתמשו בו כאן.

PHP
<?php
declare(strict_types=1);

function amodb(string $path): array
{
    $ch = curl_init('https://api.amodb.dev/3' . $path);
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_TIMEOUT => 10,
        CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('AMODB_KEY')],
    ]);
    $body = curl_exec($ch);
    $status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    if ($status !== 200) {
        throw new RuntimeException("amodb returned $status");
    }
    return json_decode($body, true);
}

$show = amodb('/tv/1396?language=en-US');
$next = $show['next_episode_to_air'] ?? null;
echo $show['name'], ' ', $show['status'], PHP_EOL;
echo $next ? 'Next: ' . $next['air_date'] : 'No episode scheduled', PHP_EOL;

כשיש לכם רק מזהה IMDb, קראו פעם אחת ל-/3/find/tt0903747?external_source=imdb_id ושמרו את המזהה מתוך tv_results. תגובת 429 כוללת Retry-After, כמתואר בעמוד מגבלות קצב.

תכנון משימת רענון

ספריית משתמש של 200 סדרות דורשת 200 בקשות פרטים כדי לרענן פעם אחת. ב-20 בקשות לדקה זה לוקח 10 דקות, ב-40 זה לוקח 5, וב-120 זה לוקח פחות מ-2. בדיקת המפתח רצה לפני מטמון הקצה, ולכן גם קריאות חוזרות נספרות. ל-amodb אין פידים של שינויים, ולכן הוא לא יכול לומר אילו מזהים השתנו מאז תאריך מסוים. במקום זאת קראו את status ואת next_episode_to_air מתגובת הפרטים. רעננו לעיתים קרובות סדרות שעדיין משודרות, ורעננו לעיתים רחוקות סדרות שהסתיימו. הפרטים נשמרים במטמון 6 שעות, ולכן רענון תכוף יותר מכך מחזיר את אותם נתונים.

תמחור

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