Создание и обновление каталога¶
Каталог 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 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 раздела
Показ страницы видео).
ВНИМАНИЕ
Content API отдает поток объекта fvod или advod без привязки к
пользователю. Поэтому, прежде чем запрашивать поток, убедитесь, что у
пользователя есть ваша подписка.
Шаг 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 · Сообщить о проблеме на этой странице