Тема: Интернет-радио с динамическим плейлистом

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

Вижу это примерно так:
1. Пользователь зашел на сайт типа (например https://jsfiddle.net/wjckm0xk/) играет музыка все ок
2. Когда музыка проиграла 50%+ веб-сервер (NodeJS) отправляет новый файл в папку с музыкой.
3. Когда музыка закончила играть icecast (или что-то другое) включает следующий файл в папке с музыкой.

Вопросов у меня несколько:

1. Какой инструмент для аудио-стрима лучше всего использовать с динамической загрузкой файлов по ходу эфира? Если такое вообще возможно? icecast, radioboss? Или еще что-то?
2. Какой недорогой сервер выбрать для аудио-стрима? Посмотрел leaseweb - цены дороговаты да и не нужны мне 4 теребайта жесткого диска.
Есть что-то дешевле для таких задач? Поскольку планирую записывать/удалять файлы, то и места под хранилище много не нужно. Бюджет до 30$/месяц.
3. Как посчитать, какая необходимая мощность для такого радио на 10/100/1000 человек?


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

2

Re: Интернет-радио с динамическим плейлистом

Зачем такие сложности?
Используйте уже готовые решение, которые вполне входят в ваш бюджет.
https://radioheart.ru

http://radioheart.ru/banners/radioheart_400x40_banner.jpg
RadioHeart.ru: Функциональный радио хостинг с автодиджеем и нонстопом, а так же быстрый виртуальный хостинг. Возможность создать радио за 5 минут, подключить автодиджей и нонстоп.
Отзывы о хостинге

3

Re: Интернет-радио с динамическим плейлистом

Falcon пишет:

Зачем такие сложности?
Используйте уже готовые решение, которые вполне входят в ваш бюджет.
https://radioheart.ru

Нету АПИ для загрузки файлов

4

Re: Интернет-радио с динамическим плейлистом

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

1)- откуда музыка  будет грузиться?
2) откуда она будет грузиться - там какое кол-во песен будет лежать и в каком порядке? Выбираться будет также - случайным образом ?

ваша задача подходит под стандартную обычную связку шарманки на icecast и Liquidsoap

вот как это сделать: habrahabr.ru/post/156591/

или с ices  habrahabr.ru/post/131116/

бюджет вполне хороший ... иди на проверенные и стабильные VDS  Москвы или Питера ...  reg / timeweb и другие.

ну, больше 100 слушателей ты врятли наберешь за первые полгода ...  там сам определишься с каналом . нужен ли тебе он шире или нет.

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

твоё радио сводиться к тому что на нем ничего делать не нужно- минимум трудозатрат. Но до тебя уже такое радио давно изобрели Яндекс,  Гугл и куча других сервисов по проигрыванию музыки из браузера  .... Один только Яндекс.Музыка половину всей интернет аудитории любителей послушать радио  - переманили к себе ...
р/хостинги со своей кучкой школьников нервно курят в сторонке ругая данные бесплатные сервисы  радио ..

Отредактировано radio_good (19-04-2018 19:45:01)

5

Re: Интернет-радио с динамическим плейлистом

radio_good пишет:

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


ваша задача подходит под стандартную обычную связку шарманки на icecast и Liquidsoap

вот как это сделать: habrahabr.ru/post/156591/

или с ices  habrahabr.ru/post/131116/

бюджет вполне хороший ... иди на проверенные и стабильные VDS  Москвы или Питера ...  reg / timeweb и другие.

ну, больше 100 слушателей ты врятли наберешь за первые полгода ...  там сам определишься с каналом . нужен ли тебе он шире или нет.

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

твоё радио сводиться к тому что на нем ничего делать не нужно- минимум трудозатрат. Но до тебя уже такое радио давно изобрели Яндекс,  Гугл и куча других сервисов по проигрыванию музыки из браузера  .... Один только Яндекс.Музыка половину всей интернет аудитории любителей послушать радио  - переманили к себе ...
р/хостинги со своей кучкой школьников нервно курят в сторонке ругая данные бесплатные сервисы  радио ..


1)- откуда музыка  будет грузиться?
2) откуда она будет грузиться - там какое кол-во песен будет лежать и в каком порядке? Выбираться будет также - случайным образом ?

Брать буду видео по ссылке с ютуба, конвертировать в аудио файл. Этот файл и буду отдавать на стрим. По истечению ккого-то количества времени, крутим барабан и вытаскиваем новую ссылку с ютуба. В принципе для этого и нужен NodeJS, на нем будет эта логика и не только эта.

бюджет вполне хороший

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

твоё радио сводиться к тому что на нем ничего делать не нужно- минимум трудозатрат.

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

6

Re: Интернет-радио с динамическим плейлистом

bloodypastor пишет:
Falcon пишет:

Зачем такие сложности?
Используйте уже готовые решение, которые вполне входят в ваш бюджет.
https://radioheart.ru

Нету АПИ для загрузки файлов

При должном желании и договоренности мы может запросто это реализовать.

http://radioheart.ru/banners/radioheart_400x40_banner.jpg
RadioHeart.ru: Функциональный радио хостинг с автодиджеем и нонстопом, а так же быстрый виртуальный хостинг. Возможность создать радио за 5 минут, подключить автодиджей и нонстоп.
Отзывы о хостинге

7

Re: Интернет-радио с динамическим плейлистом

При должном желании и договоренности мы может запросто это реализовать.

Ответьте в личку, ну или здесь

8

Re: Интернет-радио с динамическим плейлистом

Да вы что - минут на 15 работы даже с ютубом и replaygain, берете вот и лепите. Другое дело что идея дрянь, и исполнитель ищет в гугле...

9

Re: Интернет-радио с динамическим плейлистом

gyurgin_ пишет:

Да вы что - минут на 15 работы даже с ютубом и replaygain, берете вот и лепите. Другое дело что идея дрянь, и исполнитель ищет в гугле...

За ссылку спасибо. А в чем дрянь то? И где искать, если не в гугле? В Чебурнете?

10

Re: Интернет-радио с динамическим плейлистом

Искать для начала надо у себя, задумали youtube использовать - не годная идея изначально качать видео и играть аудио, но, протестируйте сперва, сколько это времени занимает, ресурсов, вобще каков процент попадания на битый или защищенный файл и решите как это обыгрывать. Если это не решено то и делать нечего. Дальше прыгаем - почему б.. т после какого то момента готовим следующий трек?? Чего ждем? Сразу как сменились убедились что новый зиграл лепим следующий чтоб на момент запроса если уж не готов был так хоть в процессе хоть и известно что либо будет либо надо срочно позарез готовить замену. Радио ждать не будет... А про чебурнет я не знаю что это такое))

11

Re: Интернет-радио с динамическим плейлистом

gyurgin_ пишет:

Искать для начала надо у себя, задумали youtube использовать - не годная идея изначально качать видео и играть аудио, но, протестируйте сперва, сколько это времени занимает, ресурсов, вобще каков процент попадания на битый или защищенный файл и решите как это обыгрывать. Если это не решено то и делать нечего. Дальше прыгаем - почему б.. т после какого то момента готовим следующий трек?? Чего ждем? Сразу как сменились убедились что новый зиграл лепим следующий чтоб на момент запроса если уж не готов был так хоть в процессе хоть и известно что либо будет либо надо срочно позарез готовить замену. Радио ждать не будет... А про чебурнет я не знаю что это такое))

та об этом не беспокойтесь, протестирую. Локально это занимает очень мало времени, конечно в реальности на живом сервере будет задержка, как вариант - наперед загружать 2 файла. Это будет потом и это я найду как решить.
Зачем такое делать? Как сделаю, тогда и оцените - дрянь или не дрянь. База уже есть, логика за малым, осталось только радиовещание завести и все, сайт готов.

Сейчас уперся в то, что Liquidsoap не видит новых файлов в папке. Сейчас просто запускаю его в консоли.

user@user-VirtualBox:/etc$ liquidsoap 'out(playlist("icecast2"))'

В папке icecast2 лежит один файл. Как только он стартует , я копирую сразу же новый файл в папку, но его не Ликвид не видит и заново повторяет первый трек.

12

Re: Интернет-радио с динамическим плейлистом

Я вроде ссылку дал и там все понятно... Liquidsoap доигрывает один и у Вас спрашивает новый файл. Логика за малым... где в Ваших действиях логика? Одкуда ему знать что что то изменилось? Не тупим.

13

Re: Интернет-радио с динамическим плейлистом

А почему бы и не должен знать? Если он допустим перед каждой новой песней смотрит папку и видит новый файл, то может воспроизвести его. Или это что-то из разряда фантастики? Может это и не реализовано, но могло бы быть и реализовано. Ничего космического. Вы же когда копируете файл с одной папки в другую, его там сразу видно, не нужно же перезапускать компьютер. Вполне ожидаемо что и здесь так будет. А вы сразу: не тупим.

Вообще кому как, мне там мало чего понятно. Даже не знаю с чего начать.

This function, of type ()->request, can for example call an external program.

Program? Какую еще программу? Может имелось ввиду скрипт, функцию? понятие "програма" - очень расплывчастое.
Далее как я понимаю это будет radio.liq файл

def my_request_function() = 
  #В Get the first line of my external process
  result =
    list.hd(
      get_process_lines("playlist2.pls"))
  #В Create and return a request using this result
  request.create(result)
end

#В Create the source
s = request.dynamic(my_request_function)

В playlist22 будет написан список песен,а мне потом что дописывать вручную новые песни в тот файл?

14

Re: Интернет-радио с динамическим плейлистом

Вообще для человека, который второй день вообще узнал о существовании icecast, liquid, документация - просто застрелиться

15

Re: Интернет-радио с динамическим плейлистом

get_process_lines("my_script my_params"))

Вы же вроде хотели nodejs, пожалуйста - лепите запрос, ток cli, на выходе путь к файлу.
А вобще т читать надо с начала и все будет понятно))