- 6 приложений радио под linux
- 1 . Krudio
- 2. Radio Tray
- 3. Radio Tray Lite
- 4. Gradio
- 5. Curseradio
- 6. Goodvibes
- Лучшие программы интернет-радио в Linux
- Лучшие программы интернет-радио для Linux
- 1. Sayonara
- 2. Rhytmbox
- 3. Clementine
- 4. Cantata
- 5. Shortwave
- 6. Radiotray-NG
- 7. Strimio
- 8. Internet Radio (расширение GNOME)
- 9. Advanced Radio Player (расширение KDE)
- 10. Streamtuner2
- Выводы
- Автоматизация работы интернет-радио на Linux
- Предисловие
- Настройка сервера Icecast
- Настройка ices
- Формирование плейлистов
- Реализация расписания
- База данных музыкальных композиций
- Сбор информации о вещании
- Голосование за композиции
- Показ информации на сайте
6 приложений радио под linux
Есть довольно много приложений Linux, проигрывающих интернет-радио, но большинство из них не представляют большого интереса. В этой статье, я постарался собрать наиболее понравившиеся мне решения.
1 . Krudio
Итак начну с моего любимого продукта, созданного моим хорошим товарищем и соратником по Manjaro Linux, Александром Ялинчуком. Он сейчас защищает рубежи нашей необъятной родины, поэтому разработка временно приостановлена, но пройдёт установленный срок службы и он возобновит разработку, этого прекрасного продукта.
Итак встречайте — krudio ! Это минималистичный радио проигрыватель, написанный на QT, великолепно проявляющий себя у меня в KDE, но тестировался также в XFCE и Gnome. Думаю, что не возникнет особых сложностей и с другими рабочими окружениями. Имеет поддержку уведомлений и MPRIS v2. Единственное замечание, часто высказываемое некоторыми индивидами, которое я слышал в отношении krudio, это отсутствие предустановленных радиостанций. Не у всех вероятно хватает интеллекта и навыков, чтобы единоразово скормить клиенту линк на понравившееся радио. Если вы один из таких людей, можете сразу проходить мимо, и обратить свой взор, на другие примеры.
Для установки в дистрибутивы на базе Archlinux достаточно выполнить в терминале команду:
В Git есть пакеты также для второсортных дистрибутивов вроде Ubuntu и OpenSuse.
Если же вы пошли ещё дальше и используете прости господи Fedora, то можете собрать его из исходников для это выполните три команды в терминале:
2. Radio Tray
Radio Tray, так же является минималистичным интернет-радио, который, как видно из названия, располагается в системном лотке (поддерживает AppIndicator). Приложение не новое, но довольно не плохое, хоть и тянет за собой немного gtk и выглядит несколько невзрачно, на мой взгляд, но любителям Gnome и Unity не привыкать. Имеет из коробки встроенный список радиостанций.
Установка в Arch-based дистрибутивах:
Для установки в Ubuntu, Debian и Linux Mint выполните:
Без установленного в Ubuntu python-xdg, приложение не запустится, и поговаривают, что в последних версиях убунту, python-xdg не указан в зависимостях. Благо в Арче, с этим всё прекрасно.
3. Radio Tray Lite
Radio Tray Lite — ни что иное как облегчённый, переписанный на C++ клон предыдущего приложения. Так же поставляется с предустановленным списком станций, для добавления новых станций придётся править
/.config/radiotray-lite/bookmarks.xml файл. Так как оригинальный Радио Трей немного устарел и не поддерживается, некоторые потоки в нём могут не проигрываться, и если вы столкнулись с подобной проблемой, то можете использовать, в качестве замены эту Lite версию.
Установка описана в Git Radio Tray Lite:
Для установки в Ubuntu:
Если не желаете добавлять PPA, возьмите deb пакет здесь.
4. Gradio
Gradio это GTK3 приложение для прослушивания интернет радиостанций. Довольно интересное приложение, в котором присутствует фильтрация по языку, стране и даже тегам. Есть поддержка MPRIS v2. Отображает битрейт и используемый кодек.
Gradio довольно функциональный продукт, ориентированный на требовательных пользователей, из минусов отмечу большую требовательность к ресурсам, относительно предыдущих продуктов.
Устанавливаем в Arch-производные дистрибутивы:
Для установки в Ubuntu необходимо добавить PPA:
Описание установки в другие дистрибутивы есть на странице в GitHub.
5. Curseradio
Curseradio — интернет радио браузер работающий в командной строке, для воспроизведения использующий любимый многими mpv. Linux хорош тем, что помимо приложений с графическим интерфейсом, в нём есть бесчисленное множество аналогов с интерфейсом командной строки, которыми можно пользоваться на машинах любой мощности, вне зависимости от окружения рабочего стола.
Из минусов, я лично для себя, выделил невозможность добавления собственных радиостанций, хотя, встроенный список достаточно обширен.
Для установки в любой линукс дистрибутив:
Установка в Ubuntu:
6. Goodvibes
Goodvibes легковесное интернет радио с GTK3 интерфейсом, помимо графического интерфейса так же умеет работать и с командной строкой.
По умолчание радио имеет не большой список радиостанций, но легко можно добавить свои станции. Поддерживает MPRIS v2.
В общем настроек много, покопайтесь в них и наверняка найдёте полезные фичи для себя.
Для запуска в CLI режиме выполните в терминале:
Установка в Archlinux и производных:
Установка в Ubuntu:
Пользователи других дистрибутивов на базе Linux могут собрать радио из исходников GitHub.
Источник
Лучшие программы интернет-радио в Linux
Прослушивание музыки помогает скоротать время и даже повышает производительность труда. Однако, не всем хочется искать музыку, составлять плейлисты и обновлять их время от времени. Поэтому интернет-радио является хорошей альтернативой локальной библиотеке. К тому же таким образом вы будете узнавать новости не отвлекаясь от рабочего процесса.
Для Linux существует не так много программ, специализирующихся именно на воспроизведении интернет-станций. В связи с этим мы рассмотрим и универсальные плееры, которым, как вы узнаете из обзора, тоже есть что предложить даже искушённому слушателю.
Лучшие программы интернет-радио для Linux
1. Sayonara
Стоит начать с аудиоплееров. Многие из них не ограничиваются воспроизведением лишь локальных файлов. Плеер Sayonara тому хорошее доказательство. На первый взгляд может показаться, что кроме скромной библиотеки Soma FM на главном экране ничего нет, но на самом деле надо включить Вид-Веб-потоки (Shift+F4).
Теперь нам доступны радиостанции ресурса fmstream.org. Также вы можете включить Запись потока в настройках. Тогда кнопка пауза изменит свой вид и по её нажатию вы сможете сохранить трансляцию на своём компьютере. Установить Sayonara можно с помощью команды:
sudo snap install sayonara
2. Rhytmbox
Rhythmbox – это простой плеер, предустановленный на многих дистрибутивах. Однако, даже он может подойти для воспроизведения онлайн-радио. Станции придётся добавлять вручную через кнопку Добавить, так как по умолчанию доступно всего несколько зарубежных. После этого вы можете изменить Жанр (каталог) станции через её свойства.
Из плюсов плеера стоит отметить интеграцию со средой рабочего стола GNOME. В её центре уведомлений появляется мини-плеер, через который можно управлять воспроизведением. Установить Rhythmbox можно с помощью команды:
sudo apt install rhythbox
3. Clementine
Clementine предлагает немало потоковых сервисов, но большая их часть требует авторизоваться, а некоторые и вовсе не работают. Однако, вы можете выбрать Icecast, содержащий большое количество станций. Если вы не нашли станцию через поиск, то можете добавить её вручную в раздел Ваши потоки радио.
Для установки Clementine воспользуйтесь командой:
sudo apt install clementine
4. Cantata
Cantata – это плеер с хорошей поддержкой аудиоформатов, но на этом его достоинства не ограничиваются. Имеется хорошая база радиостанций. В разделе Showcast станции разбиты по жанрам, а в TuneIn по регионам. Чтобы упростить себе задачу по выбору станции, можете воспользоваться поиском (кнопка находится в строке состояния).
Плеер является оболочкой для Music Player Daemon (MPD), учитывайте это. При закрытии плеера MPD продолжит воспроизведение. К счастью, в настройках в разделе Воспроизведение имеется необходимый пункт Остановить воспроизведение при выходе из программы. Лучше всего добавить репозиторий PPA, чтобы иметь последнюю версию Cantata:
sudo add-apt-repository ppa:ubuntuhandbook1/cantata-qt
sudo apt update
sudo apt install mpd cantata
5. Shortwave
Перейдём к программам, созданным непосредственно для прослушивания онлайн-радио. Shortwave стала преемником некогда популярной Gradio. Программа имеет лаконичный интерфейс и адаптирована под оболочку GNOME.
База станций берётся с ресурса radio-browser.info. К сожалению, добавить свои станции не получится. Можно лишь отправить понравившиеся станции в библиотеку (избранное). Установить Shortwave можно с помощью команды:
sudo snap install shortwave
6. Radiotray-NG
Ещё одна популярная программа Radiotray также перестала обновляться, но у неё есть ответвление Radiotray-NG. Программа запускается сразу в трее. Поддерживаются все популярные оболочки GNOME, KDE и даже Cinnamon. После установки программа прописывается в автозагрузке.
Доступно не так много станций и они разбиты по жанрам. Добавить свои станции не составит никакого труда. Имеется удобный редактор. Скачать программу можно со страницы GitHub.
7. Strimio
Разработчики Odio не стали изменять традиции и тоже переименовали своё приложение. Strimio имеет современный интерфейс с полупрозрачными элементами. К сожалению, это сказалось и на производительности. Запуск занимает несколько секунд, а в простое программа загружает одно ядро процессора практически по полной.
Из плюсов имеется неплохая база станций, но всё омрачает подписка и обязательная регистрация. В бесплатной версии вы не можете добавлять свои станции, и даже избранное ограничили десятью станциями. Установить Strimio можно командой:
sudo snap install strimio-desktop
8. Internet Radio (расширение GNOME)
Раз уж заговорили о работе из трея, то нельзя не упомянуть расширения для оболочек. Для GNOME неплохим вариантом будет Internet Radio. По умолчанию имеется всего несколько станций.
Управление не самое интуитивное. Есть редактор списка станций, можно изменить станцию, удалить её, но не добавить. Для этого в меню разместили специальную кнопку +. Ещё один недостаток заключается в том, что со светлой темой значки практически не читаются.
9. Advanced Radio Player (расширение KDE)
Для оболочки KDE также имеется расширение. Advanced Radio Player можно разместить как на рабочем столе, так и в трее. Редактор, в отличие от GNOME полноценный. К тому же имеется несколько настроек внешнего вида.
10. Streamtuner2
Streamtuner2 оставим в этом списке лишь в качестве упоминания. Кроме большого списка радиостанций, программе похвастаться нечем. Сама она не умеет воспроизводить звук, использует для этого сторонние плееры, которые к тому же не всегда справляются с этим. Rhythmbox не запускается, Clementine при первом запуске начинает воспроизведение, но переключиться на другую станцию после этого нельзя. Sayonara работает корректно, чего не скажешь о самом приложении.
Поиск станции выглядит странно и к тому же не работает. В правой части имеется выбор сервиса, но и тут не всё гладко, на некоторых из них программа вылетает. Streamtuner2 больше не обновляется и вряд ли ещё будет, так что ждать исправлений не приходится. Установить Streamtuner2 можно с помощью команды:
sudo apt install streamtuner2
Выводы
Мы рассмотрели лучшие программы интернет-радио в Linux. Если выбирать из аудиоплееров, то советуем рассмотреть Sayonara или Cantata. Эти плееры имеют хорошие каталоги станций, да и в целом являются неплохими программами для прослушивания музыки. Хотя наверняка кто-то из читателей вспомнит о всеядном VLC.
Среди узкоспециализированных программ стоит отметить Shortwave и Radiotray-NG. Strimio пока что оставляет не самое приятное впечатление. Остальные программы мы не рассматривали, они устанавливаются через Flatpak. Вряд ли вас устроит то, что небольшая программа подтягивает зависимости на несколько сотен мегабайт (а может быть и гигабайт).
Никто не мешает вам установить и расширение для оболочки. Для популярных GNOME и KDE имеются вполне рабочие варианты. А слушаете ли вы интернет-радио? Если да, то какую программу выбрали для себя? Делитесь своим мнением в комментариях.
Источник
Автоматизация работы интернет-радио на Linux
В этом посте я расскажу тебе об одном из методов автоматизации интернет-вещания – не самом надежном, но самом бюджетном. Сразу предупреждаю, что эта система заточена на использование ее под Linux, хотя с помощью знакомого многим «столярного инструмента», можно и под Windows реализовать. Эта статья расчитана на начинающих IT-шников, поэтому многие моменты я постарался «разжевать». Как у меня это получилось, решать тебе, мой дорогой читатель, но если мне удалось заинтересовать тебя, прошу под кат.
Предисловие
Итак, сначала позволю себе описать цели, которые я перед собой поставил:
1. Вещание нон-стоп 24/7/365 (не считая отключений электричества в доме).
2. Вещание по расписанию. То есть в определенный временной промежуток дня в эфире должны звучать композиции определенного стиля/жанра.
3. Поддержка «горячего» подключения и отключения ведущего/диджея.
4. Требования к сайту:
4.a. Скромная реализация голосования за звучащие композиции и, соответственно, рейтинг TOP-20/30/сколько_угодно.
4.b. Информация о текущем треке, о текущем стиле/жанре и, если нужно, о количестве слушателей.
Теперь немного о том, что было у меня в «заначке» (точнее, в кладовке):
— домашний компьютер 2003 года, AMD Athlon 1,8 GHz, который уже давно работает как домашний сервер (кстати, я снизил тактовую частоту до 1,1 GHz для экономии электроэнергии);
— операционная система Gentoo Linux;
— доступ в глобальную сеть
10Mbit/s + выделенный IP;
Настройка сервера Icecast
Итак, поехали. Я не буду описывать установку программ, т.к. в большинстве дистрибутивов они доступны в репозитариях и устанавливаются/собираются одной командой.
В качестве сервера был выбран Icecast 2.3.2, в качетсве source-клиента для нон-стопа – ices (версию не помню).
После установки нужно настроить Icecast следующим образом.
Настройка ices
С настройкой ices все проще:
Итак, сервер Icecast настроен, и его уже можно запустить (обычно, /etc/init.d/icecast start).
Ices тоже настроен, однако его запускать пока рано, ибо нет плейлиста для нон-стопа.
Собственно это сейчас и исправим…
Формирование плейлистов
Небольшое предисловие. Эту радиостанцию я поднимал не один, а с товарищем, у которого на компьютере гораздо больший запас музыки, чем у меня. Ранее была сделана виртуальная частная сеть (VPN) между нашими компьютерами и сервером, посему мы благополучно могли обмениваться файлами. Было принято решение хранить все треки для нон-стопа в отдельном каталоге на сервере, который доступен в samba-шаре, и в который мой коллега может загружать треки (а может и удалять).
Структура каталога проста:
Т.е. в основном каталоге Music имеется несколько подкаталогов для различных стилей (помнишь, я говорил о расписании нон-стопа?). В каждом таком подкаталоге расположены mp3-файлы и один плейлист.
Итак, начнем с маленького BASH-скрипта для формирования плейлистов для всех стилей.
Файл music_find.sh (спасибо differentlocal за упрощение моего скрипта)
Примечание: для людей, далеких от электронной музыки, поясняю, что Breaks, Chill, Hardcore это как раз стили электронной музыки.
И так как мой коллега далек от Linux, и не может зайти по SSH и запустить этот скрипт после обновления содержимого каталога, было решено поручить эту миссию Великому Крону:
Теперь через каждые 30 минут скрипт будет запускаться и обновлять плейлисты.
Однако, если ты еще не забыл, в конфиге ices был указан «главный» плейлист, который в этом скрипте не формируется.
Тут нужно вспомнить о расписании. Идея проста до безобразия: в определенное время (согласно расписанию эфира) копировать с заменой нужный плейлист в корневой каталог музыки (в моем случае /home/PUBLIC/Music). Сначала я думал реализовать расписание полностью на BASH, но потом вспомнил, что добрый Крон всегда готов нам помочь и выполнить всю грязную работу за нас. Таким образом возник скрипт, реализующий изменение плейлиста согласно расписанию.
Однако, сначала лирическое отступление…
Помнишь, при конфигурировании ices я отключил функцию рандомизации? Тебя наверное интересует, зачем? Причин две:
1. Бог его знает, как ices выполняет рандомизацию. Я привык (уж извините) максимально контроллировать ситуацию. Поэтому лучше сделать рандомизацию так, как сам хочешь, чтобы душа таки успокоилась.
2. Если ты читаешь эту статью, тебе, наверное, знаком термин «джингл». Так вот, если предполагается вставка джинглов в эфир (например, через каждые три трека), тут ices бессилен, т.к. он не знает, что это такое. Эта еще одна причина для написания собственной программы рандомизации.
BASH, конечно, штука хорошая, но для данной задачи я выбрал язык C++. Ниже приведен исходный код программы на C++, которая просто считывает содержимое созданного ранее плейлист-файла (имя передается ей в качестве параметра), перемешивает, и записывает в тот же файл.
Исходный код программы рандомизации:
В этой программе я не стал реализовывать вставку джинглов, но я искренне надеюсь, что ты, мой дорогой читатель, при необходимости легко подстроишь этот код по свои нужды или, что еще лучше, сам напишешь свой.
Реализация расписания
Итак, лирическое отступление закончено, вернемся к расписанию:
Сначала скрипт выполняет копирование с заменой нужного плейлист-файла, затем запускает программу рандомизации, записывает в текстовый файл текущий жанр (зачем, узнаешь позже)
и посылает сигнал «перечитать плейлист» ices. Если ранее ices завершил работу, скрипт его снова запустит. При этом важно знать, что ices начнет проигрывать новый плейлист только, когда закончит проигрывать текущий трек. Поэтому расписание будет выглядеть не очень элегантно, зато его можно поручить нашему другу Крону.
Привожу пример со своими стилями:
Та-да-дам! Вот теперь строительство вещания по расписанию закончено. Когда нет диджея, играет по расписанию нон-стоп, когда появляется диджей — слушателей автоматически перенаправляет на его «эфир». Однако, если ты помнишь, еще остались нереализованные задачи, касающиеся сайта.
База данных музыкальных композиций
Ах да, совсем забыл. Для реализации системы голосования я использовал БД MySQL. Так что потрудись, друг мой, обзавестись таковым, если еще этого не сделал.
Итак, нам нужно хранить в БД информацию о всех треках, которые присутствуют в «корневом музыкальном каталоге». Нужно создать базу данных (в моем примере это radio), а в ней две таблицы следующей структуры:
Таблица songs
id INT(11) AUTO_INCREMENT PRIMARY_KEY
Genre VARCHAR(15)
Title VARCHAR(100)
Filename VARCHAR(200)
Rate INT(11)
Таблица votes
id INT(11)
ip VARCHAR(16)
Теперь о печальном. Во-первых, далеко не у всех mp3-файлов (даже у лицензионных) корректные ID3-теги, а у большинства их вообще нет. Во-вторых, я не смог найти скрипт для чтения ID3-тегов из файлов. Поэтому пришлось пойти на некоторые жертвы. А именно: с помощью программы TagScanner вручную править ID3-теги всех файлов, а затем с помощью этой же программы переименовывать файлы согласно их уже корректным ID3-тегам. Я выбрал следующий шаблон:
Я не буду описывать в этой статье работу с этой программой. Скажу лишь, что принципиально важно сохранять ВСЕ ID3-теги НЕ в UTF-8. В настройках программы есть соответствующая опция. кроме того, нужно заменить все символы ‘&’ на, например, “and”. Программа позволяет делать это сразу для всех файлов.
ОК, предположим, что у нас теперь есть корректные имена файлов, соответствующие шаблону, и база данных правильной структуры. Далее, собственно, еще один скрипт, но уже на PHP (так что не забудь на досуге установить и его).
Приведенный выше скрипт сначала удаляет из БД записи о треках, которых уже нет в соответствующем каталоге, а затем добавляет новые, если они есть.
Было бы логично запускать этот скрипт сразу после составления плейлистов, поэтому добавим одну строчку в файл music_find.sh (предварительно, заменив путь на свой):
Теперь при составлении плейлистов автоматически будет обновляться информация в БД.
Вторую таблицу (votes) оставлю на закуску.
Сбор информации о вещании
Тут не буду особо вдаваться в подробности. Вашему вниманию предлагается php-скрипт, записывающий название текущего трека, стиль и количество слушателей в текстовые файлы. Предполагается, что эти файлы находятся в корне нашего сайта, т.е. если у тебя, друг мой, не установлен вебсервер, то поспеши его установить.
Этот скрипт нужно запускать каждую минуту, причем он выполняется 12 раз с задержками по 5 секунд. Этот «велосипед» связан с тем, что наш друг Крон не подразумевает о существовании единиц измерения времени меньше, чем 1 минута. А нам нужно обновлять эту информацию хотя бы раз в 5 секунд.
Что же, попросим Крона (в последний раз) запускать этот скрипт каждую минуту:
ОК, теперь в корне нашего сайта лежат аж 5 замечательных файлов:
• now_playing.txt — исполнитель и название текущего трека;
• id.txt — уникальный номер в БД текущей композиции;
• genre.txt — стиль трека, если играет нон-стоп, или строка «DJ On-Air”, если в эфире диджей;
• listeners.txt — количество слушателей (с учетом HTML-форматирования: если больше 0, то зеленым цветом, если ноль — черным);
• rate.txt — рейтинг трека (тоже с учетом HTML-форматирования).
Ух ты, мы уже почти получили все, что хотели (или то, чего я хотел). Осталось реализовать голосование и, собственно, показ нужной информации на сайте.
Голосование за композиции
Первое, о чем я подумал, когда захотел реализовать голосование — а как блокировать повторные голосования за один трек? Обычно используют Cookies, но я с ними никогда не работал (да, такое тоже бывает), и решил блокировать по IP-адресу. Поэтому в таблице votes всего два поля: id и ip.
Файл vote.php (должен располагаться в корне сайта):
Этот скрипт принимает один параметр — вид голосования (за или против). Соответственно, вызов
добавит 1 рейтинга текущему треку, а
отнимет 1 рейтинга.
Показ информации на сайте
Итак, голосование — есть. Осталось, разве, что вывести на сайте всю необходимую информацию. Я не буду приводить конкретный HTML-код. Просто напомню, если вдруг ты забыл, о существовании замечательного фреймворка jQuery.
Пусть в нужных местах HTML-кода стоят элементы или с для названия трека, с для жанра и тд.
Тогда удобно встроить в следующий вызов (конечно, библиотеку jQuery нужно добавить в каталог сайта и подключить):
И тогда каждые 5 секунд информация на странице будет обновляться (причем, без перезагрузки страницы).
Помнишь, в начале статьи я заявил о показе рейтинга TOP20? Да, это было бы здорово.
Итак, последний скрипт, который выдает таблицу лучших (type=1) или худших (type=2) треков определенного стиля/жанра в следующем формате:
| Композиция | Рейтинг |
Файл top20.php (лучше допилить инструментом под свой сайт):
Вот и все. Далее нужно встроить этот скрипт в нужное место HTML-кода (можно использовать тот же jQuery, только без setInterval(‘show()’,5000). Но это я оставляю тебе, мой юный друг, в качестве домашнего задания.
Искренне надеюсь, что мой рассказ окажется тебе полезным или просто интересным.
Источник