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

Відтворення відео

Нижче описано, як отримати потік відео й запустити відтворення у вашому плеєрі. Кроки однакові для фільму, серії та трейлера.

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

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

УВАГА

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

Схема процесу

sequenceDiagram
    participant App as Застосунок партнера
    participant Server as Сервер партнера
    participant API as MEGOGO Content API
    participant CDN as MEGOGO CDN
    App->>Server: Користувач натискає «Дивитися»
    Server->>Server: Перевірка доступу користувача
    Server-->>App: Підписаний URL /stream
    App->>API: GET /stream
    API-->>App: src, drm_type, audio_tracks, subtitles
    App->>CDN: GET src (маніфест)
    CDN-->>App: Відео

Крок 1. Отримайте підписаний URL

Підписаний URL /stream формує ваш сервер — так приватний ключ не залишає сервера.

Параметр Обов'язковий Опис
video_id Так ID фільму, серії або трейлера
lang Ні Мова текстів у відповіді, наприклад en
access_token Для платних відео Токен доступу користувача
sign Так Підпис усіх інших параметрів у тому порядку, у якому вони йдуть в URL
https://api.megogo.net/v1/stream?video_id={video_id}&lang=en&access_token={access_token}&sign={sign}

Для серіалу передавайте ID серії. ID серій можна взяти з XML-фіду (seria@id) або з Content API. /video/info повертає список сезонів (season_list) і серії першого сезону, а серії інших сезонів можна отримати запитом /video/episodes?id={season_id}. Якщо передати в /stream ID самого серіалу, у відповіді буде перша серія.

Для трейлера передавайте ID трейлера (trailer_id у /video/info або trailer@id у фіді) без access_token.

Крок 2. Надішліть запит із пристрою користувача

Надсилайте запит із застосунку на пристрої, а не з вашого сервера: MEGOGO визначає країну користувача за IP-адресою запиту.

Якщо запит обов'язково має надсилати сервер, повідомте про це своєму менеджерові MEGOGO. Тоді MEGOGO закріпить за вашим ключем фіксований регіон, а відповідальність за місцеперебування користувачів ляже на вас.

УВАГА

Надсилайте /stream лише тоді, коли користувач запускає відтворення. Для орендованого (TVOD) відео перша відповідь із src запускає період оренди. Не надсилайте цей запит, щоб заздалегідь підготувати або перевірити потік.

Крок 3. Перевірте відповідь

Очікувана відповідь для відео, яке користувач може дивитися (скорочено):

{
  "result": "ok",
  "code": 200,
  "data": {
    "video_id": 12345,
    "title": "Example film",
    "src": "https://…/playlist.m3u8?…",
    "stream_type": "hls",
    "content_type": "vod",
    "drm_type": "",
    "license_server": "",
    "play_start_time": 0,
    "credits_start": 5400,
    "bitrates": [ … ],
    "audio_tracks": [ … ],
    "subtitles": [ … ]
  }
}
  1. Якщо result має значення error, див. Помилки.
  2. Якщо src порожній, користувач не може дивитися відео. Перевірте restrictions[].code і виконайте дію, зазначену в таблиці нижче.
  3. Якщо src не порожній, переходьте до кроку 4.
restrictions[].code Причина Дія
NOT_PURCHASABLE Користувач не має передплати чи купівлі для цього відео, або в запиті немає access_token Запропонуйте передплату або купівлю. Якщо послуга в користувача є, отримайте новий токен доступу
CONTRACT, NO_CONTRACT Відео не входить у ваш контракт Не показуйте відео
NO_VOD_COUNTRY, NOT_ENABLED_IN_COUNTRY Відео недоступне в країні користувача Повідомте користувачеві, що в цій країні відео недоступне
NO_BITRATE Для вашого ключа немає жодної доступної якості відео. Наприклад, це 4K-версія, а 4K для ключа не налаштовано Не показуйте відео з цим ключем. Щоб показувати 4K-відео, зверніться до свого менеджера MEGOGO
NO_DRM_SUPPORT, DRM Відео захищене DRM, а ваш ключ DRM не підтримує Не показуйте відео з цим ключем. Узгодьте DRM для своєї платформи з менеджером MEGOGO
PARTNER_IS_DISABLED Ваш ключ вимкнено Повідомте свого менеджера MEGOGO

Не показуйте користувачеві restrictions[].message як пояснення причини: це загальний текст.

Крок 4. Запустіть відтворення

  1. Передайте src у плеєр. Протокол указано в stream_type: hls, dash або mss.
  2. Якщо drm_type не порожній, задайте в плеєрі URL ліцензії DRM:

    drm_type Система DRM Формат потоку Дані для плеєра
    modular Widevine DASH license_server
    playready PlayReady DASH license_server
    fairplay FairPlay HLS license_server і license_certificate

    Систему DRM для кожного ключа налаштовує MEGOGO. З DRM надходять лише відео, позначені у фіді як захищені (protection не дорівнює 0). Відео без DRM надходять у протоколі, налаштованому для вашого ключа (наприклад, HLS). Використовуйте ключ тієї платформи, на якій користувач дивиться відео. Див. Облікові дані.

  3. Якщо ви показуєте меню якості, беріть дані з bitrates. Кожен елемент має власні src і license_server. 4K-версія (is_uhd: true) має лише бітрейт 2160, а is_hdr: true означає, що відео в HDR.

  4. Щоб продовжити перегляд з місця, де користувач зупинився, почніть відтворення з play_start_time (у секундах).
  5. Виберіть аудіодоріжку й субтитри. Див. Налаштування відтворення.

Для серії відповідь містить також root_video_id (ID серіалу), prev і next (ID попередньої та наступної серії). Наступну серію відтворюйте за next. У першої серії немає prev, а в останньої — next.

credits_start — момент початку фінальних титрів у секундах. У цей момент можна запропонувати користувачеві наступну серію.

УВАГА

src містить дані користувача. Не кешуйте src, не записуйте його в журнали й нікому не передавайте. Щоразу, коли користувач запускає відтворення, надсилайте новий запит /stream.

Поле advert_url ігноруйте.

Помилки

Відповідь Причина Дія
HTTP 400, "message": "You entered wrong sign key" Неправильний підпис Переконайтеся, що підпис охоплює всі параметри в порядку URL, зокрема access_token. Див. Підпис запиту
HTTP 200, "result": "error", "code": 400 У запиті немає video_id, або це не число Передайте правильний video_id
HTTP 200, "result": "error", "code": 403 Токен доступу неправильний або його термін дії минув Отримайте новий токен доступу. Див. Авторизація користувача
HTTP 200, "result": "error", "code": 404 Відео не знайдено Не показуйте відео й вилучіть його зі свого каталогу
HTTP 200, "result": "ok", порожній src Користувач не може дивитися відео Перевірте restrictions (крок 3)
HTTP 429 Забагато запитів Зменште кількість запитів

Що далі


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