Разработка интернет-сервиса радио для вещания в формате 24 часа / 365 дней

Заказчик
RED DUCK SERVICE – озвучит любое место и пространство без дополнительных технических затрат. Компьютер, планшет, смартфон, плеер или иное имеющееся у вас устройство с доступом в Интернет и выходом на акустические системы обеспечат вам полное и качественное отсутствие тишины.
Задача
В этом кейсе мы расскажем, как организовать вещание интернет-радио с нуля и сделать удобный веб-сервис b2b для подписки к сервису и прослушивания радио.

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

Вся работа по проекту состояла из следующих этапов:

  1. настройка сервера радио для вещания в формате 24 часа / 365 дней;



  2. разработка интерфейсов администрирования сервиса — загрузка музыки на сервер, настройка плей–листов, администрирование пользователями — play.rdsradio.ru;

  3. разработка сайта–визитки сервиса с адаптивным дизайном (rdsradio.ru);

  4. разработка интерфейсов пользовательской части сервиса — Личный кабинет пользователя (регистрация, выписка счетов, оплата, получение доступа к радио и т.д.) — play.rdsradio.ru. Все веб-интерфейсы разрабатывались с адаптивным дизайном.

  5.  мобильное приложение RDS для Android;

  6. оформление аккаунтов социальных сетей.

Опишем каждый пункт подробнее.

1. Настройка сервера

Загрузка файлов музыки на сервер вещания

Для удобства загрузки музыки на сервер было решено использовать Dropbox.

Работает это так: менеджер плейлистов копирует нужные файлы музыки в папки Dropbox на своём компьютере, и они практически сразу оказываются на сервере радио, настроенном на синхронизацию с Dropbox.

Чтобы избежать возможности случайного удаления на сервере файлов музыки, необходимой для звучания на радио (при каких-либо ошибках синхронизации или случайном удалении всех файлов на Dropbox), была настроена односторонняя синхронизация с аккаунта Dropbox на сервер (только на запись, без удаления файлов на сервере радио).

Удаление ненужных файлов было предусмотрено в интерфейсах управления радио-плейлистами на фронт-энде. Там можно пометить неиспользуемые в эфире музыкальные файлы для их удаления - после этого они удаляются локально, на сервере радио, а также в аккаунте Dropbox (для обратной синхронизации).

Для нормирования громкости звучания различных треков на сервере радио автоматически, каждый час, запускается анализатор mp3gain, дописывающий в новые файлы mp3 данные по рекомендуемой громкости воспроизведения, которые потом используются при воспроизведении файлов музыки.

Составление плей-листов для радиостанций

Сервис радио предлагает несколько тематических радиостанций. Актуальный список радиостанций можно посмотреть и даже послушать в тестовом режиме на сайте rdsradio.ru, регистрироваться для этого не нужно.

Управление списками плейлистов реализовано в системе администрирования сайтом rdsradio.ru.

Все загруженные на сервер файлы музыки выводятся в виде дерева папок и файлов c удобным поиском по базе файлов.

Каждому файлу перед проигрыванием на радио необходимо

  • добавить его данные, которые будут отображаться при воспроизведении, - название песни, исполнителя, альбома,
  • указать на каких радиостанциях будет проигрываться этот файл (и с каким весом, то есть с какой частотой по отношению к другим трекам плейлиста),
  • добавить информацию по поставщику лицензии на воспроизведение файла в публичных местах.

Эти данные затем формируются в отчет для определения доли лицензионного вознаграждения данного поставщика (в зависимости от частоты проигрывания его файлов в эфире).

На экране списка файлов можно также пометить ненужные файлы для удаления с сервера.

Как показала практика, менеджеру плейлистов зачастую было удобнее работать с данными через Excel. Поэтому была реализована возможность выгрузки данных по базе (исполнители, альбомы, треки) в csv-файл и, наоборот, импорт данных в базу сайта из csv.

При обновлении в базе сайта данных о том, какие треки входят в плейлист какой станции, веб-сервер генерит файлы плейлистов в определенной папке на сервере (построчный список с путями к трекам). Также скрипт генерации запускается автоматически по расписанию, каждый час, для изменения порядка проигрывания песен в списке. Обычно в плейлист входит около ста треков. Новый плейлист не подхватывается в эфир, пока не проиграет полностью предыдущий. Очередность треков при составлении плейлиста устанавливается случайным образом с учетом весов частоты звучания треков. Кроме того, есть общая настройка, которая тоже учитывается при генерации, - через сколько минимум других треков возможно повторение одного и того же трека.

2. Разработка интерфейсов администрирования сервиса

Настройка ПО для вещания интернет-радио

В вопросе выбора ПО для интернет-вещания предпочтение было отдано open-source связке Icecast + Liquidsoap.

Для каждой из радиостанций скрипт Liquidsoap подхватывает файл плейлиста, нормирует громкость воспроизведения функцией ReplayGain, добавляет наложение между треками (crossfade) и передаёт поток на сервер вещания Icecast, к которому подключаются клиенты (радиослушатели).

Авторизация радиослушателей и воспроизведение на конечных устройствах

Воспроизведение радио возможно на сайте rdsradio.ru после авторизации пользователя со своими учетными данными. В качестве плеера там используется кроссбраузерный open-source плеер JPlayer. Вот, такой минималистичный плеер с выводом информации по текущему треку:

Эта информация «выуживается» следующим образом. Каждые 5 секунд на сервере происходят обращения к файлам логов Liquidsoap (в которых есть информация о звучащем на данный момент файле), и, основываясь на данных о файловом пути из базы сайта, подтягивается информация о данном треке (название, исполнитель, альбом и фото альбома). Браузер пользователя на лету, Аяксом, обновляет данные по треку на странице воспроизведения. Когда пользователь нажимает в плеере кнопку play, плеер обращается по ссылке к серверу Icecast для данной радиостанции и передаёт также логин пользователя и одноразовый пароль, генерируемый на лету из пароля пользователя к учетной записи. Одноразовые пароли используются для обеспечения дополнительной безопасности от угона паролей.

Icecast, в свою очередь, передаёт данные логин-пароля на веб-сервер сайта для проверки этих данных - имеет ли данный пользователь право на воспроизведение потока. После проверки по базе, при положительном ответе от веб-сервера, Icecast запускает передачу радиопотока клиенту.

Для получения данных радио для авторизации пользователя, а также для получения данных по радиостанциям и звучащим в данный момент трекам, на веб-сервере реализовали простейшее API для воспроизведения всех нужных операций и получения данных в мобильном приложении.

3. Для презентации сервиса мы разработали адаптивный сайт-визитку на двух языках.

На сайте можно протестировать звучание живого эфира радиостанции и оценить качество композиций.

4. Личный кабинет пользователя

В личном кабинете на сайте rdsradio.ru пользователь

  • заполняет все необходимые данные: реквизиты компании, адреса лицензируемых объектов,
  • выставляет счет, выбирая нужный ему тариф и срок доступа к сервису,
  • оплачивает счет и получает доступ к радио.

В личном кабинете он также может скачать закрывающие документы, которые генерятся автоматически по всем компаниям.

5. Мобильное приложение RDS для Android

Помимо браузерного плеера радио мы разработали мобильное приложение для Android.

6. Оформление аккаунтов социальных сетей

Дополнительно мы создали демо-версию плеера для социальных сетей. Плеер внедряется в виде iframe-приложения.

Результатом работы стал удобный сервис, который полностью автоматизирует процесс озвучивания публичных мест: начиная с момента оформления контракта и заканчивая выбором качественной лицензионной музыки для своего бизнес-пространства. Функциональный сервис позволил Заказчику значительно минимизировать процесс взаимодействия с клиентами на всех этапах сотрудничества, а также максимально упростил работу клиента с сервисом, исключив из цепочки проблемы с аппаратным обеспечением.


Перейти на сайт

В карточку агентства

Письмо автору кейса

Пользуйтесь реальным опытом в IT и следите за успехами потенциальных подрядчиков и конкурентов
Читайте также
Кейсы по теме#Комплекс услуг