Knjižnica za urejanje oznak Python, mutagen
Knjižnico Python mutagen lahko uporabite za urejanje oznak (metapodatkov) večpredstavnostnih datotek, kot je 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.
Namestite ga lahko s pipom.
$ pip install mutagen
Tukaj je primer urejanja oznake ID3.
Več informacij o ID3 najdete na naslednji povezavi. Standard je bil prvotno ustvarjen za mp3, zdaj pa se uporablja tudi za mp4 (m4a) in druge datoteke, ki niso mp3.
mutagen.easyid3
Če želite le prebrati ali zapisati imena izvajalcev, imena albumov, številke skladb itd., lahko preprosto uporabite modul EasyID3.
from mutagen.easyid3 import EasyID3
Če želite napisati naslov pesmi, naredite naslednje.
path = 'example.mp3'
tags = EasyID3(path)
tags['title'] = 'new_title'
tags.save()
Zaradi preprostega vmesnika je mogoče urejati le omejeno število oznak, vendar to zadostuje za osnovno uporabo. Oznake, ki jih je mogoče urejati, so prikazane spodaj.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
Koristno je opredeliti funkcijo.
Oznake so zapisane na naslednji način. Skupno število skladb (število skladb) predstavlja imenovalec “tracknumber”. Enako velja za število plošč.
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()
Odčitavanje oznake (prikaz) je naslednje.
def show_id3_tags(file_path):
tags = EasyID3(file_path)
print(tags.pprint())
Oznake so odstranjene na naslednji način.
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()
Uporabljajte na naslednji način.
set_id3_tag(path, albumartist='new_artist')
delete_id3_tag(path, 'discnumber')
show_id3_tags(path)
mutagen.id3
Za neposredno urejanje oznak ID3 uporabite modul 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()
Če želite pisati, določite ID oznake, kot je prikazano spodaj.
- naslovi pesmi (
TIT2
) - Ime albuma (
TALB
)
Identifikatorji oznak so povzeti v uradni dokumentaciji na naslednji povezavi, vendar je težko razumeti, kakšne informacije predstavljajo.
Morda bo lažje uporabiti metodo pprint() za prikaz oznak ID3 obstoječe datoteke in preveriti, ali se ujemajo.