28.05.2023

Скрипт консольного плеера радиостанций

Скрипт консольного плеера радиостанций 1

Этот простой консольный плеер радиостанций  был написан по мотивам плеера радиостанций из дистрибутива antix linux. Причиной его написания было отсутствие русских радиостанций и возможность редактирования плейлиста. По началу использовался интерактивный текстовой диалог, и в таком виде скрипт был первый раз опубликован на форуме Puppyrus Linux, где добрые форумчане любезно мне подсказали что такое лучше всего реализовать на dialog, и указали на явные ошибки в коде так как в написании bash скриптов я новичок , за что им большое человеческое спасибо. Они не раз мне помогали в таких вопросах, так что зело рекомендую их форум, …

Впоследствии научил плеер использовать m3u плейлисты, в создании которых есть особенность которая вытекает из особенностей использования dialog, редактируя плейлист нужно избегать пустых строк. А также по возможности избегать пробелов, вместо них используя нижнее_подчёркивание.

Код работает следующим образом, начиная с 6 строки кода скрипт считывает содержимое плейлиста, формируя переменные с названиями и линками радиостанций, далее через dialog menu выбираем интересующую на радиостанцию. Скрипт запоминает её номер и запускает соответствующий линк  скармливая его консольному плееру mpv, и посему необходимо использовать уже его горячие клавиши, для прибавления громкости “0”, для убавления громкости “9”, для выхода из плеера “q”, для паузы с последующим кэшированием контента”p”или пробел(был крайне удивлен функциями mpv).

Если нажать два раза на цифру 2, то окажемся на позиции 20 меню, если два раза на цифру 3, то окажемся на позиции 30 и.т.д. что существено облегчает навигацию, сам скрипт можно скачать по ссылке https://disk.yandex.ru/d/ZEX7vHtQcb4Utg ,сам код предельно простой и читаемый, но если возникнут вопросы по нему с удовольствием отвечу, не претендую что написал супер-пупер прогу, но кому-то может помочь , или натолкнуть на новую идею, архив распаковать в домашний каталог, дать скрипту r_di_011.sh права на исполнение, и запустить его любым удобным методом, кликнув на него два  раза, либо из терминала, из зависимостей требует dialog и mpv, создан и проверен на debian liunux, но будет работать везде где работает терминал linux(даже на android через termux), dialog и mpv. Спасибо за внимание:

#!/bin/bash
cd ~/r_di_011 # этот переход активировать при необходимости *.desctop файла
opros="y"
while [ "$opros" = "y" ]
do
cat ./playlist/*.m3u | grep -v "#EXTM3U" | grep -v "EXTINF:-1," >./playlist/.pl_l.txt
cat ./playlist/*.m3u | grep -v "http://" | grep -v "https://" | grep -v "#EXTM3U" >./playlist/.pl_n.txt
a="$(cat ./playlist/.pl_n.txt)"
echo "${a//#EXTINF:-1,/}" >./playlist/.interm_name.txt
b="$(cat ./playlist/.interm_name.txt)"
echo "${b//#EXTM3U/}" >./playlist/.interm_name1.txt
z="$(cat ./playlist/.interm_name1.txt)"
echo "${z// /_}" >./playlist/.interm_name2.txt
c="$(cat -n ./playlist/.interm_name2.txt)"
dialog --menu "Выбери имя радиостанции " 35 35 47 $(echo "$c") 2>./playlist/.nomer.txt
if test $? -eq 0
then
nom_radio=$(cat ./playlist/.nomer.txt)
sed -n $(echo "$nom_radio")p ./playlist/.interm_name2.txt >./playlist/.n.txt
sed -n $(echo "$nom_radio")p ./playlist/.pl_l.txt >./playlist/.l.txt
link=$(cat ./playlist/.l.txt)
name=$(cat ./playlist/.n.txt)
clear
echo "воспроизводится…""$name"
mpv --volume=45 "$link"
else
cd ./playlist || exit
rm .*.txt
exit
fi
done

Автор статьи: Vlad- totiks

А на этом сегодня все. Надеюсь данная статья будет вам полезна.
Журнал Cyber-X

Источник.