# Алтернатива на TheTVDB API

> TheTVDB е насочен към сериали и предлага няколко подредби на епизодите, като излъчена, DVD и абсолютна. amodb покрива сериали, филми и личности с един ключ и съпоставя id от TVDB със свое id с едно извикване. Изброява групите епизоди на сериал, но не и съдържанието им, така че алтернативната номерация остава в TheTVDB.

## Кое пасва на проект за сериали

TheTVDB е насочен към сериали и пази за сериала няколко подредби на епизодите, включително излъчена, DVD и абсолютна, по модел с API ключ. Вижте документацията им за лицензирането, преди да планирате търговски продукт. Изберете amodb, когато искате сериали, филми и личности с един ключ, пътища на TMDB v3 и 14 езика. Изберете TheTVDB, когато точната алтернативна номерация е центърът на приложението ви, защото amodb изброява групите епизоди на сериал, но не обслужва какво има в тях.

## Как данните за сериали се съпоставят между двете

Понятията си съответстват, но имената се различават. Тази таблица покрива това, което приложение за сериали обикновено чете.

| Нужда                       | Подход на TheTVDB                  | Извикване в amodb                                         |
| --------------------------- | ---------------------------------- | --------------------------------------------------------- |
| Един сериал                 | Запис на сериал по id от TVDB      | `GET /3/tv/1396`, след търсене по `tvdb_id`               |
| Списък със сезони           | Вижте документацията им            | Масив `seasons` в детайлите на сериала                    |
| Един сезон с епизоди        | Вижте документацията им            | `GET /3/tv/1396/season/1`                                 |
| Един епизод                 | Вижте документацията им            | `GET /3/tv/1396/season/1/episode/1`                       |
| Кои подредби съществуват    | Излъчена, DVD и абсолютна подредба | `GET /3/tv/1396/episode_groups`                           |
| Епизоди в една подредба     | Вижте документацията им            | Не се предлага, `/3/tv/episode_group/{id}` отговаря с 404 |
| Следващ епизод за излъчване | Вижте документацията им            | `next_episode_to_air` в детайлите на сериала              |

Полетата на епизода ползват имената на TMDB: `air_date`, `episode_number`, `season_number`, `runtime` и `still_path`. `external_ids` на сезон и епизод са все null, така че id от TVDB на отделен сезон или епизод не може да се прочете от amodb. Свързвайте по `season_number` и `episode_number`. Подробности има на страницата [сезони и епизоди](https://amodb.dev/bg/tv-seasons-episodes/).

## Какво връща списъкът с групи епизоди

Извикването за списъка показва кои подредби съществуват за сериал. Не връща епизодите в тях.

| Поле            | Значение                                     |
| --------------- | -------------------------------------------- |
| `id`            | Id на групата, низ                           |
| `name`          | Име на подредбата, например `DVD / PVOD`     |
| `description`   | Текст от източника, често празен             |
| `type`          | Число, което казва от какъв вид е подредбата |
| `episode_count` | Епизоди в подредбата                         |
| `group_count`   | Блокове в подредбата, например сезони        |
| `network`       | Обект с мрежата или null                     |

Това е истински отговор за Breaking Bad.

```json
{
  "id": 1396,
  "results": [
    {
      "description": "Seasons grouped as they appear on DVD, as well as paid video-on-demand services, such as Prime Video and YouTube.",
      "episode_count": 62,
      "group_count": 6,
      "id": "69f50757054263b7bc87e32a",
      "name": "DVD / PVOD",
      "network": null,
      "type": 3
    }
  ]
}
```

Някои сериали връщат една излъчена подредба, други няколко, а трети връщат празен масив `results`. Тествайте сериалите, които ви интересуват. Тъй като съдържанието на групата не се предлага, приложение, което има нужда от DVD или абсолютния номер на всеки епизод, не може да го вземе от amodb.

## Сравнение на функциите

| Функция            | TheTVDB                                                    | amodb                                                        |
| ------------------ | ---------------------------------------------------------- | ------------------------------------------------------------ |
| Модел на цените    | Модел с API ключ, за лицензирането вижте документацията им | Предплатени периоди от 1 до 24 месеца                        |
| Безплатен план     | Вижте документацията им                                    | Няма, и няма пробен период                                   |
| Удостоверяване     | API ключ, за процеса вижте документацията им               | `api_key` или заглавка Bearer                                |
| Формат на отговора | JSON, вижте документацията им                              | JSON във формата на TMDB v3                                  |
| Езици              | Вижте документацията им                                    | 14 езика на интерфейса                                       |
| Филми              | Вижте документацията им                                    | Да                                                           |
| Сериали            | Да, основният му фокус                                     | Да, със сезони и епизоди                                     |
| Личности           | Вижте документацията им                                    | Да                                                           |
| Изображения        | Вижте документацията им                                    | `img.amodb.dev`, не е нужен ключ                             |
| Рейтинги           | Вижте документацията им                                    | IMDb и още четири източника, където са известни              |
| Лимит на заявките  | Вижте документацията им                                    | 20, 40 или 120 в минута на ключ                              |
| Търговска употреба | За лицензирането вижте документацията им                   | Платени планове, вижте [цени](https://amodb.dev/bg/pricing/) |
| Съвместимост       | Собствено API                                              | Четене по TMDB v3 и OMDb                                     |

## С какво се различава amodb

- **Един ключ за целия каталог.** Сериал, актьорите му, трейлърите му и филм, който споделя актьор, ползват един и същ базов URL и един и същ лимит.
- **Рейтинги до справочника по епизоди.** `append_to_response=ratings` към детайлите на сериал добавя оценки от IMDb и други с едно извикване.
- **Обикновени заглавки за регулиране на темпото.** `X-RateLimit-Remaining` и `X-RateLimit-Reset` казват на задача за синхронизация колко заявки остават в 60-секундния прозорец.
- **Оригиналните имена се пазят.** Сериалът запазва `original_name`, докато `name` следва вашия `language`, което помага, когато показвате родно заглавие.

## Къде TheTVDB пасва по-добре

- **Подредбата е продуктът.** Ако потребителите ви спорят за DVD срещу излъчена срещу абсолютна подредба, TheTVDB третира това като основна част от модела си. amodb назовава подредбите на сериал, но не връща епизодите им, а кои групи съществуват зависи от сериала.
- **Съществуващи интеграции.** Ако конвейерът ви вече пази id от TheTVDB и чете подредбите му, запазете тази част и добавете amodb за допълнителните данни.
- **Фокус върху сериали.** Ако никога не показвате филми или личности, източник, изграден около сериали, има по-малко за научаване.

## Миграция към amodb

Съпоставете запазените си id от TVDB веднъж. След това ползвайте id на amodb за всяко извикване. Ендпойнтът find разрешава само id на сериали. Масивите му `tv_season_results` и `tv_episode_results` винаги са празни, затова съпоставяйте сезоните и епизодите по номер.

```js
const key = process.env.AMODB_KEY;
const headers = { Authorization: `Bearer ${key}` };
const base = 'https://api.amodb.dev/3';

async function getJson(path) {
  const res = await fetch(`${base}${path}`, { headers });
  if (!res.ok) throw new Error(`${path} returned ${res.status}`);
  return res.json();
}

const found = await getJson('/find/81189?external_source=tvdb_id');
const show = found.tv_results[0];
console.log(show.id, show.name);

const groups = await getJson(`/tv/${show.id}/episode_groups`);
for (const g of groups.results) {
  console.log(g.name, g.type, g.episode_count);
}
```

Първата заявка връща Breaking Bad с id 1396. Втората изброява подредбите, които съществуват за този сериал, с размерите им. За да сравните номерацията с това, което пазите сега, четете излъчената подредба от `/tv/{id}/season/{n}` и държете всяка алтернативна подредба от страната на TheTVDB. Направете тази проверка на десетте си най-гледани сериала, преди да преместите останалите.

Всяко извикване се брои като една заявка в 60-секундния прозорец, а 429 носи `Retry-After`. Вижте [търсене по външен идентификатор](https://amodb.dev/bg/find-by-external-id/) и [лимити на заявките](https://amodb.dev/bg/rate-limits/).

## Цени

amodb е предплатен без автоматично подновяване. Изберете 1, 3, 6, 12 или 24 месеца и един от три плана за 20, 40 или 120 заявки в минута. По-дългите периоди дават отстъпка 10, 20, 30 или 40 процента, а всеки план получава всички данни. Няма безплатен план. Сумите са на страницата с [цените](https://amodb.dev/bg/pricing/).

## Въпроси и отговори

### Мога ли да преобразувам id от TVDB в id на amodb?

Да. Извикайте /3/find/81189 с external_source=tvdb_id. Масивът tv_results съдържа съответния сериал, така че Breaking Bad се връща с id 1396. Запазете двойката и оттук нататък ползвайте числовото id. Обратното също работи: /3/tv/1396/external_ids връща tvdb_id.

### Поддържа ли amodb DVD и абсолютна подредба на епизодите?

Само отчасти. GET /3/tv/{id}/episode_groups изброява групите на сериал с name, type, episode_count и group_count. Съдържанието на групата не се предлага, а /3/tv/episode_group/{id} отговаря с 404. Можете да видите, че DVD подредба съществува, но не можете да прочетете номерацията ѝ.

### Безплатен ли е TheTVDB?

TheTVDB ползва модел с API ключ, а условията за лицензиране се определят от TheTVDB. Вижте документацията им за текущия лиценз и таксите. amodb е предплатено платено API без безплатен план.

### Получавам ли и данни за филми?

Да. Филми, личности, изображения, видеа и преводи са на същия ключ и базов URL като сериалите. Така отпада нуждата от втори доставчик, ако приложението ви показва и двете.

### Как да разбера кой епизод излиза следващ?

Детайлите за сериал включват next_episode_to_air и last_episode_to_air, всеки със season_number, episode_number и air_date. Следващият е null за сериал, който е приключил. Детайлите се кешират 6 часа на edge, така че проверявайте най-много няколко пъти на ден.

## Свързани страници

- [API за сезони и епизоди на сериали](https://amodb.dev/bg/tv-seasons-episodes/): API за сезони и епизоди със същите пътища и JSON като TMDB v3. Четете сезон с всичките му епизоди или един епизод с дата на излъчване, продължителност и кадър.
- [Търсене по външен идентификатор](https://amodb.dev/bg/find-by-external-id/): Търсете филм, сериал или личност по IMDb, TVDB, Wikidata или Kinopoisk id с ендпойнта find на TMDB и четете външни id и факти от Wikidata за заглавие.
- [API за справочник по епизоди](https://amodb.dev/bg/episode-guide-api/): API за справочник по епизоди с ендпойнтите за сезон и епизод на TMDB v3: имена, дати, продължителност, кадри и групи епизоди за всеки сериал, на 14 езика.
- [API за сериали](https://amodb.dev/bg/tv-series/): API за сериали със същите пътища и JSON като TMDB v3. Сериал по id със сезони, мрежи и следващ епизод, плюс възрастови рейтинги и доставчици за гледане.
- [Бърз старт](https://amodb.dev/bg/quickstart/): Първата ви заявка към amodb: вземете ключ, поискайте детайли за филм с curl, JavaScript, Python, PHP или Go и заредете постера от img.amodb.dev. До 2 минути.
- [Лимити на заявките](https://amodb.dev/bg/rate-limits/): amodb ограничава всеки ключ по заявки в минута в плъзгащ се прозорец от 60 секунди: 20, 40 или 120. Заглавки за лимита и обработка на 429 с Retry-After.

Обновено: 2026-10-18. Source: https://amodb.dev/bg/thetvdb-api-alternative/
