Упаковываем cuesheet внутрь FLAC файла под управлением Debian
prolinux
Опубликован: | 2023-08-28T04:34:08.349852Z |
Отредактирован: | 2023-08-28T04:34:08.349852Z |
Статус: | публичный |
Как известно, lossless CDDA рипы обычно представлены двумя обязательными файлами, один из этих файлов является текстовым и хранит необходимую информацию о метаданных рипа и потрековой разметке, а второй - это медиа файл одного из lossless форматов. Увы, но два файла хранить не очень удобно, нередки ситуации, когда при обмене файлами в сети текстовый файл с разметкой cuesheet теряется. В этой демонстрации я покажу, как очень легко и просто упаковать cuesheet внутрь FLAC файла, и как впоследствии эти данные из FLAC файла так же легко и просто извлечь. Все действия в этой демонстрации выполнены под управлением операционной системы Debian sid. Будет интересно...
О задаче
Вопросы работы с цельными CDDA-рипами я уже не раз освещал в этом блоге, все статьи можно отфильтровать по одноимённой метке, ссылка выше. Обычно CDDA рип состоит из двух обязательных файлов:
-
Текстовый файл с разметкой cuesheet, обычно имеет расширение
.cue
; -
Медиа файл одного из lossless форматов: FLAC, WavPack, Monkey's Audio etc.
В этой демонстрации мы будем говорить о CDDA-рипах в формате FLAC, вот как обычно выглядит такой рип в файловом менеджере на жестком диске компьютера.
Как видно, оба файла имеют совпадающие до знака имена и отличаются только расширениями. Третий файл, в данном случае это folder.jpg
, - изображение обложки диска, он может отсутствовать или иметь любое другое имя. Как правило к рипу прикладывается ещё один текстовый файл, в котором хранится лог извлечения программой EAC, но он обязателен только для раздачи на торрент-трекерах, как доказательство подлинности рипа, и в обычной хомячковой жизни не требуется.
Формат FLAC включает в себя метаданные в формате VorbisComment, и будет вполне логично упаковать cuesheet внутрь файла FLAC, в этом случае его можно будет без усилий восстановить в случае утери оригинала. Потерять файл .cue
достаточно просто, обычно это случается при обмене файлами в различных файлообменных сетях, и если cuesheet вшит внутри FLAC, то в случае утери файла .cue
его можно будет восстановить достаточно просто. Этим сейчас и займёмся под управлением операционной системы Debian sid.
Необходимые инструменты
Для правки метаданных файлов FLAC предназначена специальная программа - metaflac. Конечные пользователи обычно не любят и всеми возможностями избегают пользоваться ей, она имеет интерфейс командной строки и ей не очень-то просто воспользоваться. Специально для обозначенной выше цели я придумал и разработал программу flacpack, которая и поможет мне справиться с поставленной задачей.
Установить flacpack на Debian очень легко, для этого нужно скачать исходный код flacpack.
$ wget https://github.com/jazz4web/flacpack/archive/refs/heads/main.zip
У flacpack есть две зависимости, их предварительно необходимо установить в систему.
$ sudo apt install python3-chardet python3-mutagen
Распаковать полученный c github.com
архив в системный каталог /opt
можно прямо в терминале.
$ sudo unzip -d /opt main.zip
Archive: main.zip
4afb104d49a4638eeaa92bbf1e18dd1d49904772
creating: /opt/flacpack-main/
inflating: /opt/flacpack-main/.gitignore
inflating: /opt/flacpack-main/README.md
inflating: /opt/flacpack-main/flacpack.py
creating: /opt/flacpack-main/flacpack/
extracting: /opt/flacpack-main/flacpack/__init__.py
inflating: /opt/flacpack-main/flacpack/checker.py
inflating: /opt/flacpack-main/flacpack/main.py
inflating: /opt/flacpack-main/flacpack/parser.py
inflating: /opt/flacpack-main/flacpack/system.py
Из выхлопа unzip видно, что в каталоге /opt
появился вложенный каталог с именем flacpack-main
, его нужно переменовать.
$ sudo mv /opt/flacpack-main/ /opt/flacpack
После этого достаточно положить символическую ссылку на исполняемый файл flacpack.py
в один из каталогов переменной окружения PATH
.
$ sudo ln -s -T /opt/flacpack/flacpack.py /usr/local/bin/flacpack
Программа установлена и готова к использованию.
Упаковываем cuesheet внутрь файла FLAC
Программа flacpack тоже имеет интерфейс командной строки, но воспользоваться ей очень просто. Захожу в терминале внутрь каталога, в котором хранится CDDA-рип, и выполняю очень простую команду.
flacpack sample.flac
Давайте посмотрим на содержимое метаданных файла sample.flac
после выполнения этой команды.
Как видно на снимке экрана выше, с этого момента в метаданных файла sample.flac
появился тег с именем cuesheet
, в нём и хранится содержимое файла sample.cue
, который уже совсем не страшно потерять, потому что в этом случае его очень просто будет восстановить опять при помощи flacpack.
Упаковываем картинку обложки внутрь файла FLAC
Как видно на одном из снимков экрана выше, у моего CDDA-рипа есть обложка - файл изображения с именем folder.jpg
. Программа flacpack позволяет упаковать внутрь FLAC файла одно изображение, команда в этом случае будет выглядеть следующим образом.
$ flacpack -p folder.jpg sample.flac
Важное замечание: файл изображения folder.jpg
должен лежать в одном каталоге с CDDA-рипом, в команде можно задать только имя файла, поддерживаются только изображения в формате JPEG.
Если после выполнения этой команды взглянуть на рип в файловом менеджере, можно увидеть, что у файла sample.flac
изменилась иконка, потому что в метаданных FLAC файла теперь хранится изображение.
Восстанавливаем cuesheet из метаданных FLAC
Как видно выше, упаковать cuesheet и изображение внутрь FLAC оказалось достаточно просто с помощью flacpack. Теперь я удалю оба файла, cuesheet и изображение с диска компьютера.
Катастрофы не произошло, потому что данные теперь хранятся внутри FLAC файла, и с помощью flacpack их достаточно просто восстановить. Набираю в терминале следующую команду.
$ flacpack sample.flac
Жму enter
, и смотрю в окно файлового менеджера.
Файлы восстановлены.
Выводы
При помощи flacpack довольно легко можно упаковать cuesheet внутрь FLAC файла, а впоследствии, если файл .cue
будет утерян, его можно так же просто восстановить опять с помощью программы flacpack.
Автор программы тоже живой человек, он спит, кушает и имеет привычки, как и все обычные люди этой великолепной земли. Вопросы автору можно задать на электронную почту, адрес указан в исполняемом файле программы. Уважаемый читатель, если вам понравилась и пригодилась программа flacpack, отблагодарить автора можно любой приемлемой для вас денежной суммой на мой электронный кошелёк, при этом следует помнить, что перевод на 5 рублей лучше, чем никакого перевода... :-) Автор благодарен вам - всем откликнувшимся за добровольное и безвозмездное пожертвование.