Инструмент командной строки Linux для пакетного переименования файлов MP3 на основе информации тега ID3 или присвоения произвольного имени, если информация ID3 отсутствует

У меня есть куча восстановленных mp3-файлов, которые имеют сгенерированные системой имена файлов. Я хочу использовать любую встроенную информацию тегов ID3 ​​в файлах, чтобы переименовать каждый файл в нечто, удобное для чтения.

Я попробовал 'mp3rename' из репозитория Debian apt, но он не обрабатывает mp3-файлы без автоматической пометки id3. Есть ли работоспособная альтернатива?

5 ответов

Решение

id3v2 и некоторые сценарии должны сделать это возможным. Я посмотрю справочные страницы и попытаюсь написать пример, но id3v2 -l file будет перечислять теги из этого файла. Оттуда вы можете передать через awk/sed/what, чтобы получить команду для переименования файла.

Вы можете попробовать kid3-cli инструментальная команда от Kid3

Пример:

kid3-cli -c 'fromtag "%{track}__%{album}__%{title}" 1' *.mp3

Посмотри на exiftool более конкретно, раздел руководства, озаглавленный ПРИМЕРЫ ПЕРЕИМЕНОВАНИЯ.

Это не ограничено только файлами MP3.

Если вам нравится Perl, простой способ получить теги таков:

#!/usr/bin/env perl
use File::Find;
use MP3::Tag;
use Cwd;

$dir = ".";
open(OUTFILE,">tags.txt") || die "Can't open: $!\n";
print OUTFILE 'Output for "'.getcwd().'"'." and subdirectories\n";
print OUTFILE "Path;Artist;Title;Track;Album;Year;Genre;File Size\n";

find(\&edits, $dir);
close(OUTFILE);
print "Done\n";

sub edits() 
{
    $fn=$_;
    $not_shown=1;
    if ( -f and $fn=~m/.+\.mp3$/ig)
        {
        $mp3 = MP3::Tag->new($fn);
        ($title, $track, $artist, $album, $comment, $year, $genre) = $mp3->autoinfo();
        $fs= -s $fn;
        print OUTFILE "$File::Find::name\\$fn;$artist;$title;$track;$album;$year;$genre;$fs\n";
        }
    if ( -f and $fn=~m/.+\.wav$|\.m4a$/ig)
        {
        $fs= -s $fn;
        print OUTFILE "$File::Find::name\\$fn;;;;;;;$fs\n";
        }
}

Оттуда немного сценариев, и вы получаете то, что хотите.

Это не командная строка, но я всегда использовал EasyTag. Это позволяет мне добавлять обложки и обложки CD к файлам.

Другие вопросы по тегам