<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: id3 code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Thu, 28 Aug 2008 20:55:01 GMT</pubDate>
    <description>DZone Snippets: id3 code</description>
    <item>
      <title>Genres defined in ID3v2 and Winamp extensions</title>
      <link>http://snippets.dzone.com/posts/show/3756</link>
      <description>Why oh why not just store strings?&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;NSMutableArray *genres = [NSMutableArray array];&lt;br /&gt;[genres addObject:@"Blues"];&lt;br /&gt;[genres addObject:@"Classic Rock"];&lt;br /&gt;[genres addObject:@"Country"];&lt;br /&gt;[genres addObject:@"Dance"];&lt;br /&gt;[genres addObject:@"Disco"];&lt;br /&gt;[genres addObject:@"Funk"];&lt;br /&gt;[genres addObject:@"Grunge"];&lt;br /&gt;[genres addObject:@"Hip-Hop"];&lt;br /&gt;[genres addObject:@"Jazz"];&lt;br /&gt;[genres addObject:@"Metal"];&lt;br /&gt;[genres addObject:@"New Age"];&lt;br /&gt;[genres addObject:@"Oldies"];&lt;br /&gt;[genres addObject:@"Other"];&lt;br /&gt;[genres addObject:@"Pop"];&lt;br /&gt;[genres addObject:@"R&amp;B"];&lt;br /&gt;[genres addObject:@"Rap"];&lt;br /&gt;[genres addObject:@"Reggae"];&lt;br /&gt;[genres addObject:@"Rock"];&lt;br /&gt;[genres addObject:@"Techno"];&lt;br /&gt;[genres addObject:@"Industrial"];&lt;br /&gt;[genres addObject:@"Alternative"];&lt;br /&gt;[genres addObject:@"Ska"];&lt;br /&gt;[genres addObject:@"Death Metal"];&lt;br /&gt;[genres addObject:@"Pranks"];&lt;br /&gt;[genres addObject:@"Soundtrack"];&lt;br /&gt;[genres addObject:@"Euro-Techno"];&lt;br /&gt;[genres addObject:@"Ambient"];&lt;br /&gt;[genres addObject:@"Trip-Hop"];&lt;br /&gt;[genres addObject:@"Vocal"];&lt;br /&gt;[genres addObject:@"Jazz+Funk"];&lt;br /&gt;[genres addObject:@"Fusion"];&lt;br /&gt;[genres addObject:@"Trance"];&lt;br /&gt;[genres addObject:@"Classical"];&lt;br /&gt;[genres addObject:@"Instrumental"];&lt;br /&gt;[genres addObject:@"Acid"];&lt;br /&gt;[genres addObject:@"House"];&lt;br /&gt;[genres addObject:@"Game"];&lt;br /&gt;[genres addObject:@"Sound Clip"];&lt;br /&gt;[genres addObject:@"Gospel"];&lt;br /&gt;[genres addObject:@"Noise"];&lt;br /&gt;[genres addObject:@"AlternRock"];&lt;br /&gt;[genres addObject:@"Bass"];&lt;br /&gt;[genres addObject:@"Soul"];&lt;br /&gt;[genres addObject:@"Punk"];&lt;br /&gt;[genres addObject:@"Space"];&lt;br /&gt;[genres addObject:@"Meditative"];&lt;br /&gt;[genres addObject:@"Instrumental Pop"];&lt;br /&gt;[genres addObject:@"Instrumental Rock"];&lt;br /&gt;[genres addObject:@"Ethnic"];&lt;br /&gt;[genres addObject:@"Gothic"];&lt;br /&gt;[genres addObject:@"Darkwave"];&lt;br /&gt;[genres addObject:@"Techno-Industrial"];&lt;br /&gt;[genres addObject:@"Electronic"];&lt;br /&gt;[genres addObject:@"Pop-Folk"];&lt;br /&gt;[genres addObject:@"Eurodance"];&lt;br /&gt;[genres addObject:@"Dream"];&lt;br /&gt;[genres addObject:@"Southern Rock"];&lt;br /&gt;[genres addObject:@"Comedy"];&lt;br /&gt;[genres addObject:@"Cult"];&lt;br /&gt;[genres addObject:@"Gangsta"];&lt;br /&gt;[genres addObject:@"Top 40"];&lt;br /&gt;[genres addObject:@"Christian Rap"];&lt;br /&gt;[genres addObject:@"Pop/Funk"];&lt;br /&gt;[genres addObject:@"Jungle"];&lt;br /&gt;[genres addObject:@"Native American"];&lt;br /&gt;[genres addObject:@"Cabaret"];&lt;br /&gt;[genres addObject:@"New Wave"];&lt;br /&gt;[genres addObject:@"Psychadelic"];&lt;br /&gt;[genres addObject:@"Rave"];&lt;br /&gt;[genres addObject:@"Showtunes"];&lt;br /&gt;[genres addObject:@"Trailer"];&lt;br /&gt;[genres addObject:@"Lo-Fi"];&lt;br /&gt;[genres addObject:@"Tribal"];&lt;br /&gt;[genres addObject:@"Acid Punk"];&lt;br /&gt;[genres addObject:@"Acid Jazz"];&lt;br /&gt;[genres addObject:@"Polka"];&lt;br /&gt;[genres addObject:@"Retro"];&lt;br /&gt;[genres addObject:@"Musical"];&lt;br /&gt;[genres addObject:@"Rock &amp; Roll"];&lt;br /&gt;[genres addObject:@"Hard Rock"];&lt;br /&gt;[genres addObject:@"Folk"];&lt;br /&gt;[genres addObject:@"Folk-Rock"];&lt;br /&gt;[genres addObject:@"National Folk"];&lt;br /&gt;[genres addObject:@"Swing"];&lt;br /&gt;[genres addObject:@"Fast Fusion"];&lt;br /&gt;[genres addObject:@"Bebob"];&lt;br /&gt;[genres addObject:@"Latin"];&lt;br /&gt;[genres addObject:@"Revival"];&lt;br /&gt;[genres addObject:@"Celtic"];&lt;br /&gt;[genres addObject:@"Bluegrass"];&lt;br /&gt;[genres addObject:@"Avantgarde"];&lt;br /&gt;[genres addObject:@"Gothic Rock"];&lt;br /&gt;[genres addObject:@"Progressive Rock"];&lt;br /&gt;[genres addObject:@"Psychedelic Rock"];&lt;br /&gt;[genres addObject:@"Symphonic Rock"];&lt;br /&gt;[genres addObject:@"Slow Rock"];&lt;br /&gt;[genres addObject:@"Big Band"];&lt;br /&gt;[genres addObject:@"Chorus"];&lt;br /&gt;[genres addObject:@"Easy Listening"];&lt;br /&gt;[genres addObject:@"Acoustic"];&lt;br /&gt;[genres addObject:@"Humour"];&lt;br /&gt;[genres addObject:@"Speech"];&lt;br /&gt;[genres addObject:@"Chanson"];&lt;br /&gt;[genres addObject:@"Opera"];&lt;br /&gt;[genres addObject:@"Chamber Music"];&lt;br /&gt;[genres addObject:@"Sonata"];&lt;br /&gt;[genres addObject:@"Symphony"];&lt;br /&gt;[genres addObject:@"Booty Bass"];&lt;br /&gt;[genres addObject:@"Primus"];&lt;br /&gt;[genres addObject:@"Porn Groove"];&lt;br /&gt;[genres addObject:@"Satire"];&lt;br /&gt;[genres addObject:@"Slow Jam"];&lt;br /&gt;[genres addObject:@"Club"];&lt;br /&gt;[genres addObject:@"Tango"];&lt;br /&gt;[genres addObject:@"Samba"];&lt;br /&gt;[genres addObject:@"Folklore"];&lt;br /&gt;[genres addObject:@"Ballad"];&lt;br /&gt;[genres addObject:@"Power Ballad"];&lt;br /&gt;[genres addObject:@"Rhythmic Soul"];&lt;br /&gt;[genres addObject:@"Freestyle"];&lt;br /&gt;[genres addObject:@"Duet"];&lt;br /&gt;[genres addObject:@"Punk Rock"];&lt;br /&gt;[genres addObject:@"Drum Solo"];&lt;br /&gt;[genres addObject:@"A capella"];&lt;br /&gt;[genres addObject:@"Euro-House"];&lt;br /&gt;[genres addObject:@"Dance Hall"];&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Mon, 02 Apr 2007 22:25:42 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3756</guid>
      <author>aptiva (Fj&#195;&#182;lnir &#195;?sgeirsson)</author>
    </item>
    <item>
      <title>Python id3 tag from containing folder</title>
      <link>http://snippets.dzone.com/posts/show/3509</link>
      <description>// Total noob python script for renaming the 'album' tag in an untagged mp3 file.  I plug it into podnova (using advanced -&gt; run command) as it downloads my podcasts so that they get sorted correctly when I copy them onto my ipod.&lt;br /&gt;&lt;br /&gt;PodNova organizes podcasts by folder.  the iPod organizes podcasts by album tag.  If you use GtkPod to copy podcasts from PodNova, this can help keep mp3 podcasts categorized properly.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#!/usr/bin/python&lt;br /&gt;import sys&lt;br /&gt;&lt;br /&gt;# requires ID3 module, easily googled&lt;br /&gt;from ID3 import *&lt;br /&gt;for arg in sys.argv:&lt;br /&gt;    fullfilename = arg&lt;br /&gt;&lt;br /&gt;# This only works for mp3 files, I would love suggestions for mp4 tags&lt;br /&gt;id3info = ID3(fullfilename)&lt;br /&gt;&lt;br /&gt;# Print command useful for logging.&lt;br /&gt;print id3info&lt;br /&gt;&lt;br /&gt;# Check if album info exists&lt;br /&gt;if not id3info.has_key('ALBUM'):&lt;br /&gt;    print 'appending album tag'&lt;br /&gt;    # truncate to just containing directory:&lt;br /&gt;    folder = fullfilename[1:rfind(fullfilename,'/')]&lt;br /&gt;    # define album based on podcast's directory&lt;br /&gt;    album = (folder[rfind(folder,'/'):]).strip('/')&lt;br /&gt;    id3info.album = album&lt;br /&gt;    if id3info.album == album:&lt;br /&gt;        print 'success!'&lt;br /&gt;else:&lt;br /&gt;    print 'nothing to change'&lt;br /&gt;    &lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Tue, 13 Feb 2007 12:55:04 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3509</guid>
      <author>dannyq (danny)</author>
    </item>
    <item>
      <title>Python - Get id3 from MP3 File</title>
      <link>http://snippets.dzone.com/posts/show/1634</link>
      <description>// Cattura i tag id3 da un file MP3&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;def getID3(filename):&lt;br /&gt;    fp = open(filename, 'r')&lt;br /&gt;    fp.seek(-128, 2)&lt;br /&gt;&lt;br /&gt;    fp.read(3) # TAG iniziale&lt;br /&gt;    title   = fp.read(30)&lt;br /&gt;    artist  = fp.read(30)&lt;br /&gt;    album   = fp.read(30)&lt;br /&gt;    anno    = fp.read(4)&lt;br /&gt;    comment = fp.read(28)&lt;br /&gt;&lt;br /&gt;    fp.close()&lt;br /&gt;&lt;br /&gt;    return {'title':title, 'artist':artist, 'album':album, 'anno':anno}&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Sun, 05 Mar 2006 09:47:25 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/1634</guid>
      <author>whitetiger ()</author>
    </item>
  </channel>
</rss>
