9

目前我正在做一个音乐项目,处理用户 mp3 上传。问题是我找不到对所有文件都能正常工作的 id3 库。我已经尝试过id3-rubyMp3Infolibs,但它们都没有给我始终如一的正确结果。例如,最常见的问题:

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

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

ruby 最有用和最强大的 ID3 库是什么?

4

5 回答 5

6

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

我将它用于一个项目,并且效果很好。taglib 的包装器,非常便携。

于 2009-06-09T21:18:04.613 回答
4

我用过这个:

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]}" }
于 2009-06-10T09:32:36.547 回答
1

截至 2019 年,最佳答案是:

所有其他库早已无人维护。

Krists Ozols 的 ID3Tag 显着特征

  • 只读
  • 可以读取 v1.x、v2.2.x、v2.3.x、v2.4.x 标签
  • 支持 UTF-8、UTF-16、UTF-16BE 和 ISO8859-1 编码
  • 最后更新于 2018 年 7 月
  • 纯红宝石

Moumar 的 ruby​​-mp3info 区别特征

  • 读和写
  • 写 id3v2 标签只支持 2.3 版本
  • id3v2 标签始终以 UTF-16 编码编写
  • 最后更新于 2017 年 4 月
  • 纯红宝石

taglib-ruby 的区别特征

  • 读和写
  • 多种格式,不仅仅是 Mp3
  • 读/写 ID3v1 和 ID3v2,包括 ID3v2.4 和 Unicode
  • 最后更新于 2018 年 5 月
  • 绑定一个维护良好的 C++ 库
于 2019-10-19T12:05:59.097 回答
0

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

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

于 2009-06-09T23:17:33.980 回答
0

id3tag是另一种选择。例子:

require "id3tag"

mp3_file = File.open('/path/to/your/favorite_song.mp3', "rb")
tag = ID3Tag.read(mp3_file)
puts "#{tag.artist} - #{tag.title}"
于 2018-07-07T04:47:11.007 回答