Створення й оновлення каталогу¶
Нижче описано, як показати каталог 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. Виберіть об'єкти¶
Фід містить об'єкти для всіх платформ. Показуйте лише ті, які ваш застосунок може відтворити:
-
Перевіряйте прапорець своєї платформи:
Ваша платформа Показуйте об'єкт, якщо Веб web_allowed="1"Мобільні пристрої (усі мобільні операційні системи) ios_allowed="1"Smart TV, телевізійні приставки smart_tv_allowed="1" -
Якщо ваш плеєр не підтримує DRM, не показуйте об'єкти, у яких значення
protectionвідмінне від0. - Якщо MEGOGO повідомив, що вам слід використовувати лише певні
контракти, показуйте тільки об'єкти з відповідними значеннями
contract_id. - Пропускайте типи об'єктів, які ваш застосунок не підтримує.
- Якщо для вашого ключа 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. Оновіть каталог¶
- Додайте нові об'єкти й оновіть змінені. Змінитися може будь-яке поле.
- Видаліть об'єкти, яких немає в новому фіді: їхні відео вже не відтворюються.
- Не видаляйте й не приховуйте об'єкт, коли настає дата
closing_date. Які об'єкти видалити, визначайте за наступним фідом. - Для серіалів оновлюйте сезони та серії (
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. Отримайте наступну сторінку¶
- Якщо у відповіді є
next_page, відео ще не закінчилися. -
Повторіть той самий запит, додавши після
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 -
Якщо
next_pageу відповіді немає, це остання сторінка.
ОБЕРЕЖНО
Не змінюйте значення page і не формуйте його самостійно: його формат
може змінитися. Параметр page входить у підпис, як і всі інші
параметри.
Не використовуйте offset і limit — MEGOGO планує їх прибрати.
Показ сторінки відео¶
Коли користувач відкриває сторінку відео, виконайте такі кроки (вони однакові для обох способів):
- Покажіть дані, які вже маєте: з вашого каталогу (спосіб A) або з відповіді на запит списку (спосіб B).
-
Надішліть
/video/info; якщо користувач увійшов в обліковий запис, додайте йогоaccess_token:https://api.megogo.net/v1/video/info?id={video_id}&lang=en&access_token={access_token}&sign={sign} -
Використайте такі поля відповіді:
Поле Призначення is_availabletrue: користувач може дивитися відео вже зараз. Покажіть кнопку «Дивитися»delivery_rulesЯк користувач може отримати відео ( svod,tvod,dto,fvod,advod)purchase_info.tvod,purchase_info.dtoПропозиції разової купівлі: tariff_id,price,period(у днях),quality,is_boughtpurchase_info.svod.subscriptionsID передплат, до яких входить відео -
Трейлер (якщо він є) користувач може дивитися без передплати. Потік трейлера запитуйте за його 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 · Повідомити про проблему на цій сторінці