# Alternativa all'API IMDb

> IMDb non ha un'API REST generica gratuita: i suoi dataset non commerciali sono file da scaricare e l'accesso commerciale è su licenza. amodb è un'API JSON a pagamento in cui cerchi un titolo con l'ID IMDb, leggi la valutazione IMDb e il numero di voti quando sono noti e ottieni cast, immagini e trailer con una sola chiave.

## I dati IMDb via REST: la risposta breve

IMDb non ha un'API REST generica gratuita. I suoi dataset non commerciali sono file da scaricare e l'accesso commerciale è su licenza, quindi controlla la loro documentazione per le condizioni attuali. Se vuoi chiamare un endpoint HTTP con un ID IMDb e ricevere JSON, amodb lo fa con un piano a pagamento. Se il tuo contratto richiede dati concessi in licenza da IMDb stessa, quell'accordo si stipula con IMDb e amodb non lo sostituisce.

## Come usare un ID IMDb su amodb

Cinque chiamate coprono la maggior parte dei casi. Ognuna parte da un ID che hai già o ne restituisce uno.

| Hai o vuoi               | Chiamata                                        | Ottieni                                                   |
| ------------------------ | ----------------------------------------------- | --------------------------------------------------------- |
| Un titolo da un ID IMDb  | `GET /3/find/tt0137523?external_source=imdb_id` | Gli array `movie_results`, `tv_results`, `person_results` |
| L'ID IMDb di un film     | `GET /3/movie/550`, campo `imdb_id`             | `tt0137523` per Fight Club                                |
| L'ID IMDb di una serie   | `GET /3/tv/1396/external_ids`                   | `imdb_id` accanto all'ID TVDB                             |
| Il punteggio IMDb        | `GET /3/movie/550/ratings`                      | `imdb` con `value` e `votes`, oppure null                 |
| Una scheda in stile OMDb | `GET /omdb/?i=tt0137523`                        | `imdbRating`, `imdbVotes`, `imdbID`                       |

Ogni riga funziona con la stessa chiave. Le valutazioni sono descritte nella pagina [valutazioni](https://amodb.dev/it/ratings/) e le ricerche per ID nella pagina [ricerca per ID esterno](https://amodb.dev/it/find-by-external-id/).

## Leggere il punteggio IMDb

L'endpoint delle valutazioni restituisce insieme il punteggio e il numero di voti. Questa è una risposta reale per Fight Club (id 550). I punteggi cambiano nel tempo.

```json
{
  "id": 550,
  "imdb": {
    "value": 8.8,
    "votes": 2669989
  },
  "kinopoisk": {
    "value": 8.7,
    "votes": null
  },
  "metacritic": {
    "value": 67,
    "votes": null
  },
  "rotten_tomatoes": {
    "value": 81,
    "votes": null
  },
  "tmdb": {
    "value": 8.437,
    "votes": 33039
  }
}
```

Per IMDb il `value` è su una scala da 0 a 10 con un decimale. Mostra il numero di voti accanto e non mostrare nulla quando l'oggetto è `null`. In questa risposta solo IMDb e TMDB hanno i voti. `votes` può essere `null` per qualsiasi fonte, quindi controllalo prima di mostrarlo. Una risposta in cache resta valida 6 ore sull'edge, quindi interrogare più spesso non serve a nulla.

## Confronto delle funzionalità

| Funzionalità           | IMDb                                                                            | amodb                                                             |
| ---------------------- | ------------------------------------------------------------------------------- | ----------------------------------------------------------------- |
| Modello di prezzo      | Accesso commerciale su licenza, vedi la loro documentazione                     | Prepagato, da 1 a 24 mesi                                         |
| Piano gratuito         | Nessuna API REST generica gratuita                                              | Nessuno, e nessuna prova                                          |
| Autenticazione         | Vedi la loro documentazione                                                     | Parametro di query `api_key` o header Bearer                      |
| Formato della risposta | File di dataset da scaricare, per i feed su licenza vedi la loro documentazione | JSON                                                              |
| Lingue                 | Vedi la loro documentazione                                                     | 14 lingue dell'interfaccia                                        |
| Film                   | Per i campi vedi la loro documentazione                                         | Dettagli, crediti, immagini, video                                |
| Serie TV               | Per i campi vedi la loro documentazione                                         | Serie, stagioni, episodi                                          |
| Persone                | Per i campi vedi la loro documentazione                                         | Profili, filmografia, immagini                                    |
| Immagini               | Vedi la loro documentazione                                                     | `img.amodb.dev`, senza chiave                                     |
| Valutazioni            | Un punteggio proprio, per l'accesso vedi la loro documentazione                 | Cinque fonti, tra cui IMDb, quando sono note                      |
| Limite di richieste    | Vedi la loro documentazione                                                     | 20, 40 o 120 richieste al minuto                                  |
| Uso commerciale        | Su licenza, vedi la loro documentazione                                         | Piani a pagamento, vedi i [prezzi](https://amodb.dev/it/pricing/) |
| Compatibilità          | Formati propri, vedi la loro documentazione                                     | Letture TMDB v3 e protocollo OMDb                                 |

## Dove amodb è diverso

Chiami un endpoint invece di analizzare un file. Una sola richiesta restituisce un titolo con cast, trailer e valutazioni grazie a `append_to_response`, e la struttura dei dati segue TMDB v3, quindi le librerie client esistenti funzionano. La stessa chiave serve l'endpoint in stile OMDb, che mantiene in funzione il codice più vecchio che legge `imdbRating`.

Il blocco delle valutazioni è un oggetto fisso con cinque chiavi. Una fonte non nota vale `null`, la chiave non sparisce: il codice che legge `ratings.imdb` non ha bisogno di controllare l'esistenza dell'oggetto padre. Accanto al valore può esserci il numero di voti, che permette di nascondere un punteggio basato su pochi voti. Anche questo può essere `null`, come accade per tre delle cinque fonti nell'esempio qui sopra.

## Dove IMDb è più adatto

- **L'origine del punteggio.** IMDb pubblica per prima le proprie valutazioni. amodb restituisce un valore solo quando è noto, quindi un titolo nuovo o poco diffuso può tornare con `null`.
- **Le funzioni del sito.** Recensioni degli utenti, liste e watchlist vivono sul sito di IMDb. amodb è un'API di metadati e non offre account utente.
- **I dati su licenza.** Se un partner o un contratto richiede dati concessi in licenza da IMDb, solo IMDb può fornirli.
- **L'analisi offline.** I file dei dataset non commerciali sono adatti alla ricerca su grandi volumi che esegui sulla tua macchina. Per le condizioni controlla la loro documentazione.

## Migrare ad amodb

Con ogni probabilità hai un elenco di ID IMDb. Associa ognuno a un ID amodb una sola volta, salva la coppia e poi chiama i dettagli con l'ID numerico.

```bash
curl -s "https://api.amodb.dev/3/find/tt0133093?external_source=imdb_id" \
  -H "Authorization: Bearer $AMODB_KEY"
```

```python
import os
import requests

KEY = os.environ["AMODB_KEY"]
imdb_ids = ["tt0137523", "tt0133093", "tt1375666"]

for imdb_id in imdb_ids:
    r = requests.get(
        f"https://api.amodb.dev/3/find/{imdb_id}",
        params={"external_source": "imdb_id"},
        headers={"Authorization": f"Bearer {KEY}"},
        timeout=10,
    )
    r.raise_for_status()
    hits = r.json()["movie_results"]
    print(imdb_id, hits[0]["id"] if hits else None)
```

I tre ID qui sopra corrispondono a 550, 603 e 27205, cioè Fight Club, The Matrix e Inception. Un ID di serie come `tt0903747` torna in `tv_results`, dove Breaking Bad ha l'id 1396. Un array vuoto significa che per quell'ID non è stata trovata alcuna corrispondenza.

Dai un ritmo al ciclo. Ogni ID è una richiesta, e una risposta 429 include un header `Retry-After` con i secondi da attendere. Vedi gli [errori](https://amodb.dev/it/errors/) per gli altri codici.

### Salvare gli ID in modo sicuro

- Conserva gli ID IMDb come stringhe. Iniziano con `tt` e hanno zeri iniziali, come in `tt0137523`, mentre un tipo numerico elimina quegli zeri.
- Salva l'ID IMDb e l'ID amodb come coppia. Uno qualsiasi dei due permette di ritrovare il titolo.
- Leggi `tv_results` per le serie e `movie_results` per i film. Un singolo ID di norma riempie un solo array e lascia vuoti gli altri.
- Da quel momento richiedi i dettagli con l'ID amodb, perché una chiamata ai dettagli può includere cast, trailer e valutazioni grazie a `append_to_response`.

## Prezzi

Scegli uno dei tre piani da 20, 40 o 120 richieste al minuto e paga in anticipo per 1, 3, 6, 12 o 24 mesi. I periodi più lunghi ottengono uno sconto del 10, 20, 30 o 40 per cento. Tutti i piani restituiscono gli stessi dati, nulla si rinnova da solo e non esiste un piano gratuito. Vedi i [prezzi](https://amodb.dev/it/pricing/) per gli importi.

## Domande e risposte

### IMDb offre un'API REST gratuita?

IMDb non ha un'API REST generica gratuita. I suoi dataset non commerciali sono file da scaricare e l'accesso commerciale è su licenza. Controlla la loro documentazione per condizioni, formati e campi attuali prima di costruirci sopra un progetto.

### Posso cercare un titolo tramite il suo ID IMDb su amodb?

Sì. Chiama /3/find/tt0137523 con external_source=imdb_id e leggi movie_results, tv_results o person_results. Anche l'endpoint in stile OMDb accetta il parametro i con un ID IMDb.

### La valutazione IMDb è sempre presente?

No. L'oggetto ratings ha sempre le cinque chiavi imdb, kinopoisk, metacritic, rotten_tomatoes e tmdb, ma ognuna vale null quando il punteggio non è noto. Gestisci null prima di mostrare un numero.

### Ottengo le recensioni o le liste degli utenti IMDb?

No. amodb restituisce l'ID IMDb e il punteggio IMDb con il numero di voti, quando sono noti. Non ospita recensioni degli utenti, liste o watchlist di IMDb. L'endpoint reviews in stile TMDB risponde 200 e la maggior parte dei titoli restituisce una lista vuota.

### Quanto ci vuole per convertire un elenco di ID IMDb?

Una richiesta find per ogni ID. Un elenco di 500 ID richiede 500 richieste, quindi con il piano da 20 richieste al minuto servono circa 25 minuti. Salva il risultato, perché la corrispondenza cambia di rado.

## Pagine correlate

- [Ricerca per ID esterno](https://amodb.dev/it/find-by-external-id/): Cerca un film, una serie o una persona per ID IMDb, TVDB, Wikidata o Kinopoisk con l'endpoint find di TMDB, e leggi ID esterni e dati Wikidata di un titolo.
- [Valutazioni di film e serie TV](https://amodb.dev/it/ratings/): API valutazioni film: punteggi IMDb, Kinopoisk, Metacritic, Rotten Tomatoes e TMDB di un titolo in una chiamata, con null per le fonti non note.
- [Endpoint compatibile OMDb](https://amodb.dev/it/omdb-endpoint/): Endpoint compatibile OMDb su api.amodb.dev/omdb/. Cerca con i o t, ricerca con s, leggi l'array Ratings e tieni il tuo client cambiando solo l'URL di base.
- [Alternativa all'API OMDb](https://amodb.dev/it/omdb-api-alternative/): Hai raggiunto il limite giornaliero di OMDb? amodb risponde alle richieste in stile OMDb e serve anche gli endpoint TMDB v3, con la stessa chiave API.
- [Autenticazione](https://amodb.dev/it/authentication/): Come inviare la chiave amodb: api_key nella query, un header Authorization Bearer o apikey per le chiamate OMDb. Formato, conservazione, rotazione, errori 401.
- [Limiti di richieste](https://amodb.dev/it/rate-limits/): amodb limita ogni chiave per richieste al minuto in una finestra scorrevole di 60 secondi: 20, 40 o 120 in base al piano. Leggi gli header, gestisci il 429.

Aggiornato: 2026-10-18. Source: https://amodb.dev/it/imdb-api-alternative/
