Knjižnica za uređivanje Python oznaka,mutagen
Mutagen biblioteke Python može se koristiti za uređivanje oznaka (metapodataka) multimedijskih datoteka kao što 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.
Možete ga instalirati s pip-om.
$ pip install mutagen
Evo primjera uređivanja ID3 oznake.
Za više informacija o ID3 pogledajte sljedeću poveznicu. Standard je izvorno stvoren za mp3, ali se sada primjenjuje i na mp4 (m4a) i druge datoteke koje nisu mp3.
mutagen.easyid3
Ako samo želite čitati ili pisati imena izvođača, nazive albuma, brojeve pjesama itd., jednostavno je koristiti EasyID3 modul.
from mutagen.easyid3 import EasyID3
Da biste napisali naslov pjesme, učinite sljedeće
path = 'example.mp3'
tags = EasyID3(path)
tags['title'] = 'new_title'
tags.save()
Samo ograničen broj oznaka može se uređivati kako bi se postiglo jednostavno sučelje, ali to je dovoljno za osnovnu upotrebu. Oznake koje je moguće uređivati možete vidjeti u nastavku.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
Korisno je definirati funkciju.
Oznake su napisane na sljedeći način. Ukupan broj pjesama (broj pjesama) predstavljen je nazivnikom ‘tracknumber’. Isto vrijedi i za broj diskova.
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()
Očitavanje oznake (zaslon) je kako slijedi.
def show_id3_tags(file_path):
tags = EasyID3(file_path)
print(tags.pprint())
Oznake se uklanjaju na sljedeći 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()
Koristite na sljedeći način.
set_id3_tag(path, albumartist='new_artist')
delete_id3_tag(path, 'discnumber')
show_id3_tags(path)
mutagen.id3
Za izravno uređivanje ID3 oznaka koristite ID3 modul.
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()
Za pisanje navedite ID oznake kao što je prikazano u nastavku.
- naslovi pjesama(
TIT2
) - Naziv albuma(
TALB
)
ID-ovi oznaka sažeti su u službenoj dokumentaciji na sljedećoj poveznici, no teško je razumjeti kakvu vrstu informacija predstavljaju.
Možda će biti lakše koristiti metodu pprint() za prikaz ID3 oznaka postojeće datoteke radi provjere korespondencije.