Интеграция YouTube Live из мобильного приложения

Интеграция YouTube Live из мобильного приложения Мы столкнулись с задачей: дать пользователям мобильного приложения возможность стримить прямо на YouTube Live, минуя YouTube Studio. Для этого нужно было получить RTMP endpoint через OAuth, запустить стрим с камеры и управлять им — всё в рамках одн

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Интеграция YouTube Live из мобильного приложения
Средний
~5 дней

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    896
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    1003
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    597

Интеграция YouTube Live из мобильного приложения

Мы столкнулись с задачей: дать пользователям мобильного приложения возможность стримить прямо на YouTube Live, минуя YouTube Studio. Для этого нужно было получить RTMP endpoint через OAuth, запустить стрим с камеры и управлять им — всё в рамках одного приложения. YouTube Live — самая популярная платформа, но её интеграция требует понимания API и сетевых особенностей. Например, неправильная настройка GOP приводит к отклонению потока, а квота API быстро исчерпывается при частых запросах. Опишем технический процесс: получение RTMP endpoint через YouTube Data API v3, запуск стрима на этот endpoint и управление трансляцией.

Авторизация OAuth 2.0 и получение RTMP endpoint

Трансляция в YouTube состоит из двух объектов: LiveBroadcast (событие с временем, названием, настройками) и LiveStream (технический поток с RTMP URL и ключом). Они связываются через bind. Вот последовательность вызовов:

  1. Авторизация: OAuth 2.0 с scope https://www.googleapis.com/auth/youtube. На iOS используем AppAuth или ASWebAuthenticationSession; на Android — Google Sign-In или AppAuth-Android.
  2. Создание LiveBroadcast:
POST https://www.googleapis.com/youtube/v3/liveBroadcasts?part=snippet,status,contentDetails { "snippet": { "title": "Моя трансляция", "scheduledStartTime": "YYYY-MM-DDTHH:MM:SSZ" }, "status": { "privacyStatus": "public" }, "contentDetails": { "enableAutoStart": true, "enableAutoStop": true } } 
  1. Создание LiveStream:
POST https://www.googleapis.com/youtube/v3/liveStreams?part=snippet,cdn { "snippet": { "title": "Mobile Stream" }, "cdn": { "frameRate": "30fps", "ingestionType": "rtmp", "resolution": "1080p" } } 

Ответ возвращает ingestionInfo.ingestionAddress (RTMP URL) и ingestionInfo.streamName (stream key). 4. Bind:

POST .../liveBroadcasts/bind?id={broadcastId}&part=id,snippet&streamId={streamId} 

Итоговый RTMP URL: rtmp://{ingestionAddress}/{streamName}.

Какие требования к видео для YouTube Live?

Для отправки видео на YouTube используем HaishinKit (iOS) или rtmp-rtsp-stream-client-java (Android). YouTube принимает H.264 + AAC. Требования к потоку:

Параметр Значение
Видеокодек H.264 (baseline/main/high)
Максимальное разрешение 1080p60
Аудиокодек AAC-LC, 44.1/48 кГц, ≤256 кbps
Максимальный битрейт ~6 Mbps (1080p30)
GOP (keyframe interval) ≤2 секунды

Важно: GOP должен быть не более 2 секунд, иначе YouTube отклоняет поток. На iOS это kVTCompressionPropertyKey_MaxKeyFrameInterval: 60 (для 30 fps); на Android — format.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, 2). Также помните: YouTube не принимает RTMPS — только RTMP. На iOS настройте ATS, добавив исключение для домена a.rtmps.youtube.com (только если используете RTMPS).

Как отслеживать статус трансляции?

Проверка состояния потока:

GET .../liveStreams?part=status&id={streamId} 

status.streamStatus проходит стадии: inactivetestingactive. После active трансляция видна зрителям (если enableAutoStart: true).

Завершение трансляции:

POST .../liveBroadcasts/transition?broadcastStatus=complete&id={broadcastId}&part=id,status 

Polling статуса: каждые 5 секунд до active, затем раз в 30 секунд для concurrentViewers. Учитывайте квоту: 10 000 единиц/день; liveStreams.list стоит 1 единицу.

Подробнее о квоте API Каждый запрос к YouTube Data API v3 потребляет единицы квоты. Например, `liveBroadcasts.list` стоит 2 единицы. Для мобильных стримов мы рекомендуем использовать прокси-сервер для кэширования ответов и уменьшения нагрузки. Подробнее в официальной документации (YouTube Data API Quota).

Настройка GOP и битрейта

Неправильный GOP приводит к отклонению потока. Мы настраиваем ключевые кадры каждые 2 секунды и битрейт не выше 6 Mbps для 1080p. Это гарантирует стабильную трансляцию без дропов. В наших проектах мы также оптимизируем выбор кодеков под устройство.

Сравнение RTMP и HLS

RTMP обеспечивает задержку в 2-3 раза меньше по сравнению с HLS, что критично для прямых эфиров. HLS удобен для воспроизведения на проигрывателях, но для трансляций RTMP остаётся стандартом. В таблице ниже — сравнение протоколов:

Протокол Задержка Поддержка на мобильных Рекомендуемое использование
RTMP 2-5 сек Отличная (нативная) Прямые эфиры
HLS 10-30 сек Хорошая (через плееры) Видео по запросу

Что входит в интеграцию?

  1. Анализ требований и текущей архитектуры приложения.
  2. Проектирование интеграции: выбор стека (HaishinKit / rtmp-rtsp-stream-client), настройка OAuth.
  3. Реализация: написание кода для создания трансляций, стриминга, управления.
  4. Тестирование на реальных устройствах с контролем квоты и статуса.
  5. Документация: описание API-вызовов и инструкции для поддержки.
  6. Поддержка после запуска: мониторинг и обновления.

Сроки реализации: от 3 до 5 рабочих дней в зависимости от сложности. Стоимость интеграции варьируется от 150 000 до 300 000 рублей, но может быть скорректирована после анализа. Экономия на времени разработки по сравнению с самостоятельной реализацией может достигать 40%.

Свяжитесь с нами для оценки вашего проекта — мы имеем более 5 лет опыта в мобильной разработке и более 10 проектов со стримингом. Закажите интеграцию сейчас и получите консультацию по оптимизации потоков.

Примечание: Для успешного прохождения App Store Review и Google Play Console необходимо соблюдать политики: трансляции не должны нарушать авторские права, и требуется явное согласие пользователя на использование камеры.