LINUX.ORG.RU
ФорумTalks

Автоматическая сортировка скаченной музыки

 


5

3

Привет, ЛОР! Я уже долго и весьма активно пользуюсь самописными скриптами, которые позволяют сортировать скаченную музыку (будем считать, что музыка бесплатная или честно купленная, хотя для работы скриптов это не имеет значения). Где опубликовывать свои программы, я не знаю, поэтому, если интересно, скачивайте архив с Yandex-диск, правьте скрипты как хотите и публикуйте куда хотите. Лицензия GNU GPL v2. Если решите дать программе вторую жизнь - киньте ссылку, будет интересно проследить.

РАБОТА С ПРОГРАММОЙ:

  • При необходимости, измените следующие пути:
    В sortnew:
    sender=«$HOME/downloads/»
    tmp_path=«$HOME/main/.Trash-1000»
    В unr:
    receiver=«$HOME/main/.Trash-1000»
  • Скопируйте скрипты в /usr/local/bin и присвойте им права на исполнение (chmod +x *)
  • Делайте cd «$HOME/downloads/» (или то, что вы указали в sortnew)
  • Запускайте sortnew
  • Как ни странно, вывод будет и в терминал, и через zenity, мне кажется так и наглядно, и удобно :)
  • Программа многократно проверена, но в любом случае всегда делайте бэкапы



ОСОБЕННОСТИ:

  • Работа с mp3, flac, ape, m4a
  • Разбиение большого flac/ape на несколько flac (при наличии файла .cue)
  • Конвертация ape и m4a во flac
  • Приведение каталога с музыкой к виду: «Artist - Year - Album (@bitrate)»
  • Распаковка архивов rar, zip, 7z
  • Удаление картинок (лично мне они не нужны)
  • Удаление мусорных файлов (.nfo, .accurip, .ini, .log, .m3u, .sfv, .txt, .db, .inf)
  • Работа со вложенными каталогами (по-моему, до 2-го уровня)
  • Перевод расширения файлов в нижний регистр
  • Автоматический выбор нужного файла cue при наличии нескольких (например, .cue более предпочтителен, чем .wav.cue)
  • Определение битрейта
  • Задание тэгов согласно структуре «Artist - Year - Album (@bitrate)»
  • Удаление ненужных фрагментов в именах файлов по решению пользователя (например, «Cannibal Corpse - 01. Devoured by vermin.mp3» приводится к виду «01. Devoured by vermin.mp3») (После «Удалить лишний фрагмент» - «Да» можете жать Ctrl+V в окошке)
  • Замена нижнего подчеркивания в имени файла на пробел



ЗАВИСИМОСТИ:
unrar, unzip, p7zip, zenity, lltag, id3v2, ffmpeg, cuetools, xclip

ОБРАТИТЕ ВНИМАНИЕ:

  • Каталог «$HOME/main/.Trash-1000» считается временным и без спросу очищается. В него будут перемещены архивы с музыкой из «$HOME/downloads/»
  • Большие файлы flac и ape и их cue будут удалены после разбития на маленькие flac
  • Файлы wav будут удалены после выполнения wav2flac, а файлы flac, в свою очередь, будут удалены после выполнения flac2wav (но об этом надо беспокоиться, только если запускаете эти скрипты отдельно)
  • Если частота не 44100, то она будет изменена на 44100 (не любой плеер тянет другую частоту)
Deleted

скаченной музыки

Как верно сказано, музыка скатилась.

sid350 ★★★★★ ()

Если 99% опций не кастамизируется, то это нафиг не нужно. Вот прикинь, скачал я торрент, а твой скрипт все перефигачил. И видимо, ты не работал с закрытыми торрентами...

gh0stwizard ★★★★★ ()
Ответ на: комментарий от sid350

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

Deleted ()
Ответ на: комментарий от gh0stwizard

Если 99% опций не кастамизируется, то это нафиг не нужно.

Это ж скрипт. Открывайте, кастомизируйте :)

Вот прикинь, скачал я торрент, а твой скрипт все перефигачил.

Скаченное надо копировать отдельно. Мне кажется, это намного правильней, чем что-то править прямо в папке с торрентами.

Deleted ()
Ответ на: комментарий от Deleted

Япония, Колумбия, Бразилия, Мальта

TOP2 из каждой плиз, желательно эмокора.

eR ★★★★★ ()
Ответ на: комментарий от eR

Эмокор не слушаю, поэтому сказать ничего не могу.

Brutal death metal:
Япония: Woundeep - совершенно потрясающе, Vomit Remnants, Gorevent
Колумбия: Internal Suffering, дофига+ (http://www.youtube.com/watch?v=bpt4p3GDJm8)
Мальта: Beheaded, Abysmal Torment. 51 метал-групп на Мальте (http://www.metal-archives.com/lists/MT), в жанре brutal death - целых 5! (Это на свои-то 316 км!!!)

Deleted ()

Выложите куда-нибудь на github/bitbucket, это же самое место для исходников.

ins3y3d ★★★★★ ()

Как конвертер еще ладно. Но по части сортировки лучше MusicBrainz ничего нет.

Lordwind ★★★★★ ()

Оффтоп. А что используешь для проигрывания музыки?

У меня проблема именно с оценкой музыки. Т.е. накачал допустим с рутрекера авторских раздач, потом нужно как-то разобраться стоит их оставить на диске или нет. Для этого их желательно прослушать. А в гномовском rhythmbox всё пачкой, можно фильтровать по автору/альбому/названию, но не каталогу

Приходится добавлять в плейлист стандартного гномовского медиаплеера, что неудобно.

router ★★★★★ ()
Ответ на: комментарий от router

Музыку слушаю в основном на плеере COWON, реже - через mplayer на компьютере. На композициях делаю закладки. Когда все альбомы прослушаны, смотрю, какие сделал закладки. Закладки COWON начинает проигрывать ровно на той секунде, где они были вставлены. Запускаю другой свой скрипт (mkoldtable). Если закладка в самом начале альбома и звучит что-то невнятное, то это мне не нравится (указываю каталог later). Если звучит что-то хорошее, а в альбоме много понравившихся моментов и, соответственно, закладок, то это мне нравится (best). Если первая в альбоме закладка сделана в самом его конце, значит, альбом неплохой, но особо не блещет (old). Скрипт удаляет прослушанные каталоги на COWON, а на внешнем жестком диске, где находится база, переносит те же каталоги в later, old, best. Вот и все по оценке. :) Запускаю третий свой скрипт (fillupcarrier), который выбирает случайным образом каталог с музыкой с внешнего жесткого диска (но не later, old, best) и копирует на COWON. Процедура продолжается до тех пор, пока на COWON не закончится место (необходимо оставить 20 Мб для его внутренних нужд).

Deleted ()

А можно просто воспользоваться «Упорядочить файлы» в Clementine и Amarok.

Darth_Revan ★★★★★ ()

Где опубликовывать свои программы

github.coom bitbucket.org

IIIypuk ★★ ()

скаченной

Скачать — скачанный, §51 п. 3.а

Почему именно

$HOME/main/.Trash-1000

а не /tmp? Некоторые делают /tmp в RAM, там быстрее.

Если частота не 44100, то она будет изменена на 44100 (не любой плеер тянет другую частоту)

Некоторые аудиофилы её даже специально апают хаками для альсы, а ты её намеренно зарезаешь.

Deleted ()
Ответ на: комментарий от router

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

Deleted ()
Ответ на: комментарий от Deleted

а не /tmp

У меня /tmp очищается после перезагрузки.

Deleted ()
Ответ на: комментарий от Darth_Revan

Если они умеют при этом распаковывать архивы, разрезать крупные файлы с cue на части, определять общий для альбома битрейт и автоматически менять тэги - тогда OK. Иначе можно было бы и скрипты не писать - все ручками :)

Deleted ()
Ответ на: комментарий от Deleted

Естессно, глупо хранить что-либо во временных папках навечно.

Deleted ()

Сделай в срипте в начале так
source $CONFIG_DIR/musor.conf
musor = music sort =)
А в musor.conf задавай переменные, которые сурсаешь
Ежели файл пуст, сделай функцию, которая генерирует это
Например:

conf() {
if [ -z $DISPLAY ] ; then CONFIG_DIR=$XDG_CONFIG_DIR ; else CONFIG_DIR=$HOME/.config
mkdir -p $CONFIG_DIR
if [ -f $CONFIG_DIR/musor.conf ] ; then source $CONFIG_DIR/musor.conf ; else conf_gen() ; fi
}

gen() {
cat < EOF > $CONFIG.DIR/musor.conf
VAR=VALUE
EOF
}

#EOF - конец файла - ты прерываешь ввод cat
А то знаешь лезть в срипт и искать параметры это гемор
Если ты знаешь bash, то помоги написать libbash - фреймворк для bash/sh скриптов
Грузишь в срипт libbash и Скрипт уменьшаеться
Меньше всякого писать
Написал свой основной алгоритм, собрал в shar архив (shell arhive - sfx - как дровишки от невидишки)

ubuntuawp@hotmail.com
ubuntuawp@gmail.com

пиши

ubuntuawp ★★ ()

> скаченной музыки

«Жадные дети» (C)(R), такие жадные...

Я вот до сих пор компакт-кассеты слушаю и слоупоком себя не считаю, поскольку мои деки пишут и читают лучше нищебродского MP3.

И слушаю я только то, что действительно нравится, а не файлопомойку.

Bioreactor ★★★★★ ()
Ответ на: комментарий от Bioreactor

Хе, ну и я слушаю тоже, что нравится, правда, в lossless.

Deleted ()
Ответ на: комментарий от ubuntuawp

Сделай в срипте в начале так

Спасибо за идею, но скрипт я больше не развиваю уж года полтора, потому что он полностью меня удовлетворяет. Да и на bash пишу редко, перешел на python. Если была бы необходимость переделывать скрипт или писать его с нуля, я, думаю, выбрал бы python.

Если ты знаешь bash

Я его знаю так себе и уже начал забывать :)

то помоги написать libbash - фреймворк для bash/sh скриптов

Я считаю, что bash/sh рационально использовать там, где все время идет вызов внешних команд, например, переименовать, копирование и пр. Если же нужно писать какие-то процедуры и тем более отдельно модули делать, лучше не заниматься ерундой, а использовать нормальные языки программирования, в которых уже, например, есть list.sort(), и не нужно сортировать массив вручную. Да и к тому же, bash - не кроссплатформенный.

Deleted ()
Ответ на: комментарий от ubuntuawp

Так, например, сортируется информация по длине строк в bash:

# lsort
awk "{print length, \$0}" | sort -n | awk "{\$1=\"\"; print substr(\$0,2,length-1) }"
cat "$tmpfile"|lsort > "$tmpfile2"
tac "$tmpfile2" > "$tmpfile"

А вот так - в Python:

array.sort(key=len,reverse=True)

Мне ближе второе. А вам?

Deleted ()
Ответ на: комментарий от Deleted

таки выкинь AWK
пиши приложение на C для данной возможности )

ubuntuawp ★★ ()
Ответ на: комментарий от ubuntuawp

Гы, может, тогда сразу все на C? Зачем этот bash тогда нужен?

Deleted ()

Спасибо, человек!

Deleted ()

тебе рассказать про гитхаб, гиториус, сорсфордж и иже с ними!?

megabaks ★★★★ ()
Последнее исправление: megabaks (всего исправлений: 1)
Ответ на: комментарий от Deleted

Уже попробовали?

Угу. Давно что-то подобное хотелось запилить или найти, а тут - вот оно.

Deleted ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.