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:/.
| Área | Caminho do TMDB v3 | No 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 | / | 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 | / | Igual. Em episódios, cast vem vazio |
| Busca | /search/multi | Igual, com cache de 10 minutos |
| Descoberta | /discover/movie | Igual, com cache de 30 minutos |
| Em alta | / | Igual, com cache de 30 minutos |
| Listas | /movie/popular | Igual, page de 1 a 500 |
| Imagens | / | Mesmo formato, os arquivos carregam de img.amodb.dev |
| Vídeos | / | Igual |
| Traduções | / | Igual, 14 idiomas atendidos |
| Palavras-chave | / | Igual |
| Resenhas | / | Responde 200, mas só alguns títulos têm resenhas, então uma lista vazia é normal |
| Coleções | / | 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/list | Igual |
| Configuração | /configuration | Mesmas 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 | / | Lista 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 v3 | Resposta do amodb |
|---|---|
/movie/changes, /tv/changes, /person/changes e changes sob um ID | 404, status_code 34 |
aggregate_credits sob uma série ou uma temporada | 404, status_code 34 |
/credit/{credit_id} e /review/{review_id} | 404, status_code 34 |
/tv/episode_group/{id} | 404, status_code 34 |
/, tagged_images e /person/latest | 404, status_code 34 |
images, translations e alternative_names de coleções, produtoras e emissoras | 404, status_code 34 |
/ | 404, status_code 34 |
Tudo sob account, authentication, guest_session e list, e qualquer caminho /rating ou /account_states | 405, 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
| Recurso | TMDB | amodb |
|---|---|---|
| Modelo de preço | Gratuito para uso elegível, sob os termos do TMDB | Pré-pago, de 1 a 24 meses por compra |
| Plano gratuito | Sim, para uso elegível | Nenhum, e sem período de teste |
| Autenticação | Chave v3 em api_key, ou token v4 como Bearer | api_key ou Bearer com uma chave hexadecimal de 32 caracteres |
| Formato da resposta | JSON | JSON, mesmos campos nos caminhos atendidos |
| Idiomas | Consulte a documentação deles | 14 atendidos, outras tags voltam para en |
| Filmes | Sim | Sim |
| TV | Sim | Sim |
| Pessoas | Sim | Sim |
| Imagens | Sim | img.amodb.dev, tamanhos de w92 a original |
| Avaliações | Nota dos usuários do TMDB, outras fontes: consulte a documentação deles | Cinco fontes em um objeto, quando conhecidas |
| Métodos de escrita | Métodos de conta, lista e avaliação | Nenhum, respondem 405 |
| Limite de requisições | Consulte a documentação deles | 20, 40 ou 120 por minuto por chave |
| Uso comercial | Consulte os termos deles sobre uso comercial e atribuição | Planos pagos, veja preços |
| Compatibilidade | Define o padrão TMDB v3 | A 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-RUept-BR. Alemão, japonês e coreano voltam paraen, enquantooriginal_titlemantém o título de origem. Para a cobertura de idiomas do TMDB, consulte a documentação deles. Veja idiomas. - Extensões.
append_to_responsetambém aceitamoods,soundtracks,ratings,wikidataeshowtimes, e cada um tem seu próprio caminho em filmes e séries. - IDs externos.
/3/findresolveimdb_id,tvdb_id,wikidata_id,kinopoisk_id,facebook_id,twitter_ideinstagram_id. As fontesfreebase_mid,freebase_id,tvrage_id,tiktok_ideyoutube_idsão aceitas, mas retornam arrays vazios. Umexternal_sourceausente ou desconhecido responde 400 comstatus_code22. - Vazio por design. Imagens, vídeos e traduções de temporada e o
descriptionde uma produtora são sempre vazios. Resenhas ecreated_byde uma série são preenchidos só em poucos títulos. Osexternal_idsde 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:/. Não precisa de chave, e os arquivos ficam em cache por 30 dias./ img.amodb.dev/ t/ p/ {size}/ {file} - 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
/creditsno 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.
# 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.
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:
- Escolha um plano em preços e crie uma chave no painel da sua conta.
- Mova a URL base e a chave para a configuração.
- Leia
images.secure_base_urlde/3/configuration. - 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.
- Adicione um tratador de 429 que espera
Retry-Aftersegundos. 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.