Перейти до змісту

Створення й оновлення каталогу

Нижче описано, як показати каталог MEGOGO у вашому застосунку. Для цього є два способи:

Спосіб Як це працює Коли підходить
A. Імпорт XML-фіду Ваш сервер щодня завантажує фід і оновлює ваш каталог, а застосунок показує каталог із вашої бази даних У вас є власний каталог, пошук та екрани, і контент MEGOGO ви показуєте разом з іншим контентом
B. Використання Content API Коли користувач відкриває екран, застосунок отримує списки (категорії, добірки, пошук) з Content API Контент MEGOGO ви показуєте на окремих екранах і не хочете зберігати копію каталогу

За будь-якого способу дані окремого відео та потік застосунок отримує з Content API.

Перед початком роботи

Переконайтеся, що:

  • у вас є ID партнера та пара ключів (див. Облікові дані);
  • ваш код уміє підписувати запити (див. Підпис запиту);
  • для способу A MEGOGO надав вам URL вашого фіду.

УВАГА

Не збирайте дані багатьох відео через /video/info. Надсилайте /video/info лише у відповідь на дію користувача, наприклад коли він відкриває сторінку відео. Дані багатьох відео отримуйте з XML-фіду або через запити списків.

Спосіб A. Імпорт XML-фіду

Крок 1. Завантажте фід

Завантажуйте фід раз на день, після 05:00 UTC:

https://xml.megogo.net/assets/files/{region}/{partner_number}/all_mgg.xml
  • URL фіду вам надає MEGOGO. У вашому фіді є лише ті об'єкти, які ви можете показувати. Значення {partner_number} збігається з partner_id у відповіді на /configuration.
  • Не використовуйте фід регіону без {partner_number}: у ньому є об'єкти, які з вашими ключами не відтворюються. Виняток — Польща: для неї використовуйте регіональний фід.
  • Тестові фіди та список регіонів наведено в довіднику XML-фіду.
  • Файл може бути великим (приблизно до 200 МБ), тому обробляйте його потоковим XML-парсером.
  • Перший рядок після XML-декларації містить час генерації файлу (UTC), наприклад <!--2026.10.29 03:04:57-->. Доки новий файл не готовий, за URL доступний попередній.

Крок 2. Виберіть об'єкти

Фід містить об'єкти для всіх платформ. Показуйте лише ті, які ваш застосунок може відтворити:

  1. Перевіряйте прапорець своєї платформи:

    Ваша платформа Показуйте об'єкт, якщо
    Веб web_allowed="1"
    Мобільні пристрої (усі мобільні операційні системи) ios_allowed="1"
    Smart TV, телевізійні приставки smart_tv_allowed="1"
  2. Якщо ваш плеєр не підтримує DRM, не показуйте об'єкти, у яких значення protection відмінне від 0.

  3. Якщо MEGOGO повідомив, що вам слід використовувати лише певні контракти, показуйте тільки об'єкти з відповідними значеннями contract_id.
  4. Пропускайте типи об'єктів, які ваш застосунок не підтримує.
  5. Якщо для вашого ключа 4K не ввімкнено, не показуйте 4K-версії. 4K-версія — це окремий об'єкт із quality value="UHD"; її назва зазвичай закінчується на «UHD» або «UHD HDR». Якщо 4K ввімкнено, показуйте 4K-версії лише на пристроях із підтримкою H.265 (HEVC), а версії з hdr="true" — лише на пристроях із підтримкою HDR.

Крок 3. Визначте, як користувач отримує кожен об'єкт

Це видно з елементів distribution об'єкта:

distribution@vod_type У вашому застосунку
svod, fvod, advod Входить у вашу передплату, тож користувач повинен мати її
tvod Оренда на обмежений час
dto Купівля без обмеження в часі. Позначайте її як «назавжди»

ОБЕРЕЖНО

Ціни, tariff_id і service_id у фіді — це тарифи MEGOGO, і вони можуть відрізнятися від ваших пропозицій. Не показуйте ці ціни користувачам і не використовуйте ці ID у Billing API. Ціни й tariff_id відео беріть із /video/info (крок 2 у розділі Показ сторінки відео).

УВАГА

Потік об'єкта fvod або advod Content API повертає без користувача. Тому перш ніж запитувати потік, переконайтеся, що в користувача є ваша передплата.

Крок 4. Оновіть каталог

  1. Додайте нові об'єкти й оновіть змінені. Змінитися може будь-яке поле.
  2. Видаліть об'єкти, яких немає в новому фіді: їхні відео вже не відтворюються.
  3. Не видаляйте й не приховуйте об'єкт, коли настає дата closing_date. Які об'єкти видалити, визначайте за наступним фідом.
  4. Для серіалів оновлюйте сезони та серії (season, seria). Потік серії запитуйте за її id.

Якщо завантажити фід не вдалося, залиште попередній каталог і спробуйте ще раз пізніше того самого дня.

Спосіб B. Використання Content API

Крок 1. Отримайте конфігурацію

Надсилайте /configuration під час запуску сервера, а далі — раз на день. Відповідь зберігайте в кеші:

https://api.megogo.net/v1/configuration?lang=en&sign=2e2c975fe0d4d2b4e82d784fa103ea38_example1_xx

Відповідь містить категорії (categories[].id) і жанри для фільтрів. У прикладах на цій сторінці використано вигадані ключі зі сторінки Підпис запиту.

Крок 2. Отримайте список відео

Відео категорії можна отримати запитом /video з paging_strategy=token:

https://api.megogo.net/v1/video?paging_strategy=token&category_id=16&lang=en&sign=161ac1699f56040cd90b3b7cd610cabe_example1_xx

Очікувана відповідь (скорочено):

{
  "result": "ok",
  "code": 200,
  "data": {
    "limit": 20,
    "next_page": "PjIw",
    "video_list": [
      {
        "id": 12345,
        "title": "Example film",
        "year": "2024",
        "image": { "small": "https://…", "big": "https://…", "original_wide": "https://…" },
        "delivery_rules": ["svod"]
      }
    ]
  }
}

Так само розбиваються на сторінки й інші списки:

Запит Що повертає
/video?category_id={id} Відео категорії
/collections Добірки (списки, які складають редактори). Для деяких партнерів MEGOGO створює добірки на запит — зверніться до свого менеджера MEGOGO
/video/collection?id={id} Відео добірки
/search?text={text} Результати пошуку
/catalog/objects?category_id={id} Відео за вибраними фільтрами, згруповані

Опис параметрів наведено в довіднику Content API.

Фільтрування та сортування списку

Відфільтрувати й відсортувати список можна двома способами:

Спосіб Запити
Фільтри /video /video?category_id={id}&genre={genre_id}&sort={sort}. Жанри беріть із /configuration (categories[].genres, genres[]). Значення sort: popular, add (нове на MEGOGO), year
Фільтри каталогу /catalog/filters?category_id={id}&show_title=true повертає фільтри, доступні для вашого ключа: жанр, країна, рік, аудіодоріжка, субтитри, якість тощо. Далі надішліть /catalog/objects?category_id={id}&{filter_id}={item_id}, наприклад video_genre_id=2,25&country_id=2

Фільтри каталогу MEGOGO вмикає окремо для кожного ключа. Якщо /catalog/filters повертає порожній filter_by, зверніться до свого менеджера MEGOGO або скористайтеся фільтрами /video.

Для фільтра з multichoice: true можна передати кілька ID елементів через кому. Щоб отримати варіанти сортування (order_by), додайте до /catalog/filters параметр show_disabled_items=true.

Крок 3. Отримайте наступну сторінку

  1. Якщо у відповіді є next_page, відео ще не закінчилися.
  2. Повторіть той самий запит, додавши після paging_strategy параметр page зі значенням next_page:

    https://api.megogo.net/v1/video?paging_strategy=token&page=PjIw&category_id=16&lang=en&sign=c926082509edd2e356584cd7b1280ecd_example1_xx
    
  3. Якщо next_page у відповіді немає, це остання сторінка.

ОБЕРЕЖНО

Не змінюйте значення page і не формуйте його самостійно: його формат може змінитися. Параметр page входить у підпис, як і всі інші параметри.

Не використовуйте offset і limit — MEGOGO планує їх прибрати.

Показ сторінки відео

Коли користувач відкриває сторінку відео, виконайте такі кроки (вони однакові для обох способів):

  1. Покажіть дані, які вже маєте: з вашого каталогу (спосіб A) або з відповіді на запит списку (спосіб B).
  2. Надішліть /video/info; якщо користувач увійшов в обліковий запис, додайте його access_token:

    https://api.megogo.net/v1/video/info?id={video_id}&lang=en&access_token={access_token}&sign={sign}
    
  3. Використайте такі поля відповіді:

    Поле Призначення
    is_available true: користувач може дивитися відео вже зараз. Покажіть кнопку «Дивитися»
    delivery_rules Як користувач може отримати відео (svod, tvod, dto, fvod, advod)
    purchase_info.tvod, purchase_info.dto Пропозиції разової купівлі: tariff_id, price, period (у днях), quality, is_bought
    purchase_info.svod.subscriptions ID передплат, до яких входить відео
  4. Трейлер (якщо він є) користувач може дивитися без передплати. Потік трейлера запитуйте за його ID: trailer_id у /video/info або trailer@id у фіді.

Щоб продати окреме відео, передайте tariff_id із кроку 3 у Billing API (див. Продаж окремого відео).

Позначте, що контент надає MEGOGO: на постері, у назві розділу або на сторінці відео. Див. Маркування контенту MEGOGO.

Ліміти

  • З одного ключа можна надсилати 1 000 запитів за хвилину. Якщо цей ліміт перевищено, MEGOGO може повернути HTTP 429.
  • Для способу B зберігайте відповіді на запити списків без access_token у кеші на кілька хвилин, щоб багато користувачів не надсилали той самий запит.

Помилки

Відповідь Причина Що робити
HTTP 400, "message": "You entered wrong sign key" Неправильний підпис Переконайтеся, що підпис містить усі параметри в тому порядку, у якому вони йдуть в URL, зокрема page і lang. Див. Підпис запиту
HTTP 200, "result": "error", "code": 400 Неправильний параметр, наприклад значення page Почніть знову з першої сторінки
HTTP 200, "result": "error", "code": 404 Відео не знайдено Не показуйте відео. Для способу A видаліть його з каталогу
HTTP 429 Забагато запитів Надсилайте менше запитів, використовуйте кеш
Фід: час генерації — не сьогодні Новий фід ще не готовий Залиште попередній каталог і спробуйте пізніше

Що далі


Версія посібника 1.4.1, 2026-10-31 · Повідомити про проблему на цій сторінці