Меню сайта
   Главная   
   Обо мне   
   Статьи   
   Дневник   
   Картинки   
   Файлы   
   Форум   
   Гостевая книга   

Категории раздела
Куклы и игрушки [60]
Личное [116]
Музыка [19]
Общее [304]
Японский язык [12]
ZX Spectrum [71]
Субмарины [98]
Настольные игры [34]
Го (碁) [11]
Книги [16]
Япония [26]
Таро [4]
Запертый шкаф [17]
CSA (КША) [15]
GNU/Linux [134]
Ubuntu [103]
Manjaro Linux [40]
Python [3]
Магнитольное [44]
Commodore64 [15]
Игровые приставки [2]


 
Дневник (2024 » Апрель » 13 в 04:43)
GNU/Linux cmus - добавление случайной музыки из библиотеки

cmus-remote
Я заметил, что часто слушаю одну и ту же музыку кругами, а что-то забыл и вообще слушать перестал, хотя стоило бы. Просто забыл, что в каком каталоге хранится, и в каком альбоме какая есть годнота. Решил я эту несправедливость исправить. И поскольку музыку слушаю исключительно из локального хранилища в консольном плеере cmus ( cmus - консольный аудиоплеер), то и скрипты будут ориентированы на него. Вы можете также сделать вариант для любого плеера, поддерживающего добавление через CLI, например графический Clementine. 

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

Приступим!

Для начала, небольшая справка по удалённому управлению cmus
cmus-remote -v 50% # уполовинить громкость
cmus-remote -p # воспроизвести
cmus-remote -s # стоп
cmus-remote -u  # пауза/воспр.
cmus-remote -n # следующий
cmus-remote -r  # предыдущий

Узнать, что сейчас играет:
cmus-remote -Q | grep "title\|album\|artist"

Сперва зададим общую переменную для пути, чтобы команды попав в history, были универсальны:
MUS="/mnt/Yuggoth/Data/Music/A-Z-А-Я"


Сначала после find я использовал массив:
( i=0; while read line; do lines[i++]="$line"; done; echo "$line"; \
for n in {1..25}; do cmus-remote -C add\ "${lines[$RANDOM % $i]}" ; done )

Но мне посоветовали сменить его на более скоростную конструкцию.
shuf -z | head -z -n25 | xargs -0 -t -i  cmus-remote -C add\ {}



Найти и добавить в плейлист все файлы, где в названиях файлов есть определённое слово в любом регистре:
find "$MUS" -type f -iname "*lisa*" -print0 | shuf -z | xargs -0 -i cmus-remote -C add\ {}

Очистить плейлист, добавить и воспроизвести случайный альбом исполнителя. Применять нужно именно на пути к исполнителю.
MUS="/mnt/Yuggoth/Data/Music/A-Z-А-Я/Atrium Carceri/"; \
cmus-remote -C clear; \
find "$MUS" -type d -print0 | shuf -z | head -z -n1 | \ xargs -0 -t -i cmus-remote -C add\ {} ;cmus-remote -n;

Очистить плейлист, добавить и воспроизвести случайный альбом случайного исполнителя: (возможны осечки, если в выпавшем каталоге например сканы jpg)
cmus-remote -C clear; \
find "$MUS" -mindepth 2 -type d -print0 | shuf -z | head -z -n1 | \
xargs -0 -t -i cmus-remote -C add\ {} ;cmus-remote -n;

Сразу воспроизвести случайный файл у исполнителя:
find "$MUS" -type f -regex ".*\.\(mp3\|wma\|Mp3\|flac\|ape\|m4a\)$" -print0 | \
shuf -z | head -z -n1 | xargs -0 -t -i cmus-remote -f "{}"

Поиск и добавление из дискографии исполнителя 5 случайных композиций в cmus:
* regexp с его слешами крашит многострочную запись, лучше записывать в одну строку без \
MUS="/mnt/Yuggoth/Data/Music/A-Z-А-Я/Atrium Carceri/"; 
find "$MUS" -type f -regex ".*\.\(mp3\|wma\|Mp3\|flac\|ape\|m4a\)$" -print0 |
shuf -z | head -z -n5 | xargs -0 -t -i cmus-remote -C add\ "{}" 

Поиск в библитеке музыкальных файлов, и добавление 25 случайных композиций в cmus:
find "$MUS" -type f -regex ".*\.\(mp3\|wma\|Mp3\|flac\|ape\|m4a\)$" -print0 |\
shuf -z | head -z -n25 | xargs -0 -t -i  cmus-remote -C add\ {}


Ну вот, теперь неплохо получилось!
Категория: GNU/Linux | Просмотров: 89 | Добавил: harushima | Рейтинг: 0.0/0 |
Всего комментариев: 0.
В целях защиты от спама, добавлять комментарии могут только зарегистрированные пользователи. Если Вы не хотите регистрироваться под своим именем, войдите под логином: anonymous, паролем: anonymous.   ( Регистрация,   Вход).
Авторизация
Анонимный вход:
anonymous / anonymous

Календарь
«  Апрель 2024  »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
2930

Поиск

Облако тэгов
JGSDF игрушки Брюнетки Кладбище сайты Ярость Дракулы Древний Египет девушки кошки Cthulhu Вампиры Kitsune Ужас Аркхема инструмент комиксы Lovecraft готика Submarine submarine rc toy Hosting игротека Ужас Аркхэма book uboat мобильная связь го Edgar Poe swf Mansions of Madness Nightmares персоны Synergy linux-hardware bash youtube Storages Python Мастер-рукожоп Магнитофоны Entropy Grub2 loglevel WiFi Beeline ОПСОСЫ sharp939 Аудиокассеты Windows linuxwork Хочуны ImageMagick топБарыг C64c Commodore

Статистика
Яндекс.Метрика
Онлайн всего: 36
Гостей: 36
Пользователей: 0

Page QR code


Перепечатка материалов сайта без активной ссылки запрещена. Следить за RSS
(c) hermitlair.ucoz.com 2009-2024
Лучший браузер!
Блокировка рекламы