目前我正在開發一個音樂項目,處理用戶的mp3上傳。問題是我無法找到一個能夠正確工作所有文件的id3庫。 我試過id3-ruby
和Mp3Info
庫,但它們都沒有給我始終如一的正確結果。 例如,最常見的問題:Ruby mp3 Id3解析
- 錯流參數(比特率和採樣率,有時持續時間)
- 不支持擴展標籤
我決定增加一個形式,其中用戶可以提供可選信息,如藝術家和標題;這有所幫助,但並未完全解決問題。
什麼是最實用和最強大的紅寶石ID3庫?
目前我正在開發一個音樂項目,處理用戶的mp3上傳。問題是我無法找到一個能夠正確工作所有文件的id3庫。 我試過id3-ruby
和Mp3Info
庫,但它們都沒有給我始終如一的正確結果。 例如,最常見的問題:Ruby mp3 Id3解析
我決定增加一個形式,其中用戶可以提供可選信息,如藝術家和標題;這有所幫助,但並未完全解決問題。
什麼是最實用和最強大的紅寶石ID3庫?
http://www.hakubi.us/ruby-taglib/
我用這一個項目,它工作得很好。在taglib周圍包裝,非常便攜。
謝謝,我會試試看。它有什麼問題嗎? – 2009-06-09 21:23:42
我用它來對付我的整個MP3庫,並沒有任何問題。儘管我沒有做過比特率/採樣率的任何事情,所以我不能說那個。 – 2009-06-09 22:01:34
http://id3lib-ruby.rubyforge.org/
我特別喜歡這一個,你也可以寫標籤文件。
是的,但有時這個lib不能正常工作,所以我決定改用更好的東西 – 2009-06-10 00:23:04
我用這個:
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]}" }
你能發佈一個需要支持的標籤列表嗎?謝謝。 – Tilo 2011-10-19 05:40:43