A comparação em resumo

O amodb é uma API independente que fala o mesmo protocolo do TMDB v3. Um cliente escrito para o TMDB lê do amodb depois que você troca a URL base e a chave, desde que não chame um caminho da tabela de não oferecidos abaixo. A escolha, portanto, passa por termos, extras e algumas lacunas. O TMDB oferece uma API gratuita para uso elegível, sob seus próprios termos. O amodb é uma API paga, somente de leitura, com 14 idiomas, cinco blocos extras de dados e um limite contado por chave.

Paridade de endpoints

Cada linha mostra um caminho de leitura do TMDB v3 e como ele se comporta em https://api.amodb.dev/3.

ÁreaCaminho do TMDB v3No amodb
Detalhes de filmes/movie/{movie_id}Igual, com mais cinco valores de append_to_response
Detalhes de séries/tv/{series_id}Igual, mas sem o campo type, e created_by vem vazio na maioria das séries
Temporadas e episódios/tv/{series_id}/season/{season_number}Mesmo formato. Imagens, vídeos e traduções de temporada vêm vazios, e os external_ids de temporada e episódio são null
Pessoas/person/{person_id}Igual, com combined_credits, movie_credits, tv_credits, external_ids e images (somente perfis)
Créditos/movie/{movie_id}/creditsIgual. Em episódios, cast vem vazio
Busca/search/multiIgual, com cache de 10 minutos
Descoberta/discover/movieIgual, com cache de 30 minutos
Em alta/trending/{media_type}/{time_window}Igual, com cache de 30 minutos
Listas/movie/popularIgual, page de 1 a 500
Imagens/movie/{movie_id}/imagesMesmo formato, os arquivos carregam de img.amodb.dev
Vídeos/movie/{movie_id}/videosIgual
Traduções/movie/{movie_id}/translationsIgual, 14 idiomas atendidos
Palavras-chave/movie/{movie_id}/keywordsIgual
Resenhas/movie/{movie_id}/reviewsResponde 200, mas só alguns títulos têm resenhas, então uma lista vazia é normal
Coleções/collection/{collection_id}Igual, com parts ordenado por data de lançamento
Produtoras e emissoras/company/{company_id}Mesmas chaves. O description de uma produtora vem vazio e parent_company é null
Gêneros/genre/movie/listIgual
Configuração/configurationMesmas chaves, o host de imagens é img.amodb.dev
Busca por ID externo/find/{external_id}Mesmo endpoint, mais kinopoisk_id. tv_episode_results e tv_season_results sempre vêm vazios
Grupos de episódios/tv/{series_id}/episode_groupsLista os grupos de uma série, sem o conteúdo deles

Não oferecido no amodb

Estas chamadas do TMDB v3 não têm equivalente. Caminhos desconhecidos respondem 404 com status_code 34, e métodos de escrita respondem 405 com status_code 37.

Chamada do TMDB v3Resposta do amodb
/movie/changes, /tv/changes, /person/changes e changes sob um ID404, status_code 34
aggregate_credits sob uma série ou uma temporada404, status_code 34
/credit/{credit_id} e /review/{review_id}404, status_code 34
/tv/episode_group/{id}404, status_code 34
/person/{person_id}/translations, tagged_images e /person/latest404, status_code 34
images, translations e alternative_names de coleções, produtoras e emissoras404, status_code 34
/configuration/timezones404, status_code 34
Tudo sob account, authentication, guest_session e list, e qualquer caminho /rating ou /account_states405, status_code 37

Se você adicionar aggregate_credits ou changes a append_to_response, o amodb ignora o nome sem erro, então a chave simplesmente não aparece no corpo.

Comparação de recursos

RecursoTMDBamodb
Modelo de preçoGratuito para uso elegível, sob os termos do TMDBPré-pago, de 1 a 24 meses por compra
Plano gratuitoSim, para uso elegívelNenhum, e sem período de teste
AutenticaçãoChave v3 em api_key, ou token v4 como Bearerapi_key ou Bearer com uma chave hexadecimal de 32 caracteres
Formato da respostaJSONJSON, mesmos campos nos caminhos atendidos
IdiomasConsulte a documentação deles14 atendidos, outras tags voltam para en
FilmesSimSim
TVSimSim
PessoasSimSim
ImagensSimimg.amodb.dev, tamanhos de w92 a original
AvaliaçõesNota dos usuários do TMDB, outras fontes: consulte a documentação delesCinco fontes em um objeto, quando conhecidas
Métodos de escritaMétodos de conta, lista e avaliaçãoNenhum, respondem 405
Limite de requisiçõesConsulte a documentação deles20, 40 ou 120 por minuto por chave
Uso comercialConsulte os termos deles sobre uso comercial e atribuiçãoPlanos pagos, veja preços
CompatibilidadeDefine o padrão TMDB v3A maioria dos caminhos de leitura do TMDB v3 e uma rota OMDb

O que difere em detalhe

  • Termos. O TMDB pede que você leia seus termos sobre uso comercial e atribuição. O amodb é vendido por período pré-pago, não tem renovação automática, plano gratuito nem período de teste.
  • Idiomas. O amodb atende en, ru, uk, be, zh, pt, bg, he, cs, ro, fr, pl, it e es. Ele aceita tags do TMDB como ru-RU e pt-BR. Alemão, japonês e coreano voltam para en, enquanto original_title mantém o título de origem. Para a cobertura de idiomas do TMDB, consulte a documentação deles. Veja idiomas.
  • Extensões. append_to_response também aceita moods, soundtracks, ratings, wikidata e showtimes, e cada um tem seu próprio caminho em filmes e séries.
  • IDs externos. /3/find resolve imdb_id, tvdb_id, wikidata_id, kinopoisk_id, facebook_id, twitter_id e instagram_id. As fontes freebase_mid, freebase_id, tvrage_id, tiktok_id e youtube_id são aceitas, mas retornam arrays vazios. Um external_source ausente ou desconhecido responde 400 com status_code 22.
  • Vazio por design. Imagens, vídeos e traduções de temporada e o description de uma produtora são sempre vazios. Resenhas e created_by de uma série são preenchidos só em poucos títulos. Os external_ids de temporada e episódio são todos null.
  • Títulos adultos. include_adult é ignorado. Títulos e pessoas adultos nunca são servidos e respondem 404.
  • Imagens. O caminho da CDN é https://img.amodb.dev/t/p/{size}/{file}. Não precisa de chave, e os arquivos ficam em cache por 30 dias.
  • Limites. A janela é deslizante, de 60 segundos por chave. Os cabeçalhos mostram a contagem restante, e acertos de cache também contam, porque a verificação do limite roda primeiro.
  • Independência. O catálogo vem de fontes públicas e abertas e do nosso próprio enriquecimento. Um formato em comum não garante valores idênticos em todos os campos de todos os títulos.

Onde o TMDB é mais indicado

  • Uso gratuito elegível. Não exige pagamento, e o amodb não consegue igualar isso.
  • Escritas. Avaliar um título, montar uma lista e abrir sessões de conta funcionam no TMDB. No amodb retornam 405.
  • Feeds de alterações. O TMDB lista os IDs que mudaram. O amodb não tem esse feed, então você atualiza no seu próprio ritmo.
  • Créditos agregados e consultas de crédito. Ambos respondem 404 no amodb. Use /credits no título.
  • Necessidade de mais idiomas. Se a sua interface precisa de um idioma fora dos 14, consulte o TMDB primeiro.
  • Aprovação já existente. Uma equipe que já passou o TMDB pela revisão jurídica deve avaliar o custo de uma segunda revisão.

Migrar para o amodb

A mudança é uma linha por requisição.

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"

Antes da virada, compare o formato de algumas respostas lado a lado. Este script imprime as chaves de nível superior que um lado retorna e o outro não.

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

Campos opcionais podem diferir em um título específico, então trate uma chave ausente como uma pista para investigar, não como um veredito. Depois siga esta lista:

  1. Escolha um plano em preços e crie uma chave no painel da sua conta.
  2. Mova a URL base e a chave para a configuração.
  3. Leia images.secure_base_url de /3/configuration.
  4. Procure no seu código chamadas de escrita e os caminhos da tabela de não oferecidos. Mantenha as escritas no TMDB e substitua o resto.
  5. Adicione um tratador de 429 que espera Retry-After segundos. Veja limites de requisições e erros.

Preços

O amodb é pré-pago. Escolha 1, 3, 6, 12 ou 24 meses, que dão 0, 10, 20, 30 ou 40 por cento de desconto, e um de três planos de 20, 40 ou 120 requisições por minuto. Todos os planos retornam todos os dados, e nenhum renova sozinho. Veja preços para os valores.