Редактирование метаданных MP3 в файлоподобном объекте в Python?

StackOverflow https://stackoverflow.com/questions/1534374

  •  20-09-2019
  •  | 
  •  

Вопрос

Мы генерируем MP3-файлы "на лету" на Python, и нам нужно отредактировать заголовки ID3 в памяти, используя файлоподобный объект.

Все библиотеки ID3 на PyPI появиться требовать от вас передачи пути к файловой системе в виде строки.Я нахожу это довольно неприятным!

Запись нашего сгенерированного MP3 на диск (или ramdisk) только для добавления тегов ID3 неприемлема по ряду причин, особенно по производительности.

Учитывая множество библиотек ID3, существует ли библиотека ID3, которая просто работает с файлоподобными объектами?

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

Решение 3

Что ж, ответ, по-видимому, заключается в том, что такого животного не существует.Преимущества программирования интерфейса, по-видимому, теряются хакерами python MP3 frame.Мы решили проблему, изменив существующую библиотеку.

Другие советы

Для тех, кто найдет этот ответ в далеком будущем, мутаген, отлично сработал для меня , и конструктор для одного из его MP3-объектов принимает либо путь к файлу или файлоподобный объект (документы называют его "filething").

От https://mutagen.readthedocs.io/en/latest/user/filelike.html:

Первым аргументом, передаваемым типу файла или метаданным, может быть либо имя файла, либо файлоподобный объект, такой как StringIO (BytesIO в Python 3), и mutagen выяснит, что делать.

MP3("myfile.mp3")
MP3(myfileobj)

Помогает ли StringIO? http://docs.python.org/library/stringio.html

Теги AFAIR добавляются в конец файла.Возможно, вы захотите изучить формат и самостоятельно создать простую библиотеку, это не должно быть очень сложно.

Кроме того, вы могли бы рассмотреть возможность временного хранения их в файловой системе, такой как tmpfs (ramdisk).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top