Biblioteka e redaktimit të etiketave Python,mutagen
Mutagjeni i bibliotekës Python mund të përdoret për të redaktuar etiketat (metadata) të skedarëve multimedialë si 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.
Mund ta instaloni me pip.
$ pip install mutagen
Këtu është një shembull i redaktimit të një etikete ID3.
Për më shumë informacion rreth ID3, shihni lidhjen e mëposhtme. Standardi u krijua fillimisht për mp3, por tani zbatohet edhe për mp4 (m4a) dhe skedarë të tjerë jo-mp3.
mutagen.easyid3
Nëse thjesht dëshironi të lexoni ose shkruani emrat e artistëve, emrat e albumeve, numrat e këngëve, etj., është e lehtë të përdorni modulin EasyID3.
from mutagen.easyid3 import EasyID3
Për të shkruar një titull kënge, bëni sa më poshtë
path = 'example.mp3'
tags = EasyID3(path)
tags['title'] = 'new_title'
tags.save()
Vetëm një numër i kufizuar etiketash mund të modifikohen për të arritur një ndërfaqe të thjeshtë, por është e mjaftueshme për përdorim bazë. Etiketat që mund të modifikohen mund të shihen më poshtë.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
Është e dobishme të përcaktohet një funksion.
Etiketat janë shkruar si më poshtë. Numri i përgjithshëm i këngëve (numri i këngëve) përfaqësohet nga emëruesi i ‘tracknumber’. E njëjta gjë vlen edhe për numrin e disqeve.
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()
Leximi (shfaqja) e etiketës është si më poshtë.
def show_id3_tags(file_path):
tags = EasyID3(file_path)
print(tags.pprint())
Etiketat hiqen si më poshtë.
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()
Përdorni si më poshtë.
set_id3_tag(path, albumartist='new_artist')
delete_id3_tag(path, 'discnumber')
show_id3_tags(path)
mutagen.id3
Për të modifikuar drejtpërdrejt etiketat ID3, përdorni modulin 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()
Për të shkruar, specifikoni ID-në e etiketës siç tregohet më poshtë.
- titujt e këngëve(
TIT2
) - Emri i albumit(
TALB
)
ID-të e etiketave janë të përmbledhura në dokumentacionin zyrtar në linkun e mëposhtëm, por është e vështirë të kuptohet se çfarë lloj informacioni përfaqësojnë.
Mund të jetë më e lehtë të përdoret metoda pprint() për të shfaqur etiketat ID3 të një skedari ekzistues për të kontrolluar për korrespondencë.