Frage

Zur Zeit arbeite ich an einem Musikprojekt, den Umgang mit Benutzer mp3-Uploads. Das Problem ist, dass ich nicht eine ıd3 Bibliothek finden, die richtig für alle Dateien arbeiten. Ich habe versucht, id3-ruby und Mp3Info Libs aber keiner von ihnen gibt mir konsequent korrekte Ergebnisse. Zum Beispiel am häufigsten auftretenden Problemen:

  • falsche Stream-Parameter (Bitrate und Abtastrate, manchmal Dauer)
  • unterstützt keine erweiterten Tags

Ich beschloss, eine Form hinzuzufügen, wo die Nutzer optionale Informationen wie Interpret und Titel liefern können; das half ein wenig, aber nicht das Problem vollständig zu lösen.

Was ist die nutzbare und leistungsstarke ID3-Bibliothek für Ruby?

War es hilfreich?

Lösung

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

Ich habe diese für ein Projekt und es funktionierte ganz gut. Wrapper um taglib, was sehr tragbar ist.

Andere Tipps

Ich habe verwendet, um diese:

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

oder

gem install ruby-mp3info (fügen Sie die Regelung sudo für Mac oder * nix)

Es gibt einige rdoc Dokumentation, das ist schön. Auf der anderen Seite muß ich wie die Verwendung von Großbuchstaben Feldnamen nicht viel, die die Namen von der Spezifikation zu erhalten allzu besorgt zu sein scheint. Vielleicht sollte ich in einigen Aliase hacken. Wie auch immer, dieser Beispielskript scannt meiner Musikbibliothek und zählt Worte in Titeln:

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/

Ich mochte besonders diese, auch Tags in die Datei schreiben können.

id3tag ist eine weitere Option. Beispiel:

require "id3tag"

mp3_file = File.open('/path/to/your/favorite_song.mp3', "rb")
tag = ID3Tag.read(mp3_file)
puts "#{tag.artist} - #{tag.title}"
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top