Посібники

Вибір API для прямих трансляцій: що перевірити перед розробкою

Що розробнику варто порівняти у відео API для прямих і відео на вимогу: від тарифікації та приймання потоку до вбудовування й роботи, що залишається на вашому боці.

dcast Team
7 хв читання
Поділитися:
код, програмування, html, набір тексту, робота, бізнес, руки, ноутбук, комп'ютер, технології, офіс, робочий стіл
On this page

Вибір відеобекенду здається порівнянням функцій, але насправді це ближче до найму постачальника для тієї частини вашого продукту, яку ваші клієнти справді дивляться. API для прямих трансляцій торкається завантаження, кодування, доставки й відтворення, тож невдалий вибір проявляється як звернення в підтримку, несподіваний рахунок або переписування коду. Цей посібник пропонує коротку процедуру порівняння провайдерів, незалежно від того, чи ви обираєте між керованим API та власним конвеєром, чи шукаєте альтернативу тому, яким користуєтеся зараз. Кожну з наведених нижче перевірок можна виконати за один день на тестовому акаунті, і кожна розповість те, чого не розкаже маркетингова сторінка.

Почніть із завдань, які має виконувати ваш продукт

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

Потім оцінюйте кожен API за цим переліком, а не за його сторінкою функцій. Сторінка функцій перелічує те, чим пишається провайдер, а ваш перелік описує те, що ви маєте випустити. Позначте кожне завдання як покрите API, покрите лише в панелі керування або непокрите. Завдання, яке існує лише в панелі керування, змушує людину щоразу клікати екраном, коли ви підключаєте клієнта, тому для будь-якого продукту, що зростатиме понад кілька акаунтів, це слід вважати прогалиною.

Запитайте, як тарифікується використання

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

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

Перевірте, чи API охоплює весь шлях

Шукайте покриття всього шляху від завантаження до готового плеєра. Складання завантажувача, транскодера й плеєра від різних вендорів множить місця, де щось може зламатися, а також панелі керування, ключі та рахунки, які вам доведеться підтримувати. Кожен стик має власний режим збою: завантажувач повідомляє про успіх, а транскодер відхиляє кодек, або плеєр завантажує маніфест, з яким доставка ще не встигла синхронізуватися.

Один API не є автоматично кращим, тож перевіряйте стики, за які ви відповідали б у будь-якому разі. Завантажте файл з незвичним контейнером, вертикальний ролик із телефона та дуже довгий запис і подивіться, що повертається для кожного. Якщо провайдер їх обробляє й повертає зрозумілий статус, інтеграція, яку ви пишете, залишається невеликою. Якщо ж навколо вендора доводиться додавати код конвертації чи власну логіку повторних спроб, зараховуйте цей код до реальних зусиль, яких вимагає його вибір.

Прочитайте відповіді та перевірте потік статусів

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

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

Обробляйте очікування, збій і повторну спробу у власному коді. Очікування означає, що ваша сторінка показує заглушку замість зламаного плеєра. Збій означає видиме повідомлення та спосіб почати знову. Повторна спроба означає, що запит на завантаження можна безпечно повторити, не залишивши позаду наполовину зарезервованого місця у сховищі. Напишіть по одному тесту на кожен стан, включно зі свідомо пошкодженим файлом, адже саме цей випадок знайде ваш перший справжній клієнт.

Захистіть секрети й обмежте, де можна вбудовувати відео

Вважайте адресу публікації та ключ трансляції секретами й створюйте їх на своєму сервері, а не на сторінці в браузері. Будь-хто, хто має ключ трансляції, може публікувати у ваш канал, а все, що передається в браузер, може прочитати відвідувач, який відкриє інструменти розробника. Те саме правило стосується самого API-ключа: тримайте його на сервері, викликайте провайдера зі свого бекенду, а браузеру віддавайте лише те, що потрібно для відтворення.

Подивіться, як вбудовується плеєр і як обмежується доступ, бо відео, яке може вбудувати будь-який сайт, не підходить платному продукту. Якщо ваш контент продається, скопійований код вбудовування на іншому сайті дає глядачам спосіб обійти вашу оплату. Запитайте, чи можна обмежити плеєр списком доменів, чи цей список охоплює також прямі трансляції та чат і що відбувається, коли список неможливо прочитати. Безпечна система в такому разі відмовляється вбудовувати. Якщо ваша мета — охоплення, правильним буде протилежне налаштування, тож визначте, у якому випадку ви перебуваєте, ще до початку порівняння.

З'ясуйте, які ліміти належать акаунту

Ліміти часто ховаються за словом «ключ». З'ясуйте, які ліміти належать акаунту, а не ключу, наприклад одночасні трансляції та сховище, щоб успішний запуск не впирався в стіну вже першого дня. Якщо ви створюєте окремий ключ для кожного клієнта чи середовища, ліміт на рівні акаунту є спільним для всіх них, і ваші тести на стейджингу можуть спожити місце, потрібне для продакшн-трафіку.

Перевірте, що та сама підписка обслуговує і панель керування, і API. Окремий корпоративний тариф для програмного доступу може додати місяці до невеликого проєкту, бо перетворює технічне рішення на розмову з відділом продажів. Запитайте прямо, чи входять доступ до API та потрібні вам засоби керування вбудовуванням у тариф, який ви збираєтеся купувати, і отримайте відповідь письмово, щоб не виявити обмеження після завершення інтеграції.

Стежте за провайдером і плануйте вихід

Завеліть невеликий тестовий акаунт і скрипт, який щодня створює, відтворює й видаляє відео, щоб зміна в провайдера проявилася раніше, ніж її побачать ваші клієнти. Скрипт має виконувати справжню роботу: запитати завантаження, надіслати невеликий файл, дочекатися готовності, отримати код плеєра, завантажити його в headless-браузері, переконатися, що кадри відтворюються, а потім видалити відео. Налаштуйте сповіщення про будь-який крок, що завершився невдало або тривав значно довше, ніж зазвичай, і зберігайте результати в журналі, щоб ви могли сказати підтримці, коли саме змінилася поведінка.

Плануйте вихід, зберігаючи власну копію оригіналів і власний облік ідентифікаторів відео, що перетворює майбутню зміну провайдера на міграцію, а не на переписування. Зберігайте оригінал завантаження у власному сховищі та ведіть таблицю, яка зіставляє ваш внутрішній ідентифікатор відео з ідентифікатором провайдера. Використовуйте власні ідентифікатори на сторінках і в посиланнях, щоб ідентифікатори провайдера знав лише шар інтеграції. Саме це розділення робить залежність від вендора керованим ризиком, а не причиною взагалі нічого не купувати.

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

Документація API на цю тему

APIпряма трансляціявідеоінфраструктура для продуктувбудований відеоплеєррозробка
d

dcast Team

Фахівці з відеостримінгу, які допомагають авторам досягати успіху.

Розпочніть свій відеобізнес сьогодні

Завантажуйте, транслюйте та продавайте відео. Почніть на безкоштовному тарифі — без картки.

Почати безкоштовно