Różne zadania, różne narzędzia
Trakt skupia się na danych użytkownika: historii oglądania, listach do obejrzenia, ocenach, kalendarzach i logowaniu przez OAuth. Ma też publiczne endpointy metadanych, a jego dokumentacja podaje obowiązujące limity. amodb ma jedno zadanie: metadane filmów, seriali i osób, zwracane jako JSON w kształcie TMDB v3. Wybierz Trakt dla tego, co zrobili twoi użytkownicy. Wybierz amodb dla tego, czym jest tytuł. Większość aplikacji potrzebujących obu wywołuje każdą usługę po swoją połowę.
Dane użytkownika a dane tytułów
| Zadanie | Trakt | amodb |
|---|---|---|
| Historia oglądania | Funkcja podstawowa | Niedostępne, zapisuj ją samodzielnie |
| Listy i listy do obejrzenia | Funkcja podstawowa | Niedostępne, zapisy zwracają 405 |
| Oceny użytkowników | Funkcja podstawowa | Niedostępne, zapisy zwracają 405 |
| Kalendarze | Dla użytkownika, sprawdź ich dokumentację | next_episode_to_air na serial i listy według ramówki |
| Logowanie | OAuth | Tylko klucz, bez logowania użytkownika |
| Metadane tytułów | Publiczne endpointy, limity sprawdź w ich dokumentacji | Endpointy szczegółów w 14 językach |
| Obsada i ekipa | Sprawdź ich dokumentację | /credits dla tytułu, combined_credits dla osoby |
| Obrazy | Sprawdź ich dokumentację | img.amodb.dev, klucz niepotrzebny |
| Zwiastuny | Sprawdź ich dokumentację | /videos z type i official |
| Zmienione od daty | Sprawdź ich dokumentację | Niedostępne, kanały zmian nie istnieją |
Do ramówek GET /3/tv/airing_today i GET /3/tv/on_the_air wypisują seriale według daty emisji, a każdy rekord serialu niesie własne next_episode_to_air. Dla zakończonego serialu to pole ma wartość null. Oba zestawienia opisuje strona trendy i listy. Kalendarz dla jednego użytkownika zbudujesz z własnych zapisów o oglądaniu.
Porównanie funkcji
| Funkcja | Trakt | amodb |
|---|---|---|
| Model cenowy | Sprawdź ich dokumentację | Okresy przedpłacone od 1 do 24 miesięcy |
| Darmowy plan | Sprawdź ich dokumentację | Brak, ani wersji próbnej |
| Uwierzytelnianie | OAuth dla danych użytkownika, dla publicznych wywołań sprawdź ich dokumentację | api_key lub nagłówek Bearer |
| Format odpowiedzi | JSON, sprawdź ich dokumentację | JSON w kształcie TMDB v3 |
| Języki | Sprawdź ich dokumentację | 14 języków interfejsu |
| Filmy | Tak | Tak |
| Seriale | Tak | Tak, z sezonami i odcinkami |
| Osoby | Sprawdź ich dokumentację | Tak |
| Obrazy | Sprawdź ich dokumentację | img.amodb.dev, te same tokeny rozmiarów co TMDB |
| Oceny | Oceny użytkowników, sprawdź ich dokumentację | Wyniki z IMDb, Kinopoisk, Metacritic, Rotten Tomatoes i TMDB, gdy znane |
| Limit żądań | Limity sprawdź w ich dokumentacji | 20, 40 lub 120 na minutę na klucz |
| Użycie komercyjne | Sprawdź ich dokumentację | Płatne plany, zobacz cennik |
| Zgodność | Własne API | Odczyty TMDB v3 i OMDb |
Czym amodb się różni
- Brak ekranu logowania dla twoich użytkowników. Wystarczy klucz po stronie serwera. Nikt nie łączy konta, więc nie ma tokena do odświeżania ani ekranu zgody do wyjaśniania.
- Szerokość pól. Czas trwania, gatunki, firmy produkcyjne, klasyfikacje wiekowe, tłumaczenia i słowa kluczowe pochodzą z endpointów szczegółów, w języku, o który prosisz.
- Opublikowane limity. Limit planu to liczba na minutę, a każda odpowiedź pokazuje, ile zostało. Z tych liczb możesz dobrać rozmiar synchronizacji w tle.
- Mierniki nastroju i ścieżki dźwiękowe. Rozszerzenia ze stron nastroje i ścieżki dźwiękowe dodają dane, które nie są częścią TMDB v3.
Kiedy Trakt pasuje lepiej
- Wszystko osobiste. Scrobbling, synchronizacja historii, listy społecznościowe i kalendarze dla poszczególnych użytkowników to funkcje Trakt. amodb nie ma kont ani metod zapisu.
- Stan między urządzeniami. Jeśli użytkownik oczekuje tych samych oznaczeń obejrzenia na telefonie i telewizorze, stan musi żyć w usłudze użytkownika, a amodb nią nie jest.
- Istniejące aplikacje z OAuth. Jeśli twoja aplikacja już trzyma tokeny Trakt, zachowujesz je. Dodaj amodb tylko dla danych tytułów, które teraz pobierasz gdzie indziej.
Przejście na amodb: łączenie rekordów
Nie migrujesz danych użytkowników, bo amodb żadnych nie trzyma. Zastępujesz wywołania metadanych. Pozycje Trakt niosą ID z innych baz (dokładne pola sprawdź w ich dokumentacji), więc zapisz ID z TMDB lub z IMDb obok każdego zapisu o oglądaniu i używaj go tutaj.
<?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;Gdy masz tylko ID z IMDb, wywołaj raz / i zachowaj ID z tv_results. 429 zawiera Retry-After, jak opisuje strona limity żądań.
Wymiarowanie zadania odświeżania
Biblioteka użytkownika z 200 serialami wymaga 200 żądań o szczegóły na jedno odświeżenie. Przy 20 żądaniach na minutę zajmuje to 10 minut, przy 40 zajmuje 5, a przy 120 mniej niż 2. Sprawdzenie klucza działa przed cache na edge, więc powtórzone wywołania też się liczą. amodb nie ma kanałów zmian, więc nie powie, które ID zmieniły się od daty. Zamiast tego odczytaj status i next_episode_to_air z odpowiedzi szczegółów. Seriale, które nadal są emitowane, odświeżaj często, a zakończone rzadko. Szczegóły zostają w cache 6 godzin, więc odświeżanie częstsze zwraca te same dane.
Cennik
amodb jest przedpłacone i nie odnawia się samo. Wybierz 1, 3, 6, 12 lub 24 miesiące, za które jest zniżka 0, 10, 20, 30 lub 40 procent, oraz jeden z trzech planów z 20, 40 lub 120 żądaniami na minutę. Każdy plan zwraca wszystkie dane i nie ma darmowego planu. Kwoty są na stronie cennik.