Como recuperar metadados mp3 em Python?
122
Eu usei o eyeD3 outro dia com muito sucesso. Descobri que ele poderia adicionar arte-final à tag ID3 que os outros módulos que eu observei não conseguiam. Você terá que instalar usando pip ou baixar o tar e executar a python setup.py install
partir da pasta de origem.
Exemplos relevantes do site estão abaixo.
Lendo o conteúdo de um arquivo mp3 contendo as informações da tag v1 ou v2:
import eyeD3
tag = eyeD3.Tag()
tag.link("/some/file.mp3")
print tag.getArtist()
print tag.getAlbum()
print tag.getTitle()
Leia um arquivo mp3 (comprimento da faixa, taxa de bits, etc.) e acesse a tag:
if eyeD3.isMp3File(f):
audioFile = eyeD3.Mp3AudioFile(f)
tag = audioFile.getTag()
Versões de tags específicas podem ser selecionadas:
tag.link("/some/file.mp3", eyeD3.ID3_V2)
tag.link("/some/file.mp3", eyeD3.ID3_V1)
tag.link("/some/file.mp3", eyeD3.ID3_ANY_VERSION) # The default.
Ou você pode iterar sobre os quadros brutos:
tag = eyeD3.Tag()
tag.link("/some/file.mp3")
for frame in tag.frames:
print frame
Depois que uma tag é vinculada a um arquivo, ela pode ser modificada e salva:
tag.setArtist(u"Cro-Mags")
tag.setAlbum(u"Age of Quarrel")
tag.update()
Se a tag vinculada foi v2 e você deseja salvá-la como v1:
tag.update(eyeD3.ID3_V1_1)
Leia uma tag e remova-a do arquivo:
tag.link("/some/file.mp3")
tag.remove()
tag.update()
Adicione uma nova tag:
tag = eyeD3.Tag()
tag.link('/some/file.mp3') # no tag in this file, link returned False
tag.header.setVersion(eyeD3.ID3_V2_3)
tag.setArtist('Fugazi')
tag.update()
import eyed3
(d minúsculo).Eu usei o mutagen para editar tags em arquivos de mídia antes. O bom do mutagen é que ele pode lidar com outros formatos, como mp4, FLAC etc. Escrevi vários scripts com muito sucesso usando esta API.
fonte
TIT2
para mp3,title
para ogg,\xa9nam
para mp4,Title
para WMA etc. - isso é péssimo.Um problema
eyed3
é que ele será lançadoNotImplementedError("Unable to write ID3 v2.2")
para arquivos MP3 comuns.Na minha experiência, a
mutagen
turmaEasyID3
funciona de maneira mais confiável. Exemplo:Todas as outras tags podem ser acessadas dessa maneira e salvas, o que servirá a muitos propósitos. Mais informações podem ser encontradas no Tutorial da Mutagen .
fonte
O que você procura é o módulo ID3 . É muito simples e fornecerá exatamente o que você precisa. Basta copiar o arquivo ID3.py no diretório de pacotes do site e você poderá fazer algo como o seguinte:
fonte
verifique este:
https://github.com/Ciantic/songdetails
Exemplo de uso:
Salvando alterações:
fonte
Apenas informações adicionais para vocês:
dê uma olhada na seção "Editores de material de MP3 e metadados" na página do PythonInMusic .
fonte
Um exemplo simples do livro Dive Into Python funciona bem para mim, este é o link para download, o exemplo é fileinfo.py. Não sei se é o melhor, mas ele pode fazer o trabalho básico.
O livro inteiro está disponível online aqui .
fonte
Procurei as respostas acima e descobri que elas não são boas para o meu projeto devido a problemas de licenciamento com a GPL.
E descobri o seguinte: PyID3Lib , enquanto essa data específica de lançamento da ligação em python é antiga, ela usa o ID3Lib , que está atualizado.
Notável mencionar é que ambos são LGPL e estão prontos para serem usados .
fonte
O método mais fácil são os detalhes das músicas .
para ler dados
da mesma forma para editar
Não se esqueça de adicionar u antes do nome até conhecer o idioma chinês.
você pode ler e editar em massa usando o módulo python glob
ex.
fonte
Depois de tentar a
pip install
rota simples para os módulos eyeD3, pytaglib e ID3 recomendados aqui, descobri que a quarta opção era a única a funcionar. O restante apresentava erros de importação com dependências ausentes no C ++ ou algo mágico ou alguma outra biblioteca que estava faltandopip
. Então vá com este aqui para leitura básica de tags ID3 (todas as versões):https://pypi.python.org/pypi/tinytag/0.18.0
Lista de possíveis atributos que você pode obter com TinyTag:
Era pequeno e independente, como anunciado.
fonte
A primeira resposta que usa eyed3 está desatualizada, portanto, aqui está uma versão atualizada.
Lendo tags de um arquivo mp3:
Um exemplo do site para modificar tags:
Um problema que encontrei ao tentar usar o eyed3 pela primeira vez tinha a ver com um erro de importação do libmagic, mesmo que estivesse instalado. Para corrigir isso, instale o compartimento mágico whl a partir daqui
fonte
Eu sugeriria mp3-tagger . O melhor de tudo é que ele é distribuído sob a licença MIT e suporta todos os atributos necessários.
Exemplo:
Ele suporta definir, obter, atualizar e excluir atributos de arquivos mp3.
fonte
Pode depender exatamente do que você deseja fazer, além de ler os metadados. Se você precisa apenas da taxa de bits / nome, etc., e nada mais, algo leve é provavelmente o melhor.
Se você está manipulando o passado do mp3, o PyMedia pode ser adequado.
Existem muitos, o que você obtém, certifique-se e teste-o em várias mídias de amostra. Existem algumas versões diferentes de tags ID3 em particular, portanto, verifique se não está muito desatualizado.
Pessoalmente, usei essa pequena classe MP3Info com sorte. É bastante antigo.
http://www.omniscia.org/~vivake/python/MP3Info.py
fonte
Após uma pesquisa inicial, pensei que os detalhes da música poderiam se encaixar no meu caso de uso, mas não lida com arquivos .m4b. Mutagen faz. Observe que, embora alguns tenham (razoavelmente) contestado o surgimento de chaves nativas de formato da Mutagen, que variam de formato para formato (TIT2 para mp3, título para ogg, \ xa9nam para mp4, título para WMA etc.), mutagen.File ( ) possui um parâmetro (novo?) easy = True que fornece tags EasyMP3 / EasyID3, que possuem um conjunto de chaves consistente, embora limitado,. Até agora, eu só fiz testes limitados, mas as chaves comuns, como álbum, artista, albumartist, gênero, número da faixa, número da discagem etc. estão presentes e são idênticas para os arquivos .mb4 e .mp3 ao usar easy = True, tornando-o muito conveniente para os meus propósitos.
fonte
usando https://github.com/nicfit/eyeD3
fonte
Eu usei tinytag 1.3.1 porque
fonte