Prezados,
Teve um tempo que fiz esta mesma pergunta por aqui. Pesquisei, o pessoal do VOL ajudou, e agora vou postar, com bastante calma, como fazer para que outras pessoas que tenham esta mesma necessidade, possam resolver.
Para justificar, fiz isso porque o
Rhythmbox lê as tags ID dos arquivos de áudio (uma espécie de metadados reconhecidos por quase todos os player de som) e ordena os arquivos na lista de reprodução usando estas informações.
Então, como baixo muita coisa na Internet, ficava tudo bagunçado, e tenho certo horror maníaco de ver meus arquivos bagunçados. Minha casa e meus quase 2k livros podem ser bagunçados, mas meu computador não!
Para resolver isso, eu usei uma ferramenta chamada
ID3v2 Tool. O site deles é esse aqui:
E nele, você pode baixar o código-fonte, ver as dependências e tudo o mais. No site da ferramenta, o
id3lib é apontado como dependência, mas em
packages.ubuntu.com, lista-se como dependências:
- libc6
- libgcc1
- libid3-3.8.3c2a
- libstdc++6
- zlib1g
Para os usuários do
Ubuntu, é preciso estar com o repositório
universe habilitado no
sources.list, e esse pacote está disponível desde o
Hardy Heron.
O pacote é suportado no
Debian, mas não aparece em
packages.debian.org.
Instale o pacote e suas dependências. Em distribuições Debians-like, o repositório relacionado aos arquivos que usam alguma coisa que fere a licença GNU, precisa estar habilitado no
sources.list.
No Ubuntu, este é o repositório
universe, enquanto no Debian, é o
non-free. Uma vez habilitado e atualizado o repositório, um comando como:
sudo apt-get install id3v2
Provavelmente instalará o pacote.
Uma vez com o
id3v2 instalado, as principais opções da linha de comando são:
- -l [arquivo]: lista as tags ID da música;
- -y [yyyy]: altera a tag ID do ano da música;
- -t [nome]: altera a tag ID do nome da música;
- -T [número]: altera a tag ID do número da faixa da música;
- -a [artista]: altera a tag ID do nome do artista da música;
- -A [álbum]: altera a tag ID do álbum da música.
Para renomear os arquivos em massa, precisa-se criar um script que faça isso. Vou usar como exemplo o meu caso, mas você precisará adaptá-lo às suas necessidades.
Estudo de caso: diretório músicas de lcavalheiro
O meu diretório
Música, é organizado da seguinte maneira: cada artista é um subdiretório, e cada álbum é um subdiretório dentro do diretório do artista.
O nome dos diretórios dos álbuns segue o padrão "yyyy - álbum", onde 'yyyy', é o ano de lançamento do álbum. Cada arquivo é nomeado com o padrão "xx nomedamúsica.extensão", onde 'xx', é o número da faixa. Então, se eu usar o comando
pwd dentro do diretório de um álbum, fica assim:
pwd
/home/lcavalheiro/Música/Dead Can Dance/2012 - Live Happenings
Esta padronização me permite usar a própria estrutura de diretórios para criar as principais tags ID, deixando apenas para o nome do arquivo a função de gerar as tags ID do nome da música e do número de faixa.
O script, ficaria assim:
#!/bin/bash
# Script de renomeação em massa dos arquivos
# Autor: Luís Fernando Carvalho Cavalheiro ( pessoal at profcavalheiro dot com)
# Versão 0.1
# Data da versão: 20120906
# Eu autorizo expressamente o uso, a redistribuição e a alteração deste script, desde que você me dê os créditos por ser o autor original
# Para funcionar corretamente, este script precisa ser executado no diretório no qual se encontram as músicas (no meu caso, dentro do diretório do álbum)
for i in */*.mp3; do
artista=$(echo `pwd` | cut -d'/' -f5) \
album=$(echo `pwd` | cut -d'/' -f6 | cut -d'-' -f2 | cut -c2-) \
ano=$(echo `pwd` | cut -d'/' -f6 | cut -c1-4) \
musica=$(echo "$i" | sed 's/.mp3/-teste/' | cut -d'-' -f1 | cut -c4-) \
faixa=$(echo "$i" | cut -c1-2) \
id3v2 -a "$artista" -A "$album" -t "$musica" -y "$ano" -T "$faixa" "$i" \
done
# EOF
Explicando:
- Para "$artista", ordeno que o script use o caminho completo do diretório atual (ou seja, do diretório do álbum), usando o comando cut para pegar o quarto diretório da árvore da raiz até o diretório atual;
- O mesmo raciocínio vale para "$album", mas neste caso, só me interessa os dados depois do ano de lançamento do álbum. EXCEÇÃO: quando ordenei as tags ID do artista de K-pop PSY, mantive o ano no nome dos álbuns, já que eu NÃO LEIO COREANO;
- O mesmo raciocínio de "$album" vale para "$ano", mas pegando apenas os quatro primeiros dígitos do nome do diretório;
- Para "$musica", uso o sed para substituir a extensão por um "-teste". Poderia ser qualquer coisa, desde que o nome de nenhum dos arquivos tenha um " - ". Se tiver, use qualquer outro caractere. A partir daí, pego com o próximo cut todos os caracteres antes do símbolo e descarto os três primeiros (dois números e um espaço);
- Para "$faixa", o raciocínio é similar, mas, mais simples do que para "$musica". Simplesmente pego os dois primeiros caracteres do nome do arquivo;
- E então, uso o id3v2, para atribuir todas as tags ID que me interessam.
Fim do estudo de caso.
Enfim, após esta longa dica, espero ter ajudado os confrades que encontram-se na mesma situação que eu.
Como diria Crowley, divirtam-se!