https://github.com/robinst/id3lib-ruby
Ruby interface to the id3lib C++ library for easily editing ID3 tags of MP3 audio files
https://github.com/robinst/id3lib-ruby
Last synced: 7 months ago
JSON representation
Ruby interface to the id3lib C++ library for easily editing ID3 tags of MP3 audio files
- Host: GitHub
- URL: https://github.com/robinst/id3lib-ruby
- Owner: robinst
- Created: 2008-12-14T19:39:33.000Z (about 17 years ago)
- Default Branch: master
- Last Pushed: 2012-03-22T20:49:24.000Z (almost 14 years ago)
- Last Synced: 2024-10-12T22:31:49.099Z (over 1 year ago)
- Language: C++
- Homepage: http://id3lib-ruby.rubyforge.org/
- Size: 806 KB
- Stars: 41
- Watchers: 4
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.rdoc
- Changelog: CHANGES
Awesome Lists containing this project
README
= id3lib-ruby
Please note: Unfortunately, id3lib is no longer maintained and
outdated (no support for ID3v2.4). Therefore id3lib-ruby is no longer
actively developed. Have a look at taglib-ruby for a possible
alternative (also from yours truly):
http://robinst.github.com/taglib-ruby/
id3lib-ruby provides a Ruby interface to the id3lib C++ library for easily
editing ID3 tags (v1 and v2) of MP3 audio files.
The class documentation starts at ID3Lib::Tag.
== Features
* Read and write ID3v1 and ID3v2 tags
* Simple interface for adding, changing and removing frames
* Quick access to common text frames like title and performer
* Custom data frames like attached picture (APIC)
* Pretty complete coverage of id3lib's features
* UTF-16 support (warning: id3lib writes broken UTF-16 frames)
* Windows binary gem available
The CHANGES file contains a list of changes between versions.
== Installation
See INSTALL.
== Online Information
The home of id3lib-ruby is http://id3lib-ruby.rubyforge.org
== Usage
require 'rubygems'
require 'id3lib'
# Load a tag from a file
tag = ID3Lib::Tag.new('talk.mp3')
# Get and set text frames with convenience methods
tag.title #=> "Talk"
tag.album = 'X&Y'
tag.track = '5/13'
# Tag is a subclass of Array and each frame is a Hash
tag[0]
#=> { :id => :TPE1, :textenc => 0, :text => "Coldplay" }
# Get the number of frames
tag.length #=> 7
# Remove all comment frames
tag.delete_if{ |frame| frame[:id] == :COMM }
# Get info about APIC frame to see which fields are allowed
ID3Lib::Info.frame(:APIC)
#=> [ 2, :APIC, "Attached picture",
#=> [:textenc, :mimetype, :picturetype, :description, :data] ]
# Add an attached picture frame
cover = {
:id => :APIC,
:mimetype => 'image/jpeg',
:picturetype => 3,
:description => 'A pretty picture',
:textenc => 0,
:data => File.read('cover.jpg')
}
tag << cover
# Last but not least, apply changes
tag.update!
== Licence
This library has Ruby's licence:
http://www.ruby-lang.org/en/LICENSE.txt
== Author
Robin Stocker