Консольно-терминальная утилита RADIOACTIVE - это отличный, мощный, простой инструмент для прослушивания и записи радио станций со всего мира прямо из вашего Терминала.
Простая навигация, понятные команды, отличное качество звука, регулируемая громкость трансляций радио-станций, добавление в Закладки, поиск станций по коду страны/штату (области)/тэгу/языку/названию станции и мн. другое...
Минимальное потребление ресурсов системы.
Работает во всех операционных системах (вкл. Windows) при установленных предварительно в них Python 3 и FFmpeg.
Невероятно огромная база радио-станций со всего мира на любой вкус...
Интерфейс утилиты в Терминале (Ctrl+Alt+T) выглядит так:
- здесь скрин GNOME-Terminal в Arch Linux
- а это скрин GNOME-Terminal в Ubuntu
Итак приступим к Установке...
Прежде всего, чтобы RADIOACTIVE заработала, нам обязательно нужно установить (а может у вас уже установлено) дополнительно некоторые пакеты: — FFmpeg - набор свободных библиотек с открытым исходным кодом, которые позволяют записывать, конвертировать и передавать цифровые аудио- и видеозаписи в различных форматах
(если у вас уже установлено, то просто пропустите этот шаг)
Открываем Терминал (Ctrl+Alt+T), вписываем следующую команду и жмём на Enter:
- в дистрибутивах на базе Debian (Debian, Ubuntu, Linux Mint, Kali Linux и пр...)
sudo apt install ffmpeg
или
sudo apt-get install ffmpeg
- в дистрибутивах на базе Arch Linux (Arch Linux, Manjaro, Ctlos Linux и пр...)
sudo pacman -S ffmpeg
или
(если установлен yay - вспомогательный инструмент Arch Linux AUR, написанный на Go. Помогает автоматически устанавливать пакеты из PKGBUILD)
yay -S ffmpeg
— pip (тут имеется в виду pip3) - система управления пакетами для установки и управления программным обеспечением, написанным на языке программирования Python 3 (установлен по умолчанию во всех дистрибутивах Linux), работающая через командную строку
(если у вас уже установлено, то просто пропустите этот шаг)
Существует 2 способа установки pip:
1. Установка одним пакетом из репозиторияLinux-дистрибутива
- в дистрибутивах на базе Debian (Debian, Ubuntu, Linux Mint, Kali Linux и пр...)
sudo apt install python3-pip
или
sudo apt-get install python3-pip
- в дистрибутивах на базе Arch Linux (Arch Linux, Manjaro, Ctlos Linux и пр...)
sudo pacman -S python-pip
или
(если установлен yay - вспомогательный инструмент Arch Linux AUR, написанный на Go. Помогает автоматически устанавливать пакеты из PKGBUILD)
yay -S python-pip
2. Ручное скачивание скрипта установки, его запуск на Установку, принудительное обновление pip и удаление отработавшего скрипта установки
Скачиваем скрипт установки pip через Терминал (Ctrl+Alt+T) и для этого вписываем следующую команду и жмём на Enter:
(для любого дистрибутива Linux)
wget https://bootstrap.pypa.io/get-pip.py
А теперь устанавливаем pip командой:
python get-pip.py
или
(если ругнётся на отказ в доступе)
sudo python get-pip.py
Далее для любых Linux-дистрибутивов.
Обязательно выполняем принудительное обновление pip командой:
(она же является командой принудительного обновления в будущем)
pip install --upgrade pip
или
(если ругнётся на отказ в доступе)
sudo pip install --upgrade pip
И вероятнее всего, после выполнения предыдущей команды принудительного обновления или попытки установить какой-либо пакет с помощью pip вы можете, а скорее всего столкнётесь с такой вот проблемой/ошибкой:
(опять же, если такой ошибки у вас не выдаст, то просто пропустите этот шаг и сразу переходите к установке RADIOACTIVE)
error: externally-managed-environment
Чтобы исправить эту ошибку выполняем поочерёдно следующие команды:
Это может понадобиться для дистрибутивов на базе Arch Linux (Arch Linux, Manjaro, Ctlos Linux и пр...), но не факт...
- создаём виртуальное окружение Python 3
python -m venv venv
Далее для всех дистрибутивов
- узнаём и запоминаем/записываем точную версию установленного по умолчанию в системе Python 3
python -V
и видим вывод с версией Python, что-то наподобие:
(нам нужна только комбинация из первой и двух после точки цифр. Конкретно здесь 3.11)
Python 3.11.5
- удаляем следующую секцию, вписав правильно в код версию, установленного в вашей системе Python 3:
sudo rm /usr/lib/python3.11/EXTERNALLY-MANAGED
И снова выполняем принудительное обновление pip командой:
pip install --upgrade pip
или
(если ругнётся на отказ в доступе)
sudo pip install --upgrade pip
и видим по выводу, что pip успешно обновился до самой последней версии:
Successfully installed pip-XX.X.X
Ну и, дабы не захламлять Домашнюю папку/каталог, после установки pip2-м способом (установка скриптом), удаляем не нужный более нам скрипт установки pip, скачанный нами (он по умолчанию скачался именно в Домашнюю папку/каталог) командой:
rm get-pip.py
И теперь, после установки всех необходимых для работы RADIOACTIVE пакетов, мы можем смело переходить к его устанавке.
Также существует 2 способа установки RADIOACTIVE:
1. Установка рекомендованным автором RADIOACTIVE способом установки с помощью pipx - инструмент, позволяющий устанавливать «толстые» Python-пакеты сразу в отдельное Python-окружение, перенося при этом все точки входа (сценарии, приложения и т. п.) в: ~/.local/bin
- устанавливаем pipx поочерёдно командами:
(если у вас он уже установлен, то просто пропустите этот шаг)
Все эти команды установки RADIOACTIVE являются и командами её обновления в будущем, о чём, при выходе очередного обновления, вам она всегда будет выводить уведомление/сигнализировать в выводе во время её работы.
Теперь ОБЯЗАТЕЛЬНО ПЕРЕЗАГРУЖАЕМ систему!!!
После перезагрузки системы мы можем приступать к прослушиванию наших любимых радио-станций/каналов в RADIOACTIVE.
Как это работает?
Т.к. данная утилита является консольно-терминальной, то для её работы нам естественно понадобится Терминал (Ctrl+Alt+T).
Открываем его, вводим следуюую команду, жмём на Enter:
radio
и видим его вывод, как на первых 2-х скринах данной статьи, что говорит об успешной установке и рабочем состоянии RADIOACTIVE.
Давайте сразу же выведим Справку (Help) RADIOACTIVE, чтобы ознакомиться с алгоритмом работы с данной утилитой, командой:
radio --help
В результате отработки данной команды мы получаем вот такой список применяемых в утилите параметров (команд)/аргументов (arguments):
Аргументы:
╭──────────────────────────────── RADIOACTIVE ─────────────────────────────────╮
│ │
│ 📻 Play any radios around the globe right from this Terminal ⚡! |
│ 😄 Author: Dipankar Pal │
│ ❓ Type '--help' for more details on available commands │
│ 🐛 Visit: https://github.com/deep5050/radio-active to submit issues │
│ ⭐ Show some love by starring the project on GitHub ❤ │
│ 💵 You can donate me at https://deep5050.github.io/payme/ │
│ ❌ Press Ctrl+C to quit │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
┏━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Arguments ┃ Description ┃ Default ┃
┡━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ --search, -S │ A station name to search on │ │
│ │ the internet │ │
│ --uuid, -U │ A station UUID to play it │ │
│ │ directly │ │
│ --country, -C │ Discover stations by country │ │
│ │ code │ │
│ --state │ Discover stations by country │ │
│ │ state │ │
│ --tag │ Discover stations by │ │
│ │ tags/genre │ │
│ --language │ Discover stations by │ │
│ │ language │ │
│ --play, -P │ A station name from fav list │ │
│ │ or a stream url │ │
│ --last │ Play last played station │ False │
│ --add, -A │ Add a station to your │ False │
│ │ favorite list │ │
│ --favorite, -F │ Add current station to │ False │
│ │ favorite list │ │
│ --list │ Show your favorite list │ False │
│ --remove │ Remove stations from │ False │
│ │ favorite list │ │
│ --flush │ Clear your favorite list │ False │
│ --limit, -L │ Limit the number of station │ 100 │
│ │ results │ │
│ --sort │ Sort the results page, see │ clickcount │
│ │ documentation │ │
│ --volume, -V │ Volume of the radio between │ 80 │
│ │ 0 and 100 │ │
│ --record, -R │ Record current stations │ False │
│ │ audio │ │
│ --filepath │ Path to save the recorded │ /home/fin/Music/radioactive │
│ │ audio │ │
│ --filename, -N │ Filename to save the │ <station-date@time> │
│ │ recorded audio │ │
│ --filetype, -T │ Type/codec of target │ mp3 │
│ │ recording. (mp3/auto) │ │
│ --kill, -K │ Stop background radios │ False │
│ --loglevel │ Log level of the program: │ info │
│ │ info,warning,error,debug │ │
└─────────────────┴──────────────────────────────┴─────────────────────────────┘
For more details : https://github.com/deep5050/radio-active/blob/main/README.md
В шапке (как правило она появляется всегда при каких-либо маниупляциях с утилитой) вывода аргументов общая информация об утилите, её авторе, адресе на GitHub-е, конечно просьбе о донате и о двух самых нужных и используемых командах:
radio --help - вызов Справки
и
Ctrl+C - выход из утилиты/приложения
А теперь переведём этот список на наш Могучий, Родной, Русский язык:
--search, -S — поиск станции по имени --uuid, -U — прямое воспроизведение станции по её UUID --country, -C — поиск станций по региону страны --state — поиск станций по тегу/жанру --language — поиск станций по языку --play, -P — воспроизведение по названию станции из списка избранных (Закладки) или URL-адрес потока --add, -A — добавление станции в Закладки по названию --favorite, -F — добавление текущей, прослушиваемой станции в Закладки --list — показ/отображение вашего листа станций в Закладках --remove — удаление станции из Закладок --flush — очистка вашего листа Закладок от всех сохранённых в него станций --limit, -L — лимит количества отображаемых по поиску станций (по умолчанию 100) --sort — сортировка итоговой страницы, смотреть ниже синтаксис использования --volume, -V — громкоксть воспроизведения радио-станции между 0 и 100 (по умолчанию 80) --record, -R — запись текущей, прослушиваемой станции в аудио-файл --filepath — путь для сохранения аудио-файла текущей, прослушиваемой станции
(например в /home/user/Музыка/radioactive. Вместо user - ваше имя Пользователя) --filename, -N — имя сохраняемого/записываемого аудио-файла (например название_станции-дата@время) --filetype, -T — тип/формат/кодек записываемого аудио-файла (по умолчанию mp3) --kill, -K — остановка всех станций в фоновом звучании --loglevel — режима логирования утилиты: info (информация), warning (предупреждение), error (ошибка), debug (отладка)
(по умолчанию info (информация))
И для полного понимания, как всем этим пользоваться, синтаксис использования всех этих аргументов/команд:
И давайте разберём подробно неокторые из наиболее часто-используемых аргументов/команд.
Например, давайте найдём станцию Ретро ФМ и для этого воспользуемся аргументом/командой --search, -S.
Вводим такую команду и жмём на Enter:
radio --search Ретро
или
radio -S Ретро
и видим такой вывод с результатом поиска по названию станции:
Поиск по названию:
╭──────────────────────────────── RADIOACTIVE ─────────────────────────────────╮
│ │
│ 📻 Play any radios around the globe right from this Terminal ⚡! │
│ 😄 Author: Dipankar Pal │
│ ❓ Type '--help' for more details on available commands │
│ 🐛 Visit: https://github.com/deep5050/radio-active to submit issues │
│ ⭐ Show some love by starring the project on GitHub ❤ │
│ 💵 You can donate me at https://deep5050.github.io/payme/ │
│ ❌ Press Ctrl+C to quit │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
┏━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ID ┃ Station ┃ Country ┃ Tags ┃
┡━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
│ 1 │ радио ретро сан ремо │ The Russian │ myzic │
│ │ │ Federati... │ │
│ 2 │ радио ретро сан ремо │ The Russian │ myzic │
│ │ │ Federati... │ │
│ 3 │ Радио Ретроклуб │ The Russian │ retro,talk │
│ │ │ Federati... │ │
│ 4 │ Ретро │ Ukraine │ pop │
│ 5 │ Ретро FM │ The Russian │ classic │
│ │ │ Federati... │ hits,moscow,... │
│ 6 │ Ретро FM — Вечеринка │ The Russian │ disco,pop,retro │
│ │ │ Federati... │ │
│ 7 │ РЕТРО FM 320k │ The Russian │ pop │
│ │ │ Federati... │ │
│ 8 │ Ретро FM 70e │ The Russian │ │
│ │ │ Federati... │ │
│ 9 │ Ретро FM 70e │ The Russian │ 70s │
│ │ │ Federati... │ │
│ 10 │ Ретро FM 90e │ The Russian │ 90s │
│ │ │ Federati... │ │
│ 11 │ Ретро FM ВЛ │ Afghanistan │ classical │
│ 12 │ Ретро FM Рига (Retro │ Latvia │ classic hits,hits │
│ │ FM) │ │ │
│ 13 │ Ретро FM │ The Russian │ disco,pop,rock │
│ │ Санкт-Петербург (128 │ Federati... │ │
│ │ ... │ │ │
│ 14 │ Ретро ФМ │ The Russian │ │
│ │ │ Federati... │ │
│ 15 │ Ретро Хит │ The Russian │ misc │
│ │ │ Federati... │ │
│ 16 │ Ретро Хит │ The Russian │ │
│ │ │ Federati... │ │
│ 17 │ РЕТРО ХИТ - RETRO HIT │ The Russian │ adult,amg,gold,pop,r.… │
│ │ │ Federati... │ │
│ 18 │ РетроФМ │ The Russian │ │
│ │ │ Federati... │ │
└────┴────────────────────────┴───────────────────────┴────────────────────────┘
i | Type 'r' to play a random station
Type the result ID to play:
Сразу под списком мы видим информационную строку, что если нажать на клавиатуре на клавишу/букву - r, то тогда будет рандомно (случайным выбором) проигрываться весь этот список найденных станций, в названиях которых присутствует слово Ретро.
Но т.к. нам нужна конкретная станция, то как раз последняя строка под списком нам предлагат ввести/напечатать - ID (номер станции из левой колонки - ID списка результата поиска), что мы с вами и сделаем, выбрав например из этогой колонки списка ID (номер) - 5 (станция Ретро FM).
Вписываем его и жмём на Enter.
Результатом этого будет начавшаяся трансляция и прослушивание данной радио-станции:
Под названием прослушиваемой станции Ретро FM мы видим информационную строку:
i | Press '?' to see available commands
говорящую нам, что если мы на клавиатуре нажмём на клавишу/букву - ? (знак вопроса), то мы увидим список доступрых команд для управления разными функциями с прослушиваемой станцией.
Вписываем/вводим этот знак - ? (знак вопроса), жмём на Enter и видим список доступных команд:
i | t/track: Current track infoi | i/info: Station informationi | r/record: Record a stationi | rf/recordfile: Specify a filename for the recordingi | f/fav: Add station to favorite listi | h/help/?: Show this help messagei | q/quit: Quit radioactive
t/track: Current track info — информация о текущем трэке/песне i/info: Station information — информация о прослушиваемой станции r/record: Record a station — записать прослушиваемую станцию rf/recordfile: Specify a filename for the recording — указать имя файла для записей f/fav: Add station to favorite list — добавить станцие в Закладки h/help/?: Show this help message — показать это сообщение со списком команд q/quit: Quit radioactive — выйти из RADIOACTIVE
Давайте воспользуемся одной из команд, а конкретнее воспользуемся командой - f (добавление станции в Закладки). Вписываем/вводим эту букву f и жмём на Enter и видим информационную строку, говорящую нам, что станция успешно добавлена в Закладки:
Теперь воспользуемся командой - i (информация о прослушиваемой станции). Вписываем/вводим букву i и жмём на Enter и видим список разного рода информации о прослушиваемой станции:
Выходим из RADIOACTIVE вписав/введя q и жмём на Enter:
Теперь попробуем осуществить поиск станции по её UUID и для этого вписываем/вводим следующую команду (после U делаем пробел):
radio -U
И теперь воспользуемся информацией из 2-й (второй) строки: 'uuid': '964fade0-0601-11e8-ae97-52543be04c81'
А именно нам нужна конкретно эта запись: 964fade0-0601-11e8-ae97-52543be04c81 без кавычек - это UUID станции
Копируем (выделяем мышкой и по нажатию по выделенному ЛКМ в выпавшем меню жмём на Копировать) её и вставляем (ПКМ и в выпавшем меню на Вставить) её после U через пробел, чтобы у нас получилось так, как на скрине и жмём на Enter:
radio -U 964fade0-0601-11e8-ae97-52543be04c81
И в результате видим, что поиск по UUID станции успешно осущетвился и станция звучит и прослушивается:
И на последок, т.к. мы добавили нашу станцию (вероятно вы добавите не одну...) в Закладки/Избранное, то при каждом старте RADIOACTIVE командой:
radio
мы будем первым получать вывод со списком добавленных нами в Закладки/Избранноестанций и последней прослушанной станции где просто можно стрелками Вверх ⬆|▲ / Вниз ⬇|▼ на клавиатуре выбрать нужное и нажать на Enter тем самым начав прослушивать любимую станцию, выбранную из списка Закладки/Избранное:
Осуществить поиск по коду страны можно так:
radio -C ru -L 2000
В этой команде мы выставили лимит по кол-ву станций в 2000.
Объясню почему...
Дело в том, что опытным путём было установлено, что кол-во российских станций в базе утилиты чуть меньше 2000 и следовательно, выставив такой лимит, вы гарантированно получите полный список российских станций.
Ну и по умолчанию лимит в утилите в 100 станций, т.е. если лимит не указывать, то максимальное кол-во вам выдаст вывод только в 100 станций, а их около 2000...
Единственное неудобство состоит в том, что листать в Терминале такой огромный список не совсем удобно и поэтому я предлагаю вам просто записать его в файл и использовать его в будущем для выбора ID (номера) станции, открыв данный файл в любом текстовом редакторе.
Чтобы записать результат поиска по стране в файл выполняем следующую команду:
(этой же командой всегда можно обновить список)
radio -C ru -L 2000 > Документы/list-ru
И теперь всегда можно открыть этот файлик и выбрать нужное из списка...
Т.е. осуществили поиск по стране с лимитом, в заранее открытом файле находите нужную станцию, запоминаете его или копируете, возвращаетесь в Терминал и вписываете/вводите её ID (номер) и жмёте на Enter.