Обновление кодека и метаинформации для FLAC-файлов

Материал из Linux Wiki
Перейти к навигацииПерейти к поиску

Скрипт для обновления версии кодека и метатегов в FLAC-файлах (к примеру, надо обновить кодек с v.1.1.0 до v.1.2.1 либо создать seektable для файлов, если, к примеру, есть проблемы с проматыванием трека в Amarok). Указываем каталог, где лежат FLAC-файлы либо указываем нужные файлы как параметры скрипта, для каждого из них скрипт декодирует и одновременно кодирует получившийся поток в файл с расширением new, после чего перемещает считывает теги из старого и записывает в новый файл, потом перемещает новый файл на место старого.


#!/bin/bash
# By Rain ;)

updatefile() {
        echo -e "\n\e[35mWorking on file \e[36m${1}\e[0m"
        flac -sdc "${1}" | flac --best - -Vo "${1}.new"                 &&\
        metaflac --export-tags-to=- "${1}" | metaflac --import-tags-from=- "${1}.new"
        mv "${1}.new" "${1}"
}

if [ -z "${1}" ]
        then
                find ./ -iname '*.flac' |
                while read file
                do
                        updatefile "${file}"
                done
else
        for file in "${@}"
                do
                        updatefile "${file}"
                done
fi