Si të përdorni mutagen për të modifikuar mp3 dhe etiketa të tjera ID3 në Python

biznes

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ë.

Copied title and URL