https://github.com/rubyonworld/mp4info
MP4Info supports the reading of tags and file info from MP4 audio files.
https://github.com/rubyonworld/mp4info
audio file info mp4 reading ruby tag
Last synced: 5 months ago
JSON representation
MP4Info supports the reading of tags and file info from MP4 audio files.
- Host: GitHub
- URL: https://github.com/rubyonworld/mp4info
- Owner: RubyOnWorld
- Created: 2022-09-27T15:41:02.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2022-09-28T00:53:32.000Z (over 3 years ago)
- Last Synced: 2025-07-04T06:06:19.463Z (6 months ago)
- Topics: audio, file, info, mp4, reading, ruby, tag
- Language: Ruby
- Homepage:
- Size: 117 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.rdoc
Awesome Lists containing this project
README
= My Changes
This gem isn't originally mine, but i've added things etc...
= Bundler
The gem can now be used with bundler and by extension, Rails 3, just use...
gem "mp4info", :git => "git://github.com/arbarlow/ruby-mp4info.git", :require => "mp4info"
= Introduction
MP4Info supports the reading of tags and file info from MP4 audio files.
It is based on the Perl module MP4::Info (http://search.cpan.org/~jhar/MP4-Info/)
Note: MP4Info does not currently support Unicode strings.
= License
This program is free software; you can redistribute it and/or modify
it under the terms of version 2 of the GNU General Public License as
published by the Free Software Foundation.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
= Usage
With mp4info.rb in your load path, do:
require 'mp4info'
Once the library is loaded, an MP4Info object is created by sending an IO
object to MP4Info#new. MP4Info also provides the MP4Info#open method, which
takes String containing a filename.
file = "my_favorite_song.mp4"
info = MP4Info.open(file)
io_stream = File.new("that_other_song.m4a")
other_info = MP4Info.new(io_stream)
Once an MP4Info object is succesfully created, a number of tags are
avalible:
* ALB - Album
* APID - Apple Store ID
* ART - Artist
* CMT - Comment
* COVR - Album art (typically jpeg data)
* CPIL - Compilation (boolean)
* CPRT - Copyright statement
* DAY - Year
* DISK - Disk number & total (Array of two integers)
* GNRE - Genre
* GRP - Grouping
* NAM - Title
* RTNG - Rating (integer)
* TMPO - Tempo (integer)
* TOO - Encoder
* TRKN - Track number & total (Array of two integers)
* WRT - Author or composer
The following extra information about the audio file is also provided:
* VERSION - MPEG version (=4)
* LAYER - Doesn't really mean antyhing, but here in case we need it
for compatibility with an MP3 library...
* BITRATE - Bitrate in kbps (average for VBR files)
The formula used to generate this seems a little suspect.
* FREQUENCY - Frequency in kHz
* SIZE - Bytes in audio stream
* SECS - Total seconds, rounded to nearest second
* MM - Minutes
* SS - Leftover seconds
* MS - Leftover milliseconds, rounded to nearest millisecond
* TIME - Time in MM:SS, rounded to nearest second
* COPYRIGHT - Non-nil if audio is copyrighted
* ENCRYPTED - Non-nil if audio data is encrypted