Перейти к содержанию

Создание и обновление каталога

Каталог 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 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 раздела Показ страницы видео).

ВНИМАНИЕ

Content API отдает поток объекта fvod или advod без привязки к пользователю. Поэтому, прежде чем запрашивать поток, убедитесь, что у пользователя есть ваша подписка.

Шаг 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 · Сообщить о проблеме на этой странице