Ottenere i dati dei film in 14 lingue
GET / restituisce titolo, trama, slogan e nomi dei generi in russo. Il parametro language accetta tag TMDB come ru-RU o pt-BR e funziona su ogni endpoint che restituisce testo. Gli ID restano uguali in ogni lingua, quindi una sola riga nel tuo database le serve tutte.
Ottieni 14 lingue con una sola chiave, l'original_title di ogni film, un endpoint di traduzioni che elenca tutte le lingue di un titolo e nomi dei generi localizzati. L'elenco completo è nella pagina lingue.
Le 14 lingue servite
| Lingua | Codice | Tag di esempio |
|---|---|---|
| Inglese | en | en-US |
| Russo | ru | ru-RU |
| Ucraino | uk | uk-UA |
| Bielorusso | be | be-BY |
| Cinese | zh | zh-CN |
| Portoghese | pt | pt-BR |
| Bulgaro | bg | bg-BG |
| Ebraico | he | he-IL |
| Ceco | cs | cs-CZ |
| Rumeno | ro | ro-RO |
| Francese | fr | fr-FR |
| Polacco | pl | pl-PL |
| Italiano | it | it-IT |
| Spagnolo | es | es-ES |
Qualsiasi altro tag ripiega su en. Giapponese e coreano non sono serviti come lingue dell'interfaccia. I loro titoli originali tornano comunque in original_title per i film e original_name per le serie TV.
Quali dati ottieni
| Endpoint | Contenuto localizzato |
|---|---|
GET / | title, overview, tagline, nomi dei generi |
GET /3/tv/{tv_id} | name, overview, tagline, nomi dei generi |
GET / | name e overview di stagioni ed episodi |
GET / | biography |
GET / | Nomi dei generi per filtri e menu |
GET / | Tutte le lingue di un titolo in una sola risposta |
GET / | Locandine etichettate per lingua, filtrate con include_image_language |
GET / | Video etichettati con iso_639_1, tutte le lingue in una sola risposta |
Parti in 3 passaggi
- Scegli un piano nella pagina dei prezzi. Il numero di lingue non cambia con il piano, cambia solo la frequenza delle richieste.
- Crea una chiave nella dashboard del tuo account.
- Chiama qualsiasi endpoint con un tag
languagee invia la chiave comeapi_keyo come header Bearer.
Esempio di richiesta
L'esempio in bash stampa il titolo di Fight Club (id 550) in tre lingue. Usa jq per stampare un campo. L'esempio in PHP richiede il bielorusso e ripiega sull'inglese quando la trama è vuota.
for lang in en-US ru-RU he-IL; do
curl -s "https://api.amodb.dev/3/movie/550?language=$lang" \
-H "Authorization: Bearer $AMODB_KEY" | jq -r '.title'
done<?php
function amodb(string $path, array $query = []): array
{
$url = 'https://api.amodb.dev/3' . $path . '?' . http_build_query($query);
$ch = curl_init($url);
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);
}
function localizedMovie(int $id, string $lang): array
{
$movie = amodb("/movie/$id", ['language' => $lang]);
$movie['text_language'] = $lang;
if (trim($movie['overview'] ?? '') === '') {
$fallback = amodb("/movie/$id", ['language' => 'en-US']);
$movie['overview'] = $fallback['overview'] ?? '';
$movie['text_language'] = 'en-US';
}
return $movie;
}
$movie = localizedMovie(550, 'be-BY');
echo $movie['title'], ' (', $movie['original_title'], ')', PHP_EOL;
echo '[', $movie['text_language'], '] ', $movie['overview'], PHP_EOL;Risposta per language=ru-RU, ridotta a pochi campi. La chiave text_language nell'esempio PHP è aggiunta dal tuo codice, non dall'API.
{
"genres": [
{
"id": 18,
"name": "драма"
},
{
"id": 53,
"name": "триллер"
}
],
"id": 550,
"original_language": "en",
"original_title": "Fight Club",
"overview": "Сотрудник страховой компании страдает хронической бессонницей и отчаянно пытается вырваться из мучительно скучной жизни. Однажды в очередной командировке он...",
"poster_path": "/66RvLrRJTm4J8l3uHXWF09AICol.jpg",
"tagline": "«Интриги. Хаос. Мыло»",
"title": "Бойцовский клуб"
}Ripiego quando un campo è vuoto
Non tutti i titoli hanno testo in ogni lingua. Un overview può tornare vuoto quando non esiste una traduzione, e un title o un tagline può tornare in inglese. L'API non inventa testo. Usa un ordine fisso così la pagina mostra sempre qualcosa:
- Richiedi la lingua che mostri.
- Se un campo è vuoto, richiedi
en-USper lo stesso ID, oppure leggi la voce inglese dalla lista delle traduzioni. - Se il titolo è vuoto, mostra
original_title. - Registra da quale lingua proviene ogni campo, così puoi riprovare più tardi.
La cache edge tiene una copia per lingua per ogni percorso in cache, quindi il ripiego in inglese di un titolo popolare di solito viene servito dalla cache.
Elencare tutte le traduzioni di un titolo
GET / restituisce un array translations, con una voce per ogni lingua che ha dati. L'elenco può essere più lungo delle 14 lingue servite: Fight Club ha 50 voci. Usalo per costruire un selettore di lingua, o per salvare tutti i testi di un titolo in una sola riga.
| Campo | Significato |
|---|---|
iso_639_1, iso_3166_1 | Codici di lingua e paese |
english_name | Nome della lingua in inglese |
data.title (film) o data.name (serie TV), data.overview, data.tagline | Testo localizzato, il titolo può essere vuoto |
data.homepage, data.runtime | Valori facoltativi per quella traduzione |
Lo stesso endpoint esiste per serie TV ed episodi. Le voci delle serie portano data.name e nessun runtime, e le voci degli episodi portano solo name e overview. Le stagioni rispondono con una lista vuota, e persone e collezioni non hanno un endpoint di traduzioni. I dettagli sono nella pagina traduzioni. Una sola chiamata di traduzioni sostituisce fino a 14 chiamate di dettagli quando vuoi tutte le lingue insieme.
Locandine e video per lingua
Immagini e video portano i propri tag di lingua in iso_639_1. Sugli endpoint delle immagini passa un elenco separato da virgole e aggiungi null per gli elementi senza lingua, come le locandine senza testo. La risposta contiene gli elementi corrispondenti, quindi ordinali nel tuo codice.
| Parametro | Usato su | Esempio |
|---|---|---|
include_image_language | Endpoint delle immagini | ru,en,null |
Gli endpoint dei video restituiscono tutte le lingue in una sola risposta e ignorano include_video_language, quindi filtra tu su iso_639_1. Vedi immagini per dimensioni e CDN.
L'ebraico e il testo da destra a sinistra
L'ebraico è l'unica lingua da destra a sinistra tra le 14. Gestiscilo nella pagina, non nei dati:
- Imposta
lang="he"edir="rtl"sull'elemento che contiene il testo. - Racchiudi i titoli in caratteri latini dentro un testo ebraico in un elemento
<bdi>perché la punteggiatura non finisca dal lato sbagliato. - Usa proprietà CSS logiche come
margin-inline-startinvece di sinistra e destra.
Confronto
| Funzionalità | Fare scraping delle pagine da solo | Dataset solo in inglese | amodb |
|---|---|---|---|
| Lingue | Una lingua del sito per richiesta | Inglese | 14 lingue con language |
| Stesso ID in tutte le lingue | URL diversi per lingua | Non applicabile | Lo stesso ID numerico ovunque |
| Tutte le traduzioni di un titolo | Scaricare la pagina di ogni lingua | Non applicabile | Una sola chiamata translations |
| Locandine localizzate | URL delle immagini per lingua | Vedi la loro documentazione | Filtro include_image_language |
| Titolo originale | Da estrarre dal testo della pagina | Vedi la loro documentazione | original_title, original_name |
Prezzi
L'insieme delle lingue è lo stesso su ogni piano, quindi paghi solo la frequenza e il periodo. Acquista 1, 3, 6, 12 o 24 mesi prepagati, con uno sconto di 0, 10, 20, 30 o 40 per cento su quelli più lunghi e senza rinnovo automatico. I piani da 20, 40 e 120 richieste al minuto includono ogni lingua e ogni endpoint. Un sito in cinque lingue richiede fino a cinque chiamate di dettagli per titolo, e le richieste ripetute sono servite dalla cache edge per 6 ore. Nessun piano gratuito. Vedi i prezzi.