Відтворення відео¶
Нижче описано, як отримати потік відео й запустити відтворення у вашому плеєрі. Кроки однакові для фільму, серії та трейлера.
Перед початком роботи¶
Переконайтеся, що:
- ваш код уміє підписувати запити (див. Підпис запиту);
- для платних відео користувач має токен доступу (див. Авторизація користувача);
- ваш плеєр підтримує протоколи й системи DRM, які MEGOGO налаштував для вашого ключа (див. Облікові дані).
УВАГА
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": [ … ]
}
}
- Якщо
resultмає значенняerror, див. Помилки. - Якщо
srcпорожній, користувач не може дивитися відео. Перевіртеrestrictions[].codeі виконайте дію, зазначену в таблиці нижче. - Якщо
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. Запустіть відтворення¶
- Передайте
srcу плеєр. Протокол указано вstream_type:hls,dashабоmss. -
Якщо
drm_typeне порожній, задайте в плеєрі URL ліцензії DRM:drm_typeСистема DRM Формат потоку Дані для плеєра modularWidevine DASH license_serverplayreadyPlayReady DASH license_serverfairplayFairPlay HLS license_serverіlicense_certificateСистему DRM для кожного ключа налаштовує MEGOGO. З DRM надходять лише відео, позначені у фіді як захищені (
protectionне дорівнює0). Відео без DRM надходять у протоколі, налаштованому для вашого ключа (наприклад, HLS). Використовуйте ключ тієї платформи, на якій користувач дивиться відео. Див. Облікові дані. -
Якщо ви показуєте меню якості, беріть дані з
bitrates. Кожен елемент має власніsrcіlicense_server. 4K-версія (is_uhd: true) має лише бітрейт 2160, аis_hdr: trueозначає, що відео в HDR. - Щоб продовжити перегляд з місця, де користувач зупинився, почніть
відтворення з
play_start_time(у секундах). - Виберіть аудіодоріжку й субтитри. Див. Налаштування відтворення.
Для серії відповідь містить також 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 · Повідомити про проблему на цій сторінці