# Alternativă la API-ul OMDb

> OMDb este un API mic cu o singură înregistrare, cu cheie gratuită și limită zilnică de 1,000 (vezi site-ul lor). amodb răspunde la i, t, s, type, y, plot și page la /omdb/ cu aceleași câmpuri în corp, te limitează pe minut și adaugă endpoint-uri TMDB v3 pe o singură cheie. Doar JSON, fără XML, fără episoade.

## Alege după forma apelurilor tale

Alege OMDb când vrei o singură înregistrare mică pe titlu, iar cheia lui gratuită îți acoperă volumul. Alege amodb când depășești asta sau când vrei același stil de cerere OMDb lângă credite, imagini și traduceri pe o singură cheie. OMDb întoarce JSON sau XML, folosește un parametru `apikey` și oferă o cheie gratuită cu o limită zilnică de 1,000 de cereri (vezi site-ul lor) plus un nivel plătit de susținător. amodb este doar cu plată și răspunde parametrilor OMDb principali, precum și TMDB v3.

## Ce rămâne la fel

Endpoint-ul OMDb este la `https://api.amodb.dev/omdb/`, iar bara oblică de la final este opțională. Codul tău existent de analiză nu ar trebui să aibă nevoie de modificări pentru aceste elemente.

| Element OMDb       | Pe amodb                                                                                                                  |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------- |
| `apikey`           | Același parametru, completat cu cheia ta amodb                                                                            |
| `i` și `t`         | Căutare după ID IMDb sau după titlu                                                                                       |
| `s` și `page`      | Căutare cu 10 rezultate pe pagină și un total `totalResults`, `page` până la 100                                          |
| `type` și `y`      | Filtrare după `movie` sau `series` și după an                                                                             |
| `plot`             | `short` sau `full`                                                                                                        |
| `r`                | Se acceptă doar `json`                                                                                                    |
| Câmpurile corpului | Numite ca în OMDb, de la `Title` la `Response`                                                                            |
| `Ratings`          | Un array de perechi `Source` și `Value` pentru Internet Movie Database, Rotten Tomatoes și Metacritic, când sunt prezente |
| Erori              | `{"Response":"False","Error":"..."}` cu formularea OMDb, într-un răspuns HTTP 200                                         |

## Ce nu se păstrează

- **XML.** O cerere cu `r=xml` întoarce 400 cu `{"Response":"False","Error":"Only r=json is supported."}`.
- **Sezoane și episoade.** `Season` și `Episode` sunt ignorate, iar `type=episode` nu găsește nimic. O cerere cu `i=tt0903747&Season=1` întoarce fișa serialului, nu un sezon. Folosește `/3/tv/{id}/season/{n}` pentru episoade.
- **Alți parametri.** `callback` este ignorat.
- **Câmpuri fără date.** `DVD`, `Production` și `Website` sunt mereu `"N/A"`. Fișele de seriale au `totalSeasons` și omit `DVD`, `BoxOffice`, `Production` și `Website`.
- **Postere.** Câmpul `Poster` indică `https://img.amodb.dev/t/p/w300/...` în loc de altă gazdă. Înlocuiește `w300` cu `w780` pentru o imagine mai mare de pe aceeași cale, iar imaginile nu cer cheie.

Lista completă de parametri și erori este pe pagina [endpoint-ul OMDb](https://amodb.dev/ro/omdb-endpoint/).

## Exemplu de răspuns

O cerere cu `t=Fight Club` întoarce un obiect plat. Răspunsul de mai jos este real, cu doar textul `Plot` scurtat.

```json
{
  "Title": "Fight Club",
  "Year": "1999",
  "Rated": "R",
  "Released": "15 Oct 1999",
  "Runtime": "139 min",
  "Genre": "Crime, Drama, Thriller",
  "Director": "David Fincher",
  "Writer": "Chuck Palahniuk, Jim Uhls",
  "Actors": "Brad Pitt, Edward Norton, Meat Loaf",
  "Plot": "A nameless first-person narrator attends support groups in an attempt to subdue his emotional state an...",
  "Language": "English",
  "Country": "United States, Germany",
  "Awards": "Nominated for 1 Oscar. 12 wins & 38 nominations total",
  "Poster": "https://img.amodb.dev/t/p/w300/qkrH7rjYKU4KOwwIl6wF6H3ISvm.jpg",
  "Ratings": [
    {
      "Source": "Internet Movie Database",
      "Value": "8.8/10"
    },
    {
      "Source": "Rotten Tomatoes",
      "Value": "81%"
    },
    {
      "Source": "Metacritic",
      "Value": "67/100"
    }
  ],
  "Metascore": "67",
  "imdbRating": "8.8",
  "imdbVotes": "2,669,989",
  "imdbID": "tt0137523",
  "Type": "movie",
  "DVD": "N/A",
  "BoxOffice": "$38,003,039",
  "Production": "N/A",
  "Website": "N/A",
  "Response": "True"
}
```

Valorile sunt șiruri, ca în OMDb, deci analizează singur `imdbRating`, `imdbVotes` și `Runtime`. Fiecare apel se numără ca o cerere față de limita ta pe minut, indiferent câte câmpuri citești.

## Comparația funcțiilor

| Funcție              | OMDb                                                                | amodb                                                                 |
| -------------------- | ------------------------------------------------------------------- | --------------------------------------------------------------------- |
| Model de preț        | Cheie gratuită plus un nivel plătit de susținător, vezi site-ul lor | Perioade plătite în avans, de la 1 la 24 de luni                      |
| Nivel gratuit        | Cheie gratuită cu limită zilnică de 1,000, vezi site-ul lor         | Niciunul, și fără perioadă de probă                                   |
| Autentificare        | Parametrul `apikey`                                                 | `apikey` pe `/omdb/`, `api_key` sau Bearer pe `/3`                    |
| Format de răspuns    | JSON sau XML                                                        | JSON                                                                  |
| Limbi                | Vezi documentația lor                                               | 14 limbi de interfață pe căile `/3`                                   |
| Filme                | Da                                                                  | Da                                                                    |
| TV                   | Seriale și episoade, vezi documentația lor pentru câmpuri           | Fișe de seriale pe `/omdb/`, sezoane și episoade pe căile `/3`        |
| Persoane             | Nume ca text în fiecare fișă                                        | Profiluri, filmografie și imagini pe căile `/3`                       |
| Imagini              | Link de poster în fiecare fișă                                      | Link de poster plus liste de imagini, `img.amodb.dev`                 |
| Evaluări             | Câmpurile `Ratings`, `Metascore` și `imdbRating`                    | Aceleași câmpuri, plus un obiect `ratings` pe căile `/3`              |
| Limită de cereri     | Limită zilnică pe cheia gratuită, vezi site-ul lor                  | 20, 40 sau 120 pe minut pe cheie                                      |
| Utilizare comercială | Vezi site-ul lor                                                    | Vândut ca API cu plată, vezi [prețuri](https://amodb.dev/ro/pricing/) |
| Compatibilitate      | Definește protocolul OMDb                                           | Parametrii OMDb de mai sus și citiri TMDB v3                          |

## Prin ce diferă amodb

- **Limite pe minut.** Planurile permit 20, 40 sau 120 de cereri pe minut într-o fereastră glisantă de 60 de secunde. Fiecare răspuns cu cheie are `X-RateLimit-Remaining`, așa că un job în lot își poate încetini singur ritmul înainte să vadă un 429.
- **O cale în sus de la înregistrările singulare.** O înregistrare OMDb are o listă de distribuție ca text. Cu căile `/3` poți cere același titlu cu credite, videoclipuri și traduceri într-un singur apel, iar `imdbID` găsește înregistrarea prin `/3/find`.
- **Imagini mai mari.** Fișele în stil OMDb dau un singur link de poster. Gazda de imagini servește zece jetoane de dimensiune, de la `w92` la `original`.
- **Mai multe surse de evaluări.** Extensia `/3/movie/{id}/ratings` adaugă valorile Kinopoisk, Metacritic, Rotten Tomatoes și TMDB, unde se știu.

## Când OMDb se potrivește mai bine

- **Proiecte mici sau gratuite.** O cheie gratuită cu limită zilnică de 1,000 ajunge pentru un prototip sau un site de hobby, iar amodb nu are nivel gratuit.
- **Consumatori de XML.** Dacă un sistem vechi analizează XML, OMDb îl oferă, iar amodb nu.
- **Căutări de sezoane și episoade.** Ruta `/omdb/` de la amodb nu are mod pentru sezoane sau episoade, deci un client construit pe ea are nevoie în schimb de căile `/3`.
- **Simplitate.** Un singur endpoint și o mână de parametri se învață ușor. Dacă asta e tot ce-ți trebuie, câștigi puțin mutându-te.

## Migrarea la amodb

Se schimbă doar URL-ul de bază și cheia. Păstrează restul cererii așa cum este, după ce cauți în cod `r=xml`, `Season`, `Episode` și `type=episode`.

```js
const OMDB_BASE = process.env.OMDB_BASE_URL; // before: your current OMDb base URL
const AMODB_BASE = 'https://api.amodb.dev/omdb/'; // after

async function lookup(title) {
  const url = new URL(AMODB_BASE);
  url.searchParams.set('apikey', process.env.AMODB_KEY);
  url.searchParams.set('t', title);
  url.searchParams.set('plot', 'short');
  const res = await fetch(url);
  const data = await res.json();
  if (data.Response === 'False') throw new Error(data.Error);
  return data;
}

const movie = await lookup('Fight Club');
console.log(movie.Title, movie.Year, movie.imdbRating, movie.Poster);
```

Continuă să verifici câmpul `Response`, ca în OMDb. Când valoarea este șirul `"False"`, câmpul `Error` poartă mesajul. Pentru episoade, potrivește o singură dată `imdbID` cu `/3/find` și citește sezoanele din partea `/3`:

```bash
curl -s "https://api.amodb.dev/3/find/tt0903747?external_source=imdb_id&api_key=$AMODB_KEY"
curl -s "https://api.amodb.dev/3/tv/1396/season/1?api_key=$AMODB_KEY"
```

Pentru partea în stil TMDB, vezi [autentificare](https://amodb.dev/ro/authentication/) și [ghidul de pornire rapidă](https://amodb.dev/ro/quickstart/).

## Prețuri

amodb este cu plată și se reînnoiește doar când cumperi o altă perioadă. Cele trei planuri diferă doar prin ritm, la 20, 40 sau 120 de cereri pe minut, și fiecare întoarce toate datele. Perioadele sunt de 1, 3, 6, 12 sau 24 de luni, iar cele mai lungi au reduceri de 10 până la 40 la sută. Vezi [prețuri](https://amodb.dev/ro/pricing/) pentru sumele actuale.

## Întrebări și răspunsuri

### Trebuie să-mi rescriu clientul OMDb?

Nu, dacă folosește i, t, s, type, y, plot și page. Schimbă URL-ul de bază în https://api.amodb.dev/omdb/ și pune cheia ta amodb în parametrul apikey. Corpul păstrează numele de câmp OMDb, precum imdbRating. Parametrii Season și Episode și r=xml nu sunt acceptați.

### Întoarce endpoint-ul OMDb de la amodb XML?

Nu. Întoarce doar JSON. O cerere cu r=xml primește un răspuns 400 cu eroarea Only r=json is supported, așa că elimină parametrul r sau setează r=json înainte să faci trecerea.

### Pot căuta sezoane și episoade pe endpoint-ul OMDb?

Nu. Parametrii Season și Episode sunt ignorați, deci o cerere cu i și Season=1 întoarce fișa serialului, iar type=episode nu găsește nimic. Citește episoadele din /3/tv/{id}/season/{n} cu aceeași cheie.

### Prin ce diferă limita față de cheia gratuită OMDb?

OMDb documentează o limită zilnică de 1,000 pentru cheia sa gratuită, așa că vezi site-ul lor pentru termenii actuali. amodb limitează cererile pe minut pe cheie, la 20, 40 sau 120, în funcție de plan.

### De unde se încarcă imaginile posterelor?

Câmpul Poster indică img.amodb.dev la dimensiunea w300. Înlocuiește w300 cu altă dimensiune precum w780 în același URL pentru o imagine mai mare. Imaginile nu cer cheie.

### Pot folosi aceeași cheie pentru apeluri în stil TMDB?

Da. O singură cheie funcționează pentru /omdb/ și pentru căile /3. Asta îți permite să aduci credite, trailere sau traduceri pentru un imdbID fără un al doilea abonament.

## Pagini conexe

- [Endpoint compatibil OMDb](https://amodb.dev/ro/omdb-endpoint/): Endpoint compatibil OMDb la api.amodb.dev/omdb/. Caută după i sau t, caută cu s, citește array-ul Ratings și păstrează-ți clientul schimbând URL-ul de bază.
- [Alternativă la API-ul IMDb](https://amodb.dev/ro/imdb-api-alternative/): IMDb nu are API REST general gratuit. Caută titluri după ID IMDb, citește evaluarea IMDb și preia distribuția, imaginile și trailerele dintr-un API cu plată.
- [Alternativă la API-ul TMDB](https://amodb.dev/ro/tmdb-api-alternative/): Cauți o alternativă TMDB API? Verifică termeni, limite, limbi și evaluări, apoi treci la un API cu plată care păstrează majoritatea căilor de citire TMDB v3.
- [Autentificare](https://amodb.dev/ro/authentication/): Cum trimiți cheia amodb: api_key în interogare, antetul Authorization Bearer sau apikey pentru apelurile OMDb. Format, stocare, rotire și erorile 401.
- [Prețuri](https://amodb.dev/ro/pricing/): Planurile amodb diferă doar prin cereri pe minut: 20, 40 sau 120. Toate includ datele compatibile TMDB v3 și OMDb. Plată în avans, fără reînnoire sau probă.

Actualizat: 2026-10-18. Source: https://amodb.dev/ro/omdb-api-alternative/
