Pergunta

Estamos gerando arquivos MP3 em vez de Python e precisamos editar os cabeçalhos ID3 na memória usando um objeto semelhante a um arquivo.

Todas as bibliotecas ID3 em Pypi aparecer para exigir que você passe um caminho de sistema de arquivos como uma string. Acho isso bastante frustrante!

Escrever nosso MP3 gerado para disco (ou ramdisk) apenas para adicionar tags ID3 é inaceitável por vários motivos, especialmente o desempenho.

Dada a abundância das bibliotecas ID3, existe uma biblioteca ID3 que simplesmente funciona com objetos semelhantes a arquivos?

Foi útil?

Solução 3

Bem, a resposta parece ser que esse animal não existe. As vantagens da programação para uma interface são aparentemente perdidas nos hackers de moldura do Python MP3. Resolvamos o problema modificando uma biblioteca existente.

Outras dicas

Para aqueles que encontram essa resposta em um futuro distante, mutagênico, funcionou perfeitamente para mim e para o construtor para um de seus objetos de mp3 qualquer um caminho de arquivo ou um objeto semelhante a um arquivo (os documentos chamam de 'filtro').

A partir de https://mutagen.readthedocs.io/en/latest/user/filelike.html:

O primeiro argumento passado para um FileType ou metadata pode ser um nome de arquivo ou um objeto semelhante a um arquivo, como Stringio (Bytesio no Python 3) e mutagênico descobrirão o que fazer.

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

As tags da AFAIR são anexadas ao final do arquivo. Você pode querer estudar o formato e fazer uma biblioteca simples, isso não deve ser muito difícil.

Além disso, você pode considerá -los temporários em um sistema de arquivos como o TMPFS (RamDisk).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top