Biblioteca de edición de etiquetas Python,mutagen
A biblioteca Python mutagen pódese usar para editar as etiquetas (metadatos) de ficheiros multimedia como mp3.
Mutagen is a Python module to handle audio metadata. It supports ASF, FLAC, MP4, Monkey’s Audio, MP3, Musepack, Ogg Opus, Ogg FLAC, Ogg Speex, Ogg Theora, Ogg Vorbis, True Audio, WavPack, OptimFROG, and AIFF audio files.
Podes instalalo con pip.
$ pip install mutagen
Aquí tes un exemplo de edición dunha etiqueta ID3.
Para obter máis información sobre ID3, consulte a seguinte ligazón. O estándar creouse orixinalmente para mp3, pero agora tamén se aplica a mp4 (m4a) e outros ficheiros non mp3.
mutagen.easyid3
Se só queres ler ou escribir nomes de artistas, nomes de álbums, números de pistas, etc., é sinxelo usar o módulo EasyID3.
from mutagen.easyid3 import EasyID3
Para escribir o título dunha canción, fai o seguinte
path = 'example.mp3'
tags = EasyID3(path)
tags['title'] = 'new_title'
tags.save()
Só se pode editar un número limitado de etiquetas para conseguir unha interface sinxela, pero é suficiente para un uso básico. As etiquetas que se poden editar pódense ver a continuación.EasyID3.valid_keys.keys()
for key in EasyID3.valid_keys.keys():
print(key)
# album
# bpm
# compilation
# composer
# copyright
# encodedby
# lyricist
# length
# media
# mood
# title
# version
# artist
# albumartist
# conductor
# arranger
# discnumber
# organization
# tracknumber
# author
# albumartistsort
# albumsort
# composersort
# artistsort
# titlesort
# isrc
# discsubtitle
# language
# genre
# date
# originaldate
# performer:*
# musicbrainz_trackid
# website
# replaygain_*_gain
# replaygain_*_peak
# musicbrainz_artistid
# musicbrainz_albumid
# musicbrainz_albumartistid
# musicbrainz_trmid
# musicip_puid
# musicip_fingerprint
# musicbrainz_albumstatus
# musicbrainz_albumtype
# releasecountry
# musicbrainz_discid
# asin
# performer
# barcode
# catalognumber
# musicbrainz_releasetrackid
# musicbrainz_releasegroupid
# musicbrainz_workid
# acoustid_fingerprint
# acoustid_id
É útil definir unha función.
As etiquetas están escritas do seguinte xeito. O número total de cancións (número de cancións) está representado polo denominador de ‘número de pista’. O mesmo ocorre co número de discos.
def set_id3_tag(file_path, title=None, artist=None, albumartist=None, album=None, genre=None,
track_num=None, total_track_num=None, disc_num=None, total_disc_num=None):
tags = EasyID3(file_path)
if title:
tags['title'] = title
if artist:
tags['artist'] = artist
if albumartist:
tags['albumartist'] = albumartist
if album:
tags['album'] = album
if genre:
tags['genre'] = genre
if total_track_num:
if track_num:
tags['tracknumber'] = '{}/{}'.format(track_num, total_track_num)
else:
tags['tracknumber'] = '/{}'.format(total_track_num)
else:
if track_num:
tags['tracknumber'] = '{}'.format(track_num)
if total_disc_num:
if disc_num:
tags['discnumber'] = '{}/{}'.format(disc_num, total_disc_num)
else:
tags['discnumber'] = '/{}'.format(total_disc_num)
else:
if track_num:
tags['discnumber'] = '{}'.format(disc_num)
tags.save()
A lectura da etiqueta (visualización) é a seguinte.
def show_id3_tags(file_path):
tags = EasyID3(file_path)
print(tags.pprint())
As etiquetas elimínanse do seguinte xeito.
def delete_id3_tag(file_path, target_tag):
tags = EasyID3(file_path)
tags.pop(target_tag, None)
tags.save()
def delete_all_id3_tag(file_path):
tags = EasyID3(file_path)
tags.delete()
tags.save()
Use o seguinte.
set_id3_tag(path, albumartist='new_artist')
delete_id3_tag(path, 'discnumber')
show_id3_tags(path)
mutagen.id3
Para editar as etiquetas ID3 directamente, use o módulo ID3.
from mutagen.id3 import ID3, TIT2
path = 'example.mp3'
tags = ID3(path)
print(tags.pprint())
tags.add(TIT2(encoding=3, text="new_title"))
tags.save()
Para escribir, especifique o ID da etiqueta como se mostra a continuación.
- títulos de cancións(
TIT2
) - Nome do álbum(
TALB
)
Os ID de etiquetas resúmense na documentación oficial da seguinte ligazón, pero é difícil entender que tipo de información representan.
Pode ser máis doado usar o método pprint() para mostrar as etiquetas ID3 dun ficheiro existente para comprobar a correspondencia.