mp3traduz
Publicado por Perfil removido 05/12/2006
[ Hits: 8.160 ]
O mp3traduz é um shell-script que recodifica o nome e/ou a id3v1 (informações da mp3) de uma mp3 ou de um diretório (e seus sub-diretórios se você assim desejar) cheio delas.
Este Script foi baseado na dica dada por Davidson Rodrigues Paulo para o www.vivaolinux.com. Para utilizá-lo extraia-o usando o comando (como root):
# tar -zxvf mp3traduz.tar.gz -C /usr/local/bin
Feito isso, como usuário normal, dê um "mp3traduz" e leia as instruções. O programa requer mp3info, dialog e iconv.
#!/bin/sh # # Script Criado Por Eduardo Fagundes Filippo(ed2ef),E Inspirado Na Dica Dada Pelo Davidson Rodrigues Paulo # Ao www.vivaolinux.com.br na url:'http://www.vivaolinux.com.br/dicas/verDica.php?codigo=7329' # O Script Ficou Meio Grande e Pode Parecer Complicado, Mas A Ideia É Bem Simples..Oq Fez Ele Ficar Assim # Foram Algumas Frescuras Que Eu Quiz Por Nele, E Tambem Meu Conhecimento Um Pouco Limitado De Sh... # Em Caso De Bugs,Duvidas,Criticas, Mande Um Email Para ed2ef@hyahoo.com.br Ou Um Scrap Para O Orkut: # 'http://www.orkut.com/Profile.aspx?uid=18406490453974940886' # #----------------------------------------------------------------------------------------------------------| # Apesar No Nome..hehehehe Aqui Ele Vai Checar Se Voce Tem Os Programas Necessarios... | #----------------------------------------------------------------------------------------------------------| checando() { echo "Agora Irei Procura Pelos Seguintes Programas:" echo "1- dialog, Para Criar Uma Interface Grafica;" echo "2- mp3info, Para Saber/Alterar As Id3v1;" echo "3- iconv, Programa Que Faz A Recodificaçao!" for I in `echo $PATH | sed 's/:/ /g'`;do if [ -e "$I/dialog" ];then dl=dialog fi if [ -e "$I/mp3info" ];then mi=mp3info fi if [ -e "$I/iconv" ];then ic=iconv fi done echo "Achei Os Seguintes Programas: $dl $mi $ic" if [[ "$dl" == "dialog" && "$mi" == "mp3info" && "$ic" == "iconv" ]];then inicio fi } inicio() { if [ -e "$op1" ];then tipo=$(file -b "$op1" | sed 's/ .*//g') case $tipo in directory)cd "$op1";diretorio;; MP3)arq="$op1";mp3;; MPEG)arq="$op1";mp3;; -h)opcoes;; --help)opcoes;; --ajuda)opcoes;; *)echo "$op1: Arquivo Não é Uma Mp3 Ou Diretorio Invalido";; esac elif [ "$op1" == "-A" ];then expert else opcoes fi } #----------------------------------------------------------------------------------------------------------| # Caso Vc Digite apenas mp3traduz Ou Escreva Um Caminho Errado..Eh Aqui Q Vc Vai Parar.. | #----------------------------------------------------------------------------------------------------------| opcoes() { mp3=$(echo mp3traduz) echo "" echo "Bem-Vindo Ao $mp3!Este Script Foi Feito Por Eduardo Fagunde Filippo(ed2ef),Baseado" echo "Na Dica Dada Por Davidson Rodrigues Paulo Ao www.vivaolinux.com .Em Caso De Bugs," echo "Duvidas,Criticas,Sugestões Mande Um Email Para ed2ef@hyahoo.com.br Ou Um Scrap Para" echo "O Orkut: 'http://www.orkut.com/Profile.aspx?uid=18406490453974940886'.O $mp3 Tem" echo "Por Objetivo Ser Ultra-Simples e Automatico!Você Só Precisa Apontar A Mp3 Ou O Diretorio" echo "A Ser Convertido.Feito Isso,Escolha A Codificação A Ser Usanda e Pronto!O Programa Se" echo "Encarrega De Converter O(s) Nome(s) E Sua(s) Respectiva(s) Tags(Id3v1)!No Caso De Diretorio," echo "Seus Sub-Diretorios Tambêm Seram Convertidos!Para Opçoes Avançadas Digite: $mp3 -A" echo "" echo "Como Usar Este Programa?" echo "" echo "Para Converter Um Diretorio e Seus Sub-Diretorios:" echo "$mp3 /home/usuario/mp3" echo "" echo "Ou" echo "" echo "Para Converter Somente UM ARQUIVO:" echo "$mp3 /home/usuario/mp3/arquivo.mp3" echo "" } #----------------------------------------------------------------------------------------------------------| # Como Proprio Nome Diz..Aqui Vc Escolhe Como o mp3traduz Trabalha...Leia Atentamente As Descrições | #----------------------------------------------------------------------------------------------------------| cod() { dialog --clear --stdout --yes-label "Aceitar" --no-label "Recusar" --title "AVISO" --yesno "Antes De Prosseguir, Irei Explicar Um Pouco Sobre As Codificações: WINDOWS-1250 -> Codificação Padrão Usada SOMENTE No Windows, Ou Seja Em Caso de Migração,E Caso Você Tenha 'Puxado' Arquivos Desta Partição (Formata Em Vfat/NTFS/DOS),Eles Estaram Codificados Em WINDOWS-1250; ISO-8859-1 -> Codificação Padrão Para Idiomas Ocidentais(Brasileiro).Vem Sendo Gradualmente Substituido Pelo UTF-8.Em Caso De Duvidas,digite 'locales' Em Um Terminal, Se Aparecer pt_BR ou pt_BR.ISO-8859-1 ou coisa Parecida, Seu Locale Esta Em Iso-8859-1; UTF-8 -> A Nova Codificação Padrão!Dita Como Universal,Vem Para Acabar De Vez Com Aqueles Caracteres Estranhos Que Aparecem Em Sites De Idiomas No Minimo Excentricos!Para Saber Se Sua Codificação Padrão é Essa, Digite 'locales' Em Um Terminal, Aparecendo Algo Como pt_BR.UTF-8 ou coisa parecida, Esta é a Sua Codificação! Caso Você Aceite E Tenha Entendido Tudo Isso,Clique Em Aceitar.Caso Contrario Clique Em Recusar." 0 0 aviso=$? if [ "$aviso" == "0" ];then cod=$(dialog --clear --stdout --title "Conversões Possiveis"\ --radiolist "Escolha Uma Das Opções Abaixo" 0 0 0\ 1 "De: WINDOWS-1250 Para: ISO-8859-1" off\ 2 "De: WINDOWS-1250 Para: UTF-8" off\ 3 "De: ISO-8859-1 Para: UTF-8" off\ 4 "De: UTF-8 Para: ISO-8859-1" off\ 5 "Sair" on) else exit fi case $cod in 1)codin=WINDOWS-1250;codout=ISO-8859-1;; 2)codin=WINDOWS-1250;codout=UTF-8;; 3)codin=ISO-8859-1;codout=UTF-8;; 4)codin=UTF-8;codout=ISO-8859-1;; 5)exit;; *)exit;; esac if [[ "$codin" == "" && "$codout" == "" ]];then exit fi } #----------------------------------------------------------------------------------------------------------| # Procura Por Arquivos E Codifica Quando Necessario..So Vale Pra Pesquisa Por Diretorio | #----------------------------------------------------------------------------------------------------------| converter() { if [ "$novo" != "$arquivo" ] ; then echo "Movendo De :$arquivo / Para: $novo" mv "$arquivo" "$novo" fi } #----------------------------------------------------------------------------------------------------------| procura() { for arquivo in *; do novo="`echo $arquivo | iconv -f $codin -t $codout`" retval=$? if [ "$retval" == "0" ]; then converter else echo "$arquivo Ja Esta Codificado,Ou Você Escolheu Uma Codificação Errada" echo "Por Via Das Duvidas Este Arquivo Não Será Renomeado" fi done } #----------------------------------------------------------------------------------------------------------| # Analisa As Id3v1 Caso Seje Selecionado Conversão Por Diretorio... | #----------------------------------------------------------------------------------------------------------| info() { for info in *;do tipo=$(file -b "$info" | sed 's/ .*//g') if [ "$tipo" == "MP3" -o "$tipo" == "MPEG" ];then autor=$(mp3info "$info" -p %a) musica=$(mp3info "$info" -p %t) if [[ "$autor" != "" && "$musica" != "" ]];then na="`echo "$autor" | iconv -f $codin -t $codout`" retval=$? if [ "$retval" == "0" ];then echo "Convertendo Autor De: $autor Para: $na" mp3info -a "$na" "$info" else echo "$autor Ja Esta Codificado, Ou Você Escolheu Uma Codificação Errada" echo "Por Via Das Duvidas Esta Tag Não Será Renomeada!" fi nm="`echo "$musica" | iconv -f $codin -t $codout`" retval=$? if [ "$retval" == "0" ];then echo "Convertendo Titulo De: $musica Para: $nm" mp3info -t "$nm" "$info" else echo "$musica Ja Esta Codificado, Ou Você Escolheu Uma Codificação Errada" echo "Por Via Das Duvidas Esta Tag Não Será Renomeada!" fi fi else if [[ "$tipo" == "directory" && "$sd" != "0" ]];then cd "$info" echo "$PWD" for A in *;do tipo=$(file -b "$A" | sed 's/ .*//g') if [ "$tipo" == "MP3" -o "$tipo" == "MPEG" ];then autor=$(mp3info "$A" -p %a) musica=$(mp3info "$A" -p %t) if [[ "$autor" != "" && "$musica" != "" ]];then na="`echo "$autor" | iconv -f $codin -t $codout`" retval=$? if [ "$retval" == "0" ];then echo "Convertendo Autor De: $autor Para: $na" mp3info -a "$na" "$A" else echo "$autor Ja Esta Codificado, Ou Você Escolheu Uma Codificação Errada" echo "Por Via Das Duvidas Esta Tag Não Será Renomeada!" fi nm="`echo "$musica" | iconv -f $codin -t $codout`" retval=$? if [ "$retval" == "0" ];then echo "Convertendo Titulo De: $musica Para: $nm" mp3info -t "$nm" "$A" else echo "$musica Ja Esta Codificado, Ou Você Escolheu Uma Codificação Errada" echo "Por Via Das Duvidas Esta Tag Não Será Renomeada!" fi fi fi done cd .. fi fi done } #----------------------------------------------------------------------------------------------------------| id3v1() { echo "Converter Id3v1" echo "De: $codin Para : $codout" info } #----------------------------------------------------------------------------------------------------------| # Analisa Os Diretorios + Sub-Diretorios...essa eh a parte mais chata... | #----------------------------------------------------------------------------------------------------------| diretorio() { dirin=$PWD cod echo "Converter Diretorio $dirin" echo "De: $codin Para : $codout" procura if [ "$sd" != "0" ];then subdir fi if [ "$cont" != "0" ];then id3v1 fi } #----------------------------------------------------------------------------------------------------------| subdir() { echo "Convertendo Os Sub-Diretorios..." echo "De: $codin Para : $codout" for A in *;do dir=$(file -b "$A") if [ "$dir" == "directory" ];then echo "Convertendo Sub-Diretorio $A" cd "$A" procura cd .. fi done } #----------------------------------------------------------------------------------------------------------| # Muda a Id3v1 De Uma MP3 Somente...Bem Simples! | #----------------------------------------------------------------------------------------------------------| id3mp3() { echo "Converter Id3v1" echo "De: $codin Para : $codout" autor=$(mp3info "$novo" -p %a) musica=$(mp3info "$novo" -p %t) if [[ "$autor" != "" && "$musica" != "" ]];then na="`echo "$autor" | iconv -f $codin -t $codout`" retval=$? if [ "$retval" == "0" ];then echo "Convertendo Autor De: $autor Para: $na" mp3info -a "$na" "$novo" else echo "$autor Ja Esta Codificado, Ou Você Escolheu Uma Codificação Errada" echo "Por Via Das Duvidas Esta Tag Não Será Renomeada!" fi nm="`echo "$musica" | iconv -f $codin -t $codout`" retval=$? if [ "$retval" == "0" ];then echo "Convertendo Titulo De: $musica Para: $nm" mp3info -t "$nm" "$novo" else echo "$musica Ja Esta Codificado, Ou Você Escolheu Uma Codificação Errada" echo "Por Via Das Duvidas Esta Tag Não Será Renomeada!" fi fi } #----------------------------------------------------------------------------------------------------------| # MP3 Somente...A Ideia eh basicamente essa..Se For Mp3,v Se Rola Conversao, sim \o/!Simples Nao? 2=P | #----------------------------------------------------------------------------------------------------------| mp3() { arquin=$(echo "$arq" | sed 's/.*\///g') dirin=$(echo "$arq" | sed "s/$arquin//g") cd "$dirin" dirin=$PWD cod echo "Converter Arquivo: $dirin/$arquin" echo "De: $codin Para : $codout" novo="`echo "$arquin" | iconv -f $codin -t $codout`" retval=$? if [ "$retval" == "0" ];then if [ "$novo" != "$arquin" ] ; then echo "Movendo De :$arquin / Para: $novo" mv "$arquin" "$novo" fi else echo "$arquin Ja Esta Codificado,Ou Você Escolheu Uma Codificação Errada" echo "Por Via Das Duvidas Este Arquivo Não Será Renomeado" fi if [ "$cont" != "0" ];then id3mp3 fi } #----------------------------------------------------------------------------------------------------------| # Opções Avançadas.. | #----------------------------------------------------------------------------------------------------------| menump3() { echo "Você Escolheu Uma Mp3" echo "Agora Escolha Oq Deseja Fazer:" echo "1- Converter O Nome Da Mp3;" echo "2- Converter A Tag(Id3v1);" echo "3- Converter Tudo;" echo "4- Sair;" read -p "[1,2,3,4]" m1 arq=$escolha novo=$escolha case $m1 in 1)cont=0;mp3;; 2)cod;id3mp3;; 3)mp3;; 4)exit;; *)echo "Opção $m1 Invalida, Voltando Para O Menump3";menump3;; esac } menudir() { cd "$escolha" echo "Você Escolheu Um Diretorio!" echo "Antes De Escolher Oq Converter,Deseja" echo "Converter Tambêm Os Sub-Diretorios?" read -p "[Sim/nao]" sub case $sub in Sim);; nao)sd=0;; *)echo "$sub Esta Errado, Vc Deve Dizer Sim ou nao.Voltando Para o Menudir";menudir; esac echo "Agora Escolha Oq Deseja Fazer:" echo "1- Converter Os Nomes Das Mp3s ;" echo "2- Converter As Tags(Id3v1);" echo "3- Converter Tudo;" echo "4- Sair;" read -p "[1,2,3,4]" m1 case $m1 in 1)cont=0;diretorio;; 2)cod;id3v1;; 3)diretorio;; 4)exit;; *)echo "Opção $m1 Invalida, Voltando Para O Menump3";menump3;; esac } expert() { echo "" echo "As Opções Avanças Funcionam Assim:" echo "" echo "mp3traduz -A [Arquivo/Pasta]" echo "" echo "Apos Feito Isso Siga As Instruções" echo "Do Programa e Pronto!" tipo=$(file -b "$escolha" | sed 's/ .*//g') if [ "$tipo" == "MP3" -o "$tipo" == "MPEG" ];then menump3 elif [ "$tipo" == "directory" ];then menudir fi } #----------------------------------------------------------------------------------------------------------| # Inicio De Tudo.. | #----------------------------------------------------------------------------------------------------------| escolha=$2 op1=$1 checando
Script simples para cálculos com dialog
Busca e copia arquivos renomeando-os conforme a máscara
Enviar mensagem para os terminais ltsp
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Instalação Uefi com o instalador clássico do Mageia (0)
É cada coisa que me aparece! - não é só 3% (2)
SysAdmin ou DevOps: Qual curso inicial pra essa área? (1)
Alguma pessoa pode me ajudar com drriver Core i3 7020u (Debian 12)? (2)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta