taglib(-ruby) не может читать определенные файлы
Я реализую приложение ruby on rails, которое загружает песни из папки dropbox, а затем выполняет над ними несколько действий, таких как извлечение нескольких метатегов. Сейчас я использую 10 mp3-файлов, которые принадлежат одному и тому же альбому, поэтому они имеют одинаковую кодировку и т. Д. Однако при попытке прочитать метатеги с помощью taglib-ruby 3 из 10 файлов выдают ошибку, говоря:
TagLib: FileRef::tag() - Called without a valid file.
TagLib: FileRef::audioProperties() - Called without a valid file.
Я использовал код, приведенный здесь слева, в качестве руководства, что привело к:
def read_metatags
TagLib::FileRef.open(self.local_path) do |fileref|
unless fileref.null?
logger.info "Reading tags"
tag = fileref.tag
self.title = tag.title
self.artist = tag.artist
properties = fileref.audio_properties
self.length = properties.length
end
end
self.save!
end
Сначала я подумал, что загруженный файл может быть поврежден, но проверка метаданных в nautilus показывает нормальные результаты, и rhythmbox также может их воспроизвести. Я хочу использовать базовый API-интерфейс taglib-ruby вместо конкретного формата, так как мне нужно только получить исполнителя и название, но я должен иметь возможность получать его из файлов различных форматов.
У кого-нибудь есть идеи как это исправить? Может быть, я упускаю что-то супер очевидное, учитывая, что я новичок в этой теме.
редактировать: учитывая комментарий Робинста, это ls -l
список соответствующих файлов:
-rw-rw-r-- 1 user user 3710598 Jun 3 15:56 01 - Paradise.mp3
-rw-rw-r-- 1 user user 3731496 Jun 3 15:56 02 - Weirdo.mp3
-rw-rw-r-- 1 user user 3620319 Jun 3 15:56 03 - As It Is When It Was.mp3
-rw-rw-r-- 1 user user 3645815 Jun 3 15:56 04 - Broken Promise.mp3
-rw-rw-r-- 1 user user 3954295 Jun 3 15:56 05 - Way Of Life.mp3
-rw-rw-r-- 1 user user 4199193 Jun 3 15:57 06 - Bizarre Love Triangle.mp3
-rw-rw-r-- 1 user user 5002092 Jun 3 15:57 07 - All Day Long.mp3
-rw-rw-r-- 1 user user 3595686 Jun 3 15:57 08 - Angel Dust.mp3
-rw-rw-r-- 1 user user 4307888 Jun 3 15:57 09 - Every Little Counts.mp3
-rw-rw-r-- 1 user user 6313648 Jun 3 15:57 10 - State Of The Nation.mp3
1 ответ
Этот вопрос также был задан как вопрос 33 в taglib-ruby и там ответили. Короче файлы оказались битыми.