Вопрос или проблема
Мне нужно решение с интерфейсом командной строки или графическим интерфейсом для замены имени файла каждого файла на заголовок этого файла.
У меня есть несколько радиоподкастов с именами файлов, которые не правильно отображают содержание. Это видно в медиаплеерах под заголовком, но у меня есть проблемы с отображением этого в файловых менеджерах, поэтому я хочу заменить имена файлов на заголовки.
Я ищу родное приложение для Linux, хотя я знаю, как это сделать в Wine с такими программами, как Foobar2000.
Редактирование после комментария: это mp3-файлы. Я могу видеть данные заголовка, отображаемые в панели информации файлового менеджера Dolphin.
Если вы ищете родное приложение, существует командная строка mp3rename
, доступная в некоторых дистрибутивах, и графический интерфейс pyrenamer
.
Для первого сначала настройте формат “title” (&t
) с помощью
mp3rename -s '&t'
После этого вы можете переименовать файлы, просто запустив mp3rename
с ними, указав список имен файлов. Например, если вы находитесь в каталоге с mp3-файлами, введите mp3rename *.mp3
. Или вы можете рекурсивно искать файлы с именем *.mp3
из некоторого начального каталога ABC, например, с помощью
find ABC -name '*.mp3' -exec mp3rename {} \;
Вам может понадобиться работать с копией ваших файлов, чтобы избежать неприятных сюрпризов!
Для графического интерфейса pyrenamer в более поздних версиях есть вкладка Music
, где вы “переименовываете музыку, используя ее метаданные”. Введите строку {title}.mp3
в это поле, выберите файлы для обработки и нажмите Preview
, чтобы увидеть, как будут выглядеть имена.
Как насчет Perl? Он родной для Linux. Моя тестовая конфигурация выглядит следующим образом… Скрипт mp3.pl
находится в том же каталоге, что и каталог music
, который содержит песни, с которыми мы будем работать. Я передаю это в качестве аргумента командной строки. Код перебирает этот каталог, извлекая все mp3-файлы. Затем он перебирает список треков и по одному переименовывает их в заголовок трека:
Сначала посмотрите, какие треки у нас есть:
$ ls music
track1.mp3 track2.mp3
Код:
use warnings;
use strict;
use File::Copy;
use File::Find::Rule;
use MP3::Tag;
if (! @ARGV){
print "usage: perl mp3.pl <directory>\n";
exit;
}
my $dir = $ARGV[0];
my @files = File::Find::Rule->file()
->name('*.mp3')
->in($dir);
for my $track (@files){
my $mp3 = MP3::Tag->new($track);
my $title = $mp3->title;
$title .= '.mp3';
move $track, "$dir/$title" or die $!;
}
Запустите его:
perl mp3.pl music
Каталог ‘music’ после изменений:
$ ls music/
Almost Famous.mp3 No Love (feat Lil Wayne).mp3
.
Ответ или решение
Для замены имен файлов на заголовки в нескольких аудиофайлах формата MP3 в Linux доступно несколько решений, как командной строки, так и графических. В этой статье мы детально рассмотрим оба подхода, чтобы вы могли выбрать наиболее подходящий для своих нужд.
Решение через командную строку: mp3rename
Для пользователей, предпочитающих CLI (интерфейс командной строки), одним из лучших вариантов является утилита mp3rename
. Это простое в использовании решение позволяет быстро переименовывать файлы, извлекая информацию из метаданных MP3. Чтобы установить mp3rename
, вы можете воспользоваться пакетным менеджером вашей дистрибуции:
sudo apt install mp3rename # Для Ubuntu
sudo dnf install mp3rename # Для Fedora
Как использовать mp3rename
-
Установите формат имени файла:
Чтобы установить формат имени, включающий заголовок, выполните следующую команду:mp3rename -s '&t'
Здесь
&t
символизирует заголовок, который будет использован в качестве нового имени файла. -
Переименуйте файлы:
Перейдите в директорию с вашими MP3-файлами и выполните команду:mp3rename *.mp3
Если ваши файлы находятся в поддиректории, вы можете использовать
find
для рекурсивного поиска и переименования:find ABC -name '*.mp3' -exec mp3rename {} \;
Пожалуйста, создавайте резервные копии ваших файлов перед выполнением массовых операций, чтобы избежать неожиданных проблем.
Графический интерфейс: pyrenamer
Если вы предпочитаете GUI (графический интерфейс пользователя), pyrenamer
станет отличным выбором. Это приложение позволяет вам переименовывать файлы, используя метаданные, и предоставляет более интуитивное взаимодействие.
Установка pyrenamer
Установите pyrenamer
через пакетный менеджер:
sudo apt install pyrenamer # Для Ubuntu
sudo dnf install pyrenamer # Для Fedora
Как использовать pyrenamer
-
Запуск Pyrenamer:
Откройтеpyrenamer
из меню приложений. -
Выбор файлов:
Перейдите на вкладку "Музыка". Выберите все MP3-файлы, которые вы хотите переименовать. -
Задайте новый формат имени:
В поле для форматирования названия укажите строку{title}.mp3
и нажмите кнопку "Предпросмотр". Это позволит просмотреть, как будут выглядеть новые имена файлов до их применения. -
Применение изменений:
Если вы довольны предварительным просмотром, нажмите кнопку для подтверждения изменений.
Альтернативный подход: Скрипт на Perl
Если вы знакомы с Perl, вы можете создать скрипт, который будет делать то же самое. Например, вот простой скрипт, который переименовывает MP3-файлы, основываясь на заголовках:
use warnings;
use strict;
use File::Copy;
use File::Find::Rule;
use MP3::Tag;
if (!@ARGV) {
print "usage: perl mp3.pl <directory>\n";
exit;
}
my $dir = $ARGV[0];
my @files = File::Find::Rule->file()->name('*.mp3')->in($dir);
for my $track (@files) {
my $mp3 = MP3::Tag->new($track);
my $title = $mp3->title . '.mp3';
move $track, "$dir/$title" or die $!;
}
Сохраните этот код в файле mp3.pl
и выполните его с указанием директории MP3-файлов:
perl mp3.pl music
Заключение
Теперь у вас есть несколько подходов для замены имен файлов на заголовки в ваших аудиофайлах MP3 на Linux. Используйте mp3rename
для быстрой работы через терминал, pyrenamer
для визуального интерфейса или же создайте свой собственный скрипт на Perl. Выбор остается за вами! Убедитесь, что сделали резервные копии файлов перед изменениями, чтобы избежать потери данных.