Ruby mp3 Id3解析

目前我正在从事音乐项目,处理用户mp3上传。 问题是我找不到一个能够正常运行所有文件的id3库。 我尝试过id3-rubyMp3Info库,但没有一个能给我一致的正确结果。 例如,最常见的问题:

  • 错误的流参数(比特率和采样率,有时持续时间)
  • 不支持扩展标签

我决定添加一个表单,用户可以提供艺术家和标题等可选信息; 这有点帮助,但没有完全解决问题。

什么是ruby最实用,最强大的ID3库?

http://www.hakubi.us/ruby-taglib/

我用它来做项目,效果很好。 taglib周围的包装,非常便携。

我用过这个:

http://ruby-mp3info.rubyforge.org/

要么

gem install ruby-mp3info (为Mac或* nix添加规则sudo

有一些rdoc文档,这很好。 在缺点方面,我不太喜欢使用大写字段名称,这似乎太关注保留规范中的名称。 也许我应该破解一些别名。 无论如何,这个示例脚本扫描我的音乐库并计算标题中的单词:

 require 'mp3info' count = 0 words = Hash.new { |h, k| h[k] = 0 } Dir.glob("E:/MUSIC/**/*.mp3") do |f| count += 1 Mp3Info.open(f) do |mp3info| title = mp3info.tag2.TIT2 next unless title title.split(/\s/).each { |w| words[w.downcase] += 1 } end end puts "Examined #{count} files" words.to_a.sort{ |a, b| b[1] <=> a[1] }[0,100].each { |w| puts "#{w[0]}: #{w[1]}" } 

http://id3lib-ruby.rubyforge.org/

我特别喜欢这个,你也可以在文件中写标签。

id3tag是另一种选择。 例:

 require "id3tag" mp3_file = File.open('/path/to/your/favorite_song.mp3', "rb") tag = ID3Tag.read(mp3_file) puts "#{tag.artist} - #{tag.title}" 
Interesting Posts