Które API wybrać
TMDB oferuje darmowe API dla kwalifikowanego użycia według własnych warunków, z kluczami API v3 i tokenami v4. Zanim wdrożysz produkt, przeczytaj te warunki użycia komercyjnego i atrybucji. Wybierz alternatywę, gdy chcesz płatnej umowy, limitu, pod który da się planować, albo więcej danych w każdej odpowiedzi. amodb to niezależne API mówiące protokołem TMDB v3 w odczycie, więc przejście oznacza nowy bazowy URL i nowy klucz. Jest tylko do odczytu, a kilka ścieżek TMDB nie jest dostępnych, jak wymieniono niżej.
Zostań przy TMDB, jeśli darmowe warunki pasują do twojego projektu i nic z następnej sekcji cię nie dotyczy.
Sygnały, że potrzebujesz alternatywy
Pięć kontroli pomaga zdecydować. Uruchom je na własnym ruchu i własnej umowie, a nie na liście funkcji.
| Sygnał | Co sprawdzić | Jak odpowiada amodb |
|---|---|---|
| Warunki komercyjne | Przeczytaj warunki API, którego używasz dziś, pod kątem użycia komercyjnego i atrybucji | Płatne plany, przedpłacone, bez automatycznego odnawiania |
| Szczytowy ruch | Policz żądania w najbardziej obciążonej minucie | Stały limit 20, 40 lub 120 żądań na minutę na klucz |
| Dane na ekran | Wypisz dodatkowe wywołania za stroną jednego tytułu | append_to_response przyjmuje też ratings, moods, soundtracks, wikidata i showtimes |
| Język interfejsu | Sprawdź każdy język, który dostarczasz | 14 języków, wszystko inne wraca do en |
| Koszt wyjścia | Policz linie kodu, które nazywają dostawcę | Te same ścieżki i JSON na udostępnianych endpointach, więc wyjście to też tylko zmiana bazowego URL |
Trafienia w cache też się liczą. Sprawdzenie klucza i limitu działa przed cache na edge, więc powtórzone żądanie nadal zużywa jedno z twoich żądań na minutę. Planuj według łącznej liczby żądań, a nie chybień cache.
Porównanie funkcji
| Funkcja | TMDB | amodb |
|---|---|---|
| Model cenowy | Darmowe API dla kwalifikowanego użycia według własnych warunków | Okresy przedpłacone 1, 3, 6, 12 lub 24 miesiące |
| Darmowy plan | Tak, dla kwalifikowanego użycia | Brak, ani wersji próbnej |
| Uwierzytelnianie | Klucz v3 w api_key albo token v4 jako Bearer | api_key lub Bearer, klucz z 32 znaków szesnastkowych |
| Format odpowiedzi | JSON | 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 | Tak | Tak |
| Obrazy | Tak, z własnego hosta obrazów | img.amodb.dev, te same tokeny rozmiarów, bez klucza |
| Oceny | Ocena użytkowników TMDB, inne źródła sprawdź w ich dokumentacji | Wynik TMDB plus IMDb, Kinopoisk, Metacritic i Rotten Tomatoes, gdy znane |
| Metody zapisu | Metody konta, list i ocen | Niedostępne, odpowiadają 405 |
| Limit żądań | Sprawdź ich dokumentację | 20, 40 lub 120 na minutę na klucz |
| Użycie komercyjne | Sprawdź ich warunki użycia komercyjnego i atrybucji | Sprzedawane jako płatne API, zobacz cennik |
| Zgodność | Definiuje protokół v3 | Większość ścieżek odczytu v3 plus OMDb |
Czym amodb się różni
- Limity, które możesz odczytać. Każda odpowiedź z kluczem niesie
X-RateLimit-Limit,X-RateLimit-RemainingiX-RateLimit-Resetw sekundach. 429 dodajeRetry-After. Liczby wyjaśnia strona limity żądań. - Dodatkowe bloki w jednym wywołaniu. Oceny z pięciu źródeł, mierniki nastroju, ścieżki dźwiękowe, fakty z Wikidata i seanse kinowe przychodzą przez
append_to_response, więc strona jednego tytułu może użyć jednego żądania. - Więcej źródeł zewnętrznych ID.
/3/findrozwiązujeimdb_id,tvdb_id,wikidata_idikinopoisk_id, a takżefacebook_id,twitter_idiinstagram_id. Zobacz wyszukiwanie po zewnętrznym ID. - OMDb na tym samym kluczu.
https:/odpowiada na wywołania w stylu OMDb z parametrem/ api.amodb.dev/ omdb/ apikey, co pomaga, gdy dwa twoje systemy używają różnych protokołów. - Znane czasy cache. Szczegóły i obsada zostają 6 godzin na edge, trending i discover 30 minut, wyszukiwanie 10 minut, konfiguracja 24 godziny, a obrazy 30 dni.
Kiedy TMDB pasuje lepiej
- Darmowe projekty. Jeśli twoje użycie spełnia darmowe warunki, TMDB nic nie kosztuje i amodb nie może tego dorównać.
- Użytkownikowe metody zapisu. TMDB oferuje metody zapisu konta, sesji, ocen i list. amodb odpowiada na nie 405 i status_code 37, więc aplikacja, która pozwala ludziom logować się i oceniać tytuły, powinna zostawić TMDB dla tej części.
- Kanały zmian. TMDB wymienia ID, które się zmieniły. amodb nie ma takiego kanału, więc odświeżasz według własnego harmonogramu.
- Języki poza 14. amodb nie udostępnia tekstu interfejsu po niemiecku, japońsku ani koreańsku i wraca do angielskiego. Tytuły oryginalne nadal przychodzą w
original_titleioriginal_name. Inne języki w TMDB sprawdź w ich dokumentacji. - Warunki, które już zostały zaakceptowane. Jeśli przegląd prawny dla TMDB jest zrobiony, przejście kosztuje cię kolejny przegląd.
Czego amodb nie udostępnia
Przed przełączeniem sprawdź swój kod z tą listą. Pełna tabela jest na stronie amodb vs TMDB.
| Wywołanie TMDB | Odpowiedź amodb |
|---|---|
| Zapisy konta, sesji, ocen i list | 405, status_code 37 |
| Changes, aggregate credits, wyszukiwanie wpisów obsady i recenzji, zawartość grup odcinków | 404, status_code 34 |
| Tłumaczenia osób, obrazy i tłumaczenia kolekcji, firm i sieci | 404, status_code 34 |
| Lista recenzji filmu lub serialu | 200, pusta dla większości tytułów |
| Obrazy, wideo i tłumaczenia sezonów | 200, puste |
| Zewnętrzne ID sezonów i odcinków | 200, wszystkie null |
Dwa zachowania są ciche. Nazwa w append_to_response, której amodb nie zna, na przykład aggregate_credits, jest ignorowana bez błędu. Parametr include_adult też jest ignorowany, bo tytuły i osoby dla dorosłych nigdy nie są udostępniane.
Przejście na amodb
- Wybierz plan na stronie cennik i utwórz klucz w panelu konta.
- Zamień bazowy URL i klucz w jednym miejscu, jak niżej.
- Odczytaj
images.secure_base_urlz/3/configuration, aby linki do obrazów używałyimg.amodb.dev. - Usuń wywołania metod zapisu i ścieżek z powyższej tabeli.
- Obsłuż 429, czekając
Retry-Aftersekund.
const config = {
// before: baseUrl held your current TMDB v3 base URL
baseUrl: 'https://api.amodb.dev/3',
apiKey: process.env.AMODB_KEY,
};
const res = await fetch(`${config.baseUrl}/movie/550?language=en-US`, {
headers: { Authorization: `Bearer ${config.apiKey}` },
});
if (!res.ok) throw new Error(`request failed with status ${res.status}`);
const movie = await res.json();
console.log(movie.title, movie.release_date);Przed przełączeniem uruchom istniejące testy na obu bazowych URL. Wspólny kształt nie gwarantuje identycznych wartości, więc porównaj próbkę własnych tytułów. Pełny przewodnik jest w szybkim starcie, a tabela obok siebie na stronie amodb vs TMDB.
Obsługa błędów się przenosi
Nieudane wywołania zwracają treść TMDB {"success": false,, więc kod rozgałęziający po status_code nie wymaga przepisania.
| HTTP | status_code | Typowa przyczyna |
|---|---|---|
| 401 | 7 | Brak klucza lub literówka |
| 401 | 10 | Klucz zawieszony |
| 402 | 36 | Okres przedpłaty dobiegł końca |
| 404 | 34 | Nie znaleziono ID albo ścieżka, której amodb nie udostępnia |
| 405 | 37 | Metoda zapisu, którą twój kod nadal wywołuje |
| 429 | 25 | Więcej żądań, niż plan dopuszcza w 60 sekund |
402 traktuj jako sygnał do ręcznego odnowienia, bo nic nie odnawia się automatycznie. Pełna lista jest na stronie błędy.
Cennik
amodb jest przedpłacone. Wybierz okres 1, 3, 6, 12 lub 24 miesięcy, za który 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 dostaje wszystkie dane i nic nie odnawia się automatycznie. Nie ma darmowego planu ani wersji próbnej. Aktualne kwoty są na stronie cennik.