目前我正在一个音乐项目,处理用户的mp3上传。问题是,我找不到一个id3库,将正常工作的所有文件。我已经尝试了 id3-rubyMp3Info 库,但是没有人给我的一贯正确的结果。例如,最常见的问题:

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

我决定添加一个形式,其用户可以提供任选的信息,如艺术家和标题;帮了一点,但没有完全解决的问题。

什么最有用的和强大的ID3库的红宝石?

有帮助吗?

解决方案

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

我用这个项目,它的工作得相当好。包装标签库,这是非常便于携带。

其他提示

我用这个:

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

gem install ruby-mp3info (加法规 sudo 对Mac或*nix)

还有一些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}"
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top