# MP3 - ID 2 or 3 tags

**URL:** <https://www.ruby-forum.com/t/mp3-id-2-or-3-tags/97350>\
**Category:** Ruby\
**Created:** [July 6, 2006, 3:13pm UTC](https://www.ruby-forum.com/t/mp3-id-2-or-3-tags/97350 "2006-07-06T15:13:18Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![zanoni](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/z/e99b99/32.png) [@zanoni](https://www.ruby-forum.com/u/zanoni)\
**Post date:** [July 6, 2006, 3:13pm UTC](https://www.ruby-forum.com/t/mp3-id-2-or-3-tags/97350/1 "2006-07-06T15:13:18Z")

</div>

Can anyone give me a hint how to pull MP3 ID tags out of the file ?  
I’m guessing, it’s just part of the header information. I’m going to  
dig around [ruby-lang.org](http://ruby-lang.org) but just in case thought to ask here as well.

TIA  
Stuart

---

<div class="post-metadata">

**Author:** ![zanoni](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/z/e99b99/32.png) [@zanoni](https://www.ruby-forum.com/u/zanoni)\
**Post date:** [July 6, 2006, 3:29pm UTC](https://www.ruby-forum.com/t/mp3-id-2-or-3-tags/97350/2 "2006-07-06T15:29:34Z")

</div>

I found the ID3lib on rubyforge which looks pretty good. Could I just  
forgoe the library though and do this through standard FILE class ?

Stuart

---

<div class="post-metadata">

**Author:** ![zanoni](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/z/e99b99/32.png) [@zanoni](https://www.ruby-forum.com/u/zanoni)\
**Post date:** [July 6, 2006, 3:29pm UTC](https://www.ruby-forum.com/t/mp3-id-2-or-3-tags/97350/3 "2006-07-06T15:29:48Z")

</div>

> Can anyone give me a hint how to pull MP3 ID tags out of the file ?

Have you tried ruby-mp3info ?

[http://ruby-mp3info.rubyforge.org/](http://ruby-mp3info.rubyforge.org/)

I’ve used it a bit and it worked fine for my needs.

---

<div class="post-metadata">

**Author:** ![zanoni](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/z/e99b99/32.png) [@zanoni](https://www.ruby-forum.com/u/zanoni)\
**Post date:** [July 6, 2006, 3:33pm UTC](https://www.ruby-forum.com/t/mp3-id-2-or-3-tags/97350/4 "2006-07-06T15:33:17Z")

</div>

Dark A. wrote:

> > TIA  
> > Stuart

Funny advice on a Ruby list, I know, but Practical Common Lisp has  
exactly this as an example 🙂

[http://www.gigamonkeys.com/book/practical-an-id3-parser.html](http://www.gigamonkeys.com/book/practical-an-id3-parser.html)

---

<div class="post-metadata">

**Author:** ![zanoni](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/z/e99b99/32.png) [@zanoni](https://www.ruby-forum.com/u/zanoni)\
**Post date:** [July 6, 2006, 4:35pm UTC](https://www.ruby-forum.com/t/mp3-id-2-or-3-tags/97350/5 "2006-07-06T16:35:23Z")

</div>

Interesting , this little exercise could turn into something way bigger.

Stuart

---

<div class="post-metadata">

**Author:** ![zanoni](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/z/e99b99/32.png) [@zanoni](https://www.ruby-forum.com/u/zanoni)\
**Post date:** [July 6, 2006, 4:30pm UTC](https://www.ruby-forum.com/t/mp3-id-2-or-3-tags/97350/6 "2006-07-06T16:30:43Z")

</div>

Alex Y. wrote:

> > >
> 
> Funny advice on a Ruby list, I know, but Practical Common Lisp has  
> exactly this as an example 🙂
> 
> [Practical: An ID3 Parser](http://www.gigamonkeys.com/book/practical-an-id3-parser.html)

It’s a good book, even if all you plan on doing is Ruby code.

–  
James B.

“People want simple stories.”

---

<div class="post-metadata">

**Author:** ![zanoni](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/z/e99b99/32.png) [@zanoni](https://www.ruby-forum.com/u/zanoni)\
**Post date:** [July 6, 2006, 4:38pm UTC](https://www.ruby-forum.com/t/mp3-id-2-or-3-tags/97350/7 "2006-07-06T16:38:39Z")

</div>

Dark A. wrote:

> I found the ID3lib on rubyforge which looks pretty good. Could I just  
> forgoe the library though and do this through standard FILE class ?
> 
> Stuart

Hey,

I wouldn’t recommend doing the parsing yourself, because there are  
various versions of the ID3 standard (ID3v1, ID3v2.2.0, ID3v2.3.0, etc)  
and ID3v2 is not a too simple format. The difficulty of doing it  
yourself depends on what files you have and whether you also want to be  
able to write ID3 data or not.

Rather use a library for the task, here are two you can try:

[http://rubyforge.org/projects/id3lib-ruby/](http://rubyforge.org/projects/id3lib-ruby/)  
[http://rubyforge.org/projects/ruby-mp3info/](http://rubyforge.org/projects/ruby-mp3info/)

id3lib-ruby is based on the id3lib C++ library, so you have an  
additional dependency there. Other than that, I’m its developer and can  
recommend it of course 😉

ruby-mp3info is written in Ruby, so you don’t have any additional  
dependencies. I don’t know very much about its interface or stability,  
but give it a try.

Regards,  
Robin S.

---

<div class="post-metadata">

**Author:** ![zanoni](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/z/e99b99/32.png) [@zanoni](https://www.ruby-forum.com/u/zanoni)\
**Post date:** [July 6, 2006, 4:54pm UTC](https://www.ruby-forum.com/t/mp3-id-2-or-3-tags/97350/8 "2006-07-06T16:54:41Z")

</div>

On 7/6/06, Robin S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> id3lib-ruby is based on the id3lib C++ library, so you have an  
> additional dependency there. Other than that, I’m its developer and can  
> recommend it of course 😉

I found yours first and played around a bit ,seemed to work well.

Stuart

---

<div class="post-metadata">

**Author:** ![zanoni](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/z/e99b99/32.png) [@zanoni](https://www.ruby-forum.com/u/zanoni)\
**Post date:** [July 6, 2006, 4:39pm UTC](https://www.ruby-forum.com/t/mp3-id-2-or-3-tags/97350/9 "2006-07-06T16:39:01Z")

</div>

On Jul 6, 2006, at 9:31 AM, Alex Y. wrote:

> > > well.  
> > > Alex

I was thinking the exact same thing.
