mp3traduz
Publicado por Perfil removido 05/12/2006
[ Hits: 8.183 ]
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 controle de IP+MAC
Limpar pacotes com versões antigas do cache do apt
Monitorar capacidade das partições
Script para módulo de bateria do GKrellm
Nenhum comentário foi encontrado.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
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
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
A area de trabalho ficou preta (14)
Falta pacotes de suporte ao sistema de arquivos (Gerenciador de discos... (4)
xubuntu sem sons de eventos (4)