AudD для платформ прямых трансляций

Источник: AudD•

AudD для платформ прямых трансляций

Узнайте, как платформы, транслирующие видео для авторов, интернет-магазинов, фитнес-центров, образовательных ресурсов, мероприятий и игровых сообществ, используют аудиопотоки AudD для отслеживания музыки на каждом канале, создания оверлеев с информацией о текущем треке, ведения журналов…

Эта страница предназначена для команд, которые обеспечивают прямые видеотрансляции для других пользователей: каналов авторов, онлайн-магазинов, фитнес- и танцевальных классов, онлайн-курсов, платных мероприятий и игровых стримов. Многие каналы выходят в эфир и отключаются одновременно, и в них попадает записанная музыка: плейлист во время тренировки, трек на фоне демонстрации продукта или песня в игровом стриме. API аудиопотоков AudD распознает песни в прямом HLS-потоке и сообщает вашему серверу, какая запись воспроизводилась на каком канале. Используйте его вместе с корпоративной конечной точкой, чтобы проверить запись перед тем, как она станет доступна в повторе.

Если вы индивидуальный стример, а не платформа, ознакомьтесь с разделом AudD для стримеров Twitch.

Что вы можете сделать

Знать, какая музыка играла на каждом канале

Когда канал выходит в эфир, ваш бэкенд вызывает addStream с HLS URL воспроизведения канала и radio_id — целым числом, которое вы присваиваете этому каналу. AudD получает поток, распознает песни и отправляет каждый результат POST-запросом на один callback-URL для всей вашей учетной записи. Каждое совпадение содержит radio_id, поэтому ваш приемник знает, с какого канала оно пришло. Когда трансляция заканчивается, вы вызываете deleteStream.

Это работает с любым хостом, который предоставляет HLS URL и сигнал «вышел в эфир / завершил трансляцию»: события изменения состояния Amazon IVS через EventBridge, вебхуки прямых трансляций Mux, уведомления о входящем потоке Cloudflare Stream или ваши собственные хуки публикации медиасервера.

Показывать зрителям, что играет

Передайте callbacks="before" при добавлении потока, и совпадение придет в момент начала песни, а не в момент ее окончания. Кэшируйте последнее совпадение для каждого канала и отображайте его в своем плеере. Параметр song_link песни с добавленным ?thumb даст вам обложку альбома. У каждого потока также есть longpoll_category, которую можно передать фронтенду, чтобы он мог считывать результаты без вашего API-токена.

Вести журнал использования музыки для каждого канала

Сохраняйте каждое совпадение с привязкой к каналу, времени, исполнителю, названию, альбому и лейблу. При стандартных настройках callback (в конце песни) совпадение также содержит play_length — количество секунд, в течение которых играла песня. Журнал по каждому каналу дает вам факты для лицензионных переговоров: какие записи появлялись, на каких каналах и как часто. ISRC и UPC доступны по запросу (см. документацию по потокам) и требуют наличия плана Startup или выше.

Помечать трансляции для проверки

Ваша платформа сама решает, что означает совпадение. К фитнес-классу с политикой «без записанной музыки» и к DJ-каналу с лицензией на проведение мероприятий применяются разные правила. Направляйте совпадения в очередь на проверку, уведомляйте автора или настройте плеер на отключение звука в соответствии с политикой каждого канала. AudD только сообщает о том, что было распознано. Он не предпринимает действий с самим потоком.

Проверять повторы перед публикацией

После трансляции извлеките аудиозапись и отправьте ее на корпоративную конечную точку (https://enterprise.audd.io/). Она вернет каждый распознанный сегмент с его позицией в файле, чтобы вы могли опубликовать, отредактировать или задержать повтор. Корпоративный тариф тарифицирует один запрос на каждые 12 секунд обработанного аудио. Устанавливайте лимит для каждого вызова и используйте every/skip для выборочной проверки, когда достаточно ответа «да/нет».

Как компоненты соответствуют вашим потребностям

Что нужно спланировать

  • Параллельность, а не количество каналов. В документации по потокам указано, что вы устанавливаете максимальное количество одновременных потоков на панели управления. Вы определяете, сколько каналов могут быть в эфире одновременно. Решите, что произойдет, если выход в эфир превысит этот лимит, и рассмотрите возможность мониторинга только тех каналов, где музыка имеет значение. Цены указаны на странице документации по потокам. По вопросам объемов для платформ пишите на [email protected].
  • Частота callback-запросов. При количестве потоков менее 500 AudD отправляет не более 3 callback-запросов в секунду (всплеск до 15). Сверх этого количества запросы ставятся в очередь и приходят с задержкой. Оцените пиковую нагрузку исходя из количества одновременных каналов и частоты смены песен.
  • URL воспроизведения, доступные для AudD. AudD получает URL со своих серверов на протяжении всей трансляции. Подписанные или истекающие URL, токены, привязанные к источнику, IP-белые списки и файлы cookie могут нарушить этот процесс. Протестируйте работу с реальной трансляцией и заменяйте URL на новый с помощью setStreamUrl, если ваши истекают.
  • Задержка. Измерьте ее на своих потоках: время от начала песни до прихода вашего callback-запроса. На этой странице конкретное число не приводится.
  • Частные каналы. Решите, соответствует ли вашим условиям использования и политике конфиденциальности отправка аудио частного класса или мероприятия третьей стороне.

Чего AudD не делает

  • Он не отключает звук, не блокирует и не удаляет трансляции или повторы. Это делает ваша платформа.
  • Он не лицензирует музыку, не называет правообладателей и не определяет, разрешено ли использование. Совпадение лишь сообщает вам, какая запись воспроизводилась.
  • Он сопоставляет записанную музыку. Каверы, живые исполнения песен, напевы и звуковые имитации, созданные ИИ, не распознаются.
  • Он не анализирует видео. Он не может обнаружить рестрим чужого видео по картинке.
  • Использование сервиса не делает платформу соответствующей какому-либо закону или правилам платформы.

С чего начать

  • «Мониторинг прямых трансляций ваших пользователей на наличие музыки» — это основа: события IVS, Mux и Cloudflare Stream, которые нужно отслеживать, обработчик FastAPI, который добавляет и удаляет потоки, приемник callback-запросов, который маршрутизирует их по radio_id, распределение radio_id, подписанные URL, масштабирование и сканирование повторов.
  • «Пометка и удаление музыки в записи прямого эфира» превращает корпоративные совпадения в отчет и копию записи с отключенным звуком или вырезанными фрагментами.
  • «Как идентифицировать музыку в прямых аудиопотоках с помощью API» охватывает модель потоков в целом: callback-запросы, longpoll, форматы, надежность.
  • «Отображение распознанной музыки в стриме Twitch» показывает сторону, ориентированную на зрителя, если некоторые из ваших авторов также транслируют на Twitch.

Пример кода

Когда хост сообщает, что канал вышел в эфир, начните мониторинг. Каждое совпадение затем будет приходить на ваш единственный callback-URL, помеченное radio_id этого канала.

Приемник callback-запросов считывает каждый POST с помощью audd.streams.handle_callback(request), который возвращает совпадение (с radio_id, временной меткой и song.artist / song.title / song.label / song.song_link) или уведомление о состоянии потока (650 — невозможно подключиться, 651 — нет музыки). Полный код приемника есть в руководстве по интеграции.

  • Мониторинг прямых трансляций ваших пользователей на наличие музыки
  • AudD для видеоплатформ и модерации пользовательского контента
  • AudD для стримеров Twitch
  • Вебхуки vs longpoll для результатов потока
  • Заметки агента: потоки и longpoll
  • Справочник API потоков

О чём эта статья