<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Valdinei dos Santos &#187; id3</title>
	<atom:link href="http://www.valdineidossantos.com/tag/id3/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.valdineidossantos.com</link>
	<description>programação, sistemas operacionais e assuntos web</description>
	<lastBuildDate>Sat, 27 Feb 2010 20:09:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Editando tags id3 com python</title>
		<link>http://www.valdineidossantos.com/2010/01/editando-tag-id3-python/</link>
		<comments>http://www.valdineidossantos.com/2010/01/editando-tag-id3-python/#comments</comments>
		<pubDate>Sat, 16 Jan 2010 20:31:33 +0000</pubDate>
		<dc:creator>Valdinei</dc:creator>
				<category><![CDATA[geral]]></category>
		<category><![CDATA[programação]]></category>
		<category><![CDATA[id3]]></category>
		<category><![CDATA[mp3]]></category>
		<category><![CDATA[mutage]]></category>
		<category><![CDATA[mutagen]]></category>
		<category><![CDATA[os.join]]></category>
		<category><![CDATA[os.walk os.path]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.valdineidossantos.com/?p=150</guid>
		<description><![CDATA[Ola a todos, Hoje vou falar de um problema que muitas pessoas devem ter. Ao baixar uma música qualquer da internet os carinhas colocam o nome do site no Titulo da música, no artista e nos comentários mas como isso se o o arquivo esta com nome correto? Eles usam as tags ID3, mas então [...]]]></description>
			<content:encoded><![CDATA[<p>Ola a todos, </p>
<p>Hoje vou falar de um problema que muitas pessoas devem ter. Ao baixar uma música qualquer da internet os carinhas colocam o nome do site no Titulo da música, no artista e nos comentários mas como isso se o o arquivo esta com nome correto?<br />
Eles usam as tags ID3, mas então o que é a tag ID3? </p>
<p>&#8220;A etiqueta ID3 (em inglês: ID3 Tag) é um conjunto de informações mais usados junto com o formato de áudio MP3. Ela permite armazenar informações como o título, artista, album, número da faixa, ou outra informação sobre o arquivo no próprio aquivo.&#8221; Wikipedia [1]</p>
<p>Depois de ler um pouco a respeito resolvi mudar as tags das músicas para que quando as estiver escutando apareçam os dados válidos como nome da música e do Artista que a canta. Eu uso o Rhythmbox[2] e este pode até ser integrado ao seu software para conversa instantanea como AMSN[4], PIDGIN[4] dentre outros. Fazer isso na mão seria muito cansativo e não divertido, solução &#8230;. python. </p>
<p>Para este script utilizei uma biblioteca não padrão do python o mutagen[5], este serve para mostrar/editar as tags ID3 das músicas em formato mp3.</p>
<p>De acordo com o exemplo do site bastam 4 linhas para abrir->modificar->salvar o titulo de uma música em formato mp3 em seu HD.</p>
<pre class="brush:python">
 from mutagen.easyid3 import EasyID3
 audio = EasyID3("sua_musica.mp3")
 audio["title"] = "Somente um exemplo no titulo"
 audio.save()
</pre>
<p>Agora vamos a meu script, não vou comentar pois o código já esta bem comentado.</p>
<pre class="brush:python">
#!/bin/env python
#!-*- coding: utf-8 -*-
from sys import exit
from os import walk, path
from os.path import isfile, join

"""
@author: Valdinei dos Santos
@twitter: http://twitter.com/valdineisantos
@site: http://www.valdineidossantos.com/
@date: 16 Janeiro 2010
"""

try:
    from mutagen.easyid3 import EasyID3
except:
    print "Necessario instalar a biblioteca mutagen"
    print "Site: http://code.google.com/p/mutagen/"
    print "Python Setup Tools: easy_install mutagen"
    exit(1)

#Diretorio que vai ser pesquisado
directory_root = "/home/valdinei/Musica/Downloads/"

def getInformations(track):
        fileAtributes = dict()
        """
        O Padrão das músicas estavam "01 - Artista - Album.mp3"
        Nesta parte de Código vc deve se adequar a sua realidade mas isso é só trabalhar com strings.
        """
        #split por "- " me dará com resultado 3 strings
        trackNumber, artist, title   =  track.split("- ")

        #Que depois de tratadas serao retorandas como valor final
        fileAtributes["trackNumber"] =  trackNumber.strip()
        fileAtributes["artist"]      =  artist.strip() 

        #Tratando a string como um lista. O .mp3 esta sendo ignorado pois pego tudo -4 casas do final
        fileAtributes["title"]       =  title.strip()[:-4]

        return fileAtributes 

"""
Caso tenhamos mais diretorios internos sera recursivo.
Mais sobre Walk em : http://docs.python.org/library/os.html#os.walk
"""
for (original,  directoryname, filenames) in walk (directory_root):
    filenames.sort()

    total = len(filenames)

    cont = 0;

    for filename in filenames:
        """
        Calculando a porcentagem de arquivos feitos
        (parcial * 100)/numero total de músicas
        """
        cont = cont +  1
        percent = round (cont * 100 / total )
        print "%02d%%" % percent

        info = getInformations(filename)

        #Verifico se o endereço do arquivo é valido realmente e se ele continua la.
        if isfile( join(original,filename) ):
            """
            Agora vamos começar a modificar as tags ID3 dos arquivos MP3 depois salva-los.
            """
            try:
                mp3 = EasyID3( join(original,filename) )
                mp3["title"] = info["title"]
                mp3["artist"] = info["artist"]
                mp3["tracknumber"] = info["trackNumber"]

                #Salva as informações no arquivo
                mp3.save()
            except Exception, e:
                print "%s %s" % (e.__doc__, e )

print "Todos os Arquivos foram modificados"
</pre>
<p>E com isso suas mp3 agora vão ter o formato que você definiu que teriam. Atenção eu em momento algum modifiquei o nome físico do arquivo, somente as meta informações baseadas no nome que era o que eu tinha em mãos. </p>
<p>Não estou em momento nenhum incentivando a NINGUÉM baixar NADA da internet. A idéia original aqui era simplesmente python + programação e algumas boas práticas. </p>
<p>Algumas coisas que derrepente podem ter passados despercebidas foi o uso do os.walk, os.join, os.isfile todos importados no cabeçalho. Mas isso pode ser um outro assunto de post.</p>
<p>Seguem os links de referencia:</p>
<p>[1] Wikipedia : <a href="http://pt.wikipedia.org/wiki/ID3" target="_blank"> http://pt.wikipedia.org/wiki/ID3 </a></p>
<p>[2] Rhythmbox:  <a href="http://projects.gnome.org/rhythmbox/" target="_blank">  http://projects.gnome.org/rhythmbox/ </a></p>
<p>[4] AMSN: <a href="http://www.amsn-project.net/" target="_blank"> http://www.amsn-project.net/ </a> (esse projeto originalmente era feito por um brasileiro)</p>
<p>[5] PIDGIN: <a href="http://www.pidgin.im/" target="_blank"> http://www.pidgin.im/ </a></p>
<p>[6] Mutagen: <a href="http://code.google.com/p/mutagen/" target="_blank"> http://code.google.com/p/mutagen/ </a></p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "mp3 python programacao";
            bb_bid  = "135874";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "9";bb_format = "bbo";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->

<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-shr">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.valdineidossantos.com/2010/01/editando-tag-id3-python/feed" rel="nofollow" class="external" title="Acompanhar comentários deste artigo?">Acompanhar comentários deste artigo?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.valdineidossantos.com/2010/01/editando-tag-id3-python/&amp;title=Editando+tags+id3+com+python" rel="nofollow" class="external" title="Compartilhar nodel.icio.us">Compartilhar nodel.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://www.valdineidossantos.com/2010/01/editando-tag-id3-python/&amp;title=Editando+tags+id3+com+python" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-diigo">
			<a href="http://www.diigo.com/post?url=http://www.valdineidossantos.com/2010/01/editando-tag-id3-python/&amp;title=Editando+tags+id3+com+python&amp;desc=Ola%20a%20todos%2C%20%0D%0A%0D%0AHoje%20vou%20falar%20de%20um%20problema%20que%20muitas%20pessoas%20devem%20ter.%20Ao%20baixar%20uma%20m%C3%BAsica%20qualquer%20da%20internet%20os%20carinhas%20colocam%20o%20nome%20do%20site%20no%20Titulo%20da%20m%C3%BAsica%2C%20no%20artista%20e%20nos%20coment%C3%A1rios%20mas%20como%20isso%20se%20o%20o%20arquivo%20esta%20com%20nome%20correto%3F%20%0D%0AEles%20usam%20as%20tags%20ID3%2C%20mas%20ent%C3%A3o%20o%20que" rel="nofollow" class="external" title="Publicar noDiigo">Publicar noDiigo</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.valdineidossantos.com/2010/01/editando-tag-id3-python/&amp;t=Editando+tags+id3+com+python" rel="nofollow" class="external" title="Compartilhar noFacebook">Compartilhar noFacebook</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://www.valdineidossantos.com/2010/01/editando-tag-id3-python/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-hotmail">
			<a href="http://mail.live.com/?rru=compose?subject=Editando+tags+id3+com+python&amp;body=Link: http://www.valdineidossantos.com/2010/01/editando-tag-id3-python/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A Ola%20a%20todos%2C%20%0D%0A%0D%0AHoje%20vou%20falar%20de%20um%20problema%20que%20muitas%20pessoas%20devem%20ter.%20Ao%20baixar%20uma%20m%C3%BAsica%20qualquer%20da%20internet%20os%20carinhas%20colocam%20o%20nome%20do%20site%20no%20Titulo%20da%20m%C3%BAsica%2C%20no%20artista%20e%20nos%20coment%C3%A1rios%20mas%20como%20isso%20se%20o%20o%20arquivo%20esta%20com%20nome%20correto%3F%20%0D%0AEles%20usam%20as%20tags%20ID3%2C%20mas%20ent%C3%A3o%20o%20que" rel="nofollow" class="external" title="Email this via Hotmail">Email this via Hotmail</a>
		</li>
		<li class="shr-misterwong">
			<a href="http://www.mister-wong.com/addurl/?bm_url=http://www.valdineidossantos.com/2010/01/editando-tag-id3-python/&amp;bm_description=Editando+tags+id3+com+python&amp;plugin=sexybookmarks" rel="nofollow" class="external" title="Adicionar aoMister Wong">Adicionar aoMister Wong</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.mixx.com/submit?page_url=http://www.valdineidossantos.com/2010/01/editando-tag-id3-python/&amp;title=Editando+tags+id3+com+python" rel="nofollow" class="external" title="Compartilhar noMixx">Compartilhar noMixx</a>
		</li>
		<li class="shr-orkut">
			<a href="http://promote.orkut.com/preview?nt=orkut.com&amp;tt=Editando+tags+id3+com+python&amp;du=http://www.valdineidossantos.com/2010/01/editando-tag-id3-python/&amp;cn=Ola%20a%20todos%2C%20%0D%0A%0D%0AHoje%20vou%20falar%20de%20um%20problema%20que%20muitas%20pessoas%20devem%20ter.%20Ao%20baixar%20uma%20m%C3%BAsica%20qualquer%20da%20internet%20os%20carinhas%20colocam%20o%20nome%20do%20site%20no%20Titulo%20da%20m%C3%BAsica%2C%20no%20artista%20e%20nos%20coment%C3%A1rios%20mas%20como%20isso%20se%20o%20o%20arquivo%20esta%20com%20nome%20correto%3F%20%0D%0AEles%20usam%20as%20tags%20ID3%2C%20mas%20ent%C3%A3o%20o%20que" rel="nofollow" class="external" title="Promover noOrkut">Promover noOrkut</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://www.valdineidossantos.com/2010/01/editando-tag-id3-python/&amp;title=Editando+tags+id3+com+python" rel="nofollow" class="external" title="Compartilhar noReddit">Compartilhar noReddit</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://www.valdineidossantos.com/2010/01/editando-tag-id3-python/&amp;title=Editando+tags+id3+com+python" rel="nofollow" class="external" title="Encontrou algo bom? Compartilhe no StumbleUpon">Encontrou algo bom? Compartilhe no StumbleUpon</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://www.valdineidossantos.com/2010/01/editando-tag-id3-python/" rel="nofollow" class="external" title="Compartilhar noTechnorati">Compartilhar noTechnorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=RT+%40valdineisantos%3A+Editando+tags+id3+com+python+-+http://tr.im/KAFF&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="shr-yahoomail">
			<a href="http://compose.mail.yahoo.com/?Subject=Editando+tags+id3+com+python&amp;body=Link: http://www.valdineidossantos.com/2010/01/editando-tag-id3-python/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A Ola%20a%20todos%2C%20%0D%0A%0D%0AHoje%20vou%20falar%20de%20um%20problema%20que%20muitas%20pessoas%20devem%20ter.%20Ao%20baixar%20uma%20m%C3%BAsica%20qualquer%20da%20internet%20os%20carinhas%20colocam%20o%20nome%20do%20site%20no%20Titulo%20da%20m%C3%BAsica%2C%20no%20artista%20e%20nos%20coment%C3%A1rios%20mas%20como%20isso%20se%20o%20o%20arquivo%20esta%20com%20nome%20correto%3F%20%0D%0AEles%20usam%20as%20tags%20ID3%2C%20mas%20ent%C3%A3o%20o%20que" rel="nofollow" class="external" title="Email this via Yahoo! Mail">Email this via Yahoo! Mail</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.valdineidossantos.com/2010/01/editando-tag-id3-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
