Вопрос

В настоящее время я работаю над музыкальным проектом, занимающимся пользовательскими загрузками mp3.Проблема в том, что я не могу найти библиотеку id3, которая будет корректно работать для всех файлов.Я пытался id3-ruby и Mp3Info библиотеки, но ни одна из них не дает мне неизменно правильных результатов.Например, наиболее распространенные проблемы:

  • неправильные параметры потока (битрейт и частота дискретизации, иногда длительность)
  • не поддерживает расширенные теги

Я решил добавить форму, в которой пользователи могут указывать дополнительную информацию, такую как Исполнитель и название;это немного помогло, но не решило проблему полностью.

Какая самая полезная и мощная библиотека ID3 для ruby?

Это было полезно?

Решение

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

Я использовал это для проекта, и это сработало довольно хорошо.Оболочка вокруг 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