From: James Edward Gray II Date: 2007-08-27T03:08:14+09:00 Subject: Re: [SOLUTION][QUIZ] ID3 Tags (#136) On Aug 26, 2007, at 8:45 AM, Jesse Merriman wrote: > Here's my solution. Here's my own: #!/usr/bin/env ruby -w GENRES = %w[ Blues Classic\ Rock Country Dance Disco Funk Grunge Hip- Hop Jazz Metal New\ Age Oldies Other Pop R&B Rap Reggae Rock Techno Industrial Alternative Ska Death\ Metal Pranks Soundtrack Euro-Techno Ambient Trip-Hop Vocal Jazz+Funk Fusion Trance Classical Instrumental Acid House Game Sound\ Clip Gospel Noise AlternRock Bass Soul Punk Space Meditative Instrumental \ Pop Instrumental\ Rock Ethnic Gothic Darkwave Techno- Industrial Electronic Pop-Folk Eurodance Dream Southern\ Rock Comedy Cult Gangsta Top\ 40 Christian\ Rap Pop/Funk Jungle Native\ American Cabaret New\ Wave Psychadelic Rave Showtunes Trailer Lo- Fi Tribal Acid\ Punk Acid\ Jazz Polka Retro Musical Rock\ &\ Roll Hard\ Rock Folk Folk-Rock National\ Folk Swing Fast\ Fusion Bebob Latin Revival Celtic Bluegrass Avantgarde Gothic\ Rock Progressive\ Rock Psychedelic\ Rock Symphonic\ Rock Slow\ Rock Big\ Band Chorus Easy\ Listening Acoustic Humour Speech Chanson Opera Chamber\ Music Sonata Symphony Booty\ Bass Primus Porn\ Groove Satire Slow\ Jam Club Tango Samba Folklore Ballad Power\ Ballad Rhythmic \ Soul Freestyle Duet Punk\ Rock Drum\ Solo A\ capella Euro-House Dance\ Hall ] abort "Usage: #{File.basename($PROGRAM_NAME)} MP3_FILE" unless ARGV.size == 1 tag, song, artist, album, year, comment, genre = ARGF.read[-128..-1].unpack("A3A30A30A30A4A30C") if comment.size == 30 and comment[28] == ?\0 track = comment[29] comment = comment[0..27].strip else track = nil end abort "ID3v1 tag not found." unless tag == "TAG" puts "Song: #{song}" puts "Artist: #{artist}" puts "Album: #{album}" puts "Comment: #{comment}" unless comment.empty? puts "Track: #{track}" unless track.nil? puts "Year: #{year}" puts "Genre: #{GENRES[genre] || 'Unknown'}" __END__ James Edward Gray II