Substitua o nome do arquivo pelo título em vários arquivos de áudio

2

Eu quero uma solução CLI ou GUI para substituir o nome do arquivo de cada arquivo pelo título desse arquivo.

Tenho vários podcasts de rádio com nomes de arquivos que não exibem corretamente o conteúdo. Isso é visível em players de mídia em Title, mas eu tenho problemas vendo esses em gerenciadores de arquivos , então eu quero substituir nomes de arquivos com títulos.

Eu estou procurando uma ferramenta nativa do Linux , enquanto eu sei como fazer isso no Wine com programas como o Foobar2000.

Editar após comentário : estes são arquivos mp3. Eu posso ver os dados do título exibidos no painel de informações do gerenciador de arquivos Dolphin.

    
por cipricus 20.11.2016 / 14:36

2 respostas

2

Se você está procurando uma ferramenta nativa , há a linha de comando mp3rename disponível com algumas distribuições, e o gui pyrenamer .

Para o primeiro, primeiro configure um formato de "título" ( &t ) com

mp3rename -s '&t'

então você pode renomear seus arquivos executando apenas mp3rename neles apenas dando-lhe uma lista de nomes de arquivos. Por exemplo. se você estiver em um diretório com arquivos mp3, digite mp3rename *.mp3 . Ou você pode pesquisar recursivamente por arquivos chamados *.mp3 de algum diretório inicial ABC com, e.

find ABC -name '*.mp3' -exec mp3rename {} \;

Você pode querer trabalhar em uma cópia dos seus arquivos para garantir que não tenha surpresas!

Para o gui pyrenamer , mais tarde as versões têm uma aba Music onde você "renomeia a música usando seus metadados". Coloque a string {title}.mp3 neste campo, selecione os arquivos para operar, e clique em Preview para ver como os nomes se tornariam.

    
por 20.11.2016 / 18:10
1

Que tal Perl? É nativo do Linux. Minha configuração de teste é a seguinte ... mp3.pl script está no mesmo diretório que o diretório music que contém as músicas em que estaremos trabalhando. Eu passo isso como um argumento de linha de comando. O código percorre este diretório, buscando todos os arquivos mp3. Em seguida, ele percorre a lista de faixas e, uma de cada vez, as renomeia para o título da faixa:

Primeiro, veja quais faixas temos:

$ ls music
track1.mp3  track2.mp3

O código:

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 $!;
}

Execute:

perl mp3.pl music

O diretório 'music' após a alteração:

$ ls music/
Almost Famous.mp3  No Love (feat Lil Wayne).mp3
    
por 20.11.2016 / 17:16