Meriv çawa mutagen bikar tîne da ku mp3 û etîketên ID3 yên din di Python de biguherîne

Dikan

Pirtûkxaneya guherandina tagên Python,mutagen

Mutagena pirtûkxaneya Python dikare ji bo guherandina tagên (metadata) pelên multimedia yên wekî mp3 were bikar anîn.

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.

Hûn dikarin wê bi pip saz bikin.

$ pip install mutagen

Li vir mînakek guherandina tagek ID3 heye.

Ji bo bêtir agahdarî li ser ID3, lînka jêrîn bibînin. Standard di destpêkê de ji bo mp3 hate afirandin, lê naha li ser mp4 (m4a) û pelên din ên ne-mp3 jî tê sepandin.

mutagen.easyid3

Heke hûn tenê dixwazin navên hunermend, navên albûmê, hejmarên şopan, hwd bixwînin an binivîsin, karanîna modula EasyID3 hêsan e.

from mutagen.easyid3 import EasyID3

Ji bo nivîsandina sernavek stranek, jêrîn bikin

path = 'example.mp3'
tags = EasyID3(path)
tags['title'] = 'new_title'
tags.save()

Tenê hejmarek sînorkirî ya nîşanan dikarin werin guheztin da ku meriv pêwendiyek hêsan bi dest bixe, lê ew ji bo karanîna bingehîn bes e. Etîketên ku dikarin werin sererast kirin li jêr têne dîtin.
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

Diyarkirina fonksiyonek kêrhatî ye.

Etîket wiha têne nivîsandin. Tevahiya hejmara stranan (hejmara stranan) bi navdêra ‘hejmara rê’ tê nîşandan. Heman tişt ji bo hejmara dîskan jî rast e.

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()

Xwendina tagê (nîşandan) wiha ye.

def show_id3_tags(file_path):
    tags = EasyID3(file_path)
    print(tags.pprint())

Etîket bi vî rengî têne rakirin.

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()

Wekî jêrîn bikar bînin.

set_id3_tag(path, albumartist='new_artist')
delete_id3_tag(path, 'discnumber')
show_id3_tags(path)

mutagen.id3

Ji bo rasterast tagên ID3 biguherînin, modula ID3 bikar bînin.

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()

Ji bo nivîsandinê, wekî ku li jêr tê xuyang kirin ID-a tagê diyar bikin.

  • sernavên stranan(TIT2)
  • Navê albûmê(TALB)

Nasnameyên etîketan di belgeya fermî ya li ser lînka jêrîn de têne kurt kirin, lê dijwar e ku meriv fêm bike ka ew çi celeb agahdarî temsîl dikin.

Dibe ku hêsantir be ku meriv rêbaza pprint() bikar bîne da ku tagên ID3 ya pelek heyî nîşan bide da ku lihevhatinê kontrol bike.

Copied title and URL