Python ရှိ mp3 နှင့် အခြားသော ID3 တဂ်များကို တည်းဖြတ်ရန် mutagen ကို အသုံးပြုနည်း

စီးပွားရေးလုပ်ငန်း

Python tag တည်းဖြတ်သည့် ဒစ်ဂျစ်တိုက်,mutagen

Python စာကြည့်တိုက် mutagen ကို 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.

၎င်းကို pip ဖြင့်သင်တပ်ဆင်နိုင်သည်။

$ pip install mutagen

ဤသည်မှာ ID3 tag ကိုတည်းဖြတ်ခြင်း၏ဥပမာတစ်ခုဖြစ်သည်။

ID3 အကြောင်းပိုမိုသိရှိလိုပါက အောက်ပါလင့်ခ်တွင် ကြည့်ရှုပါ။ စံနှုန်းကို မူလက mp3 အတွက် ဖန်တီးထားသော်လည်း ယခုအခါ mp4 (m4a) နှင့် အခြား mp3 မဟုတ်သော ဖိုင်များတွင်လည်း အသုံးပြုထားသည်။

mutagen.easyid3

အနုပညာရှင်အမည်များ၊ အယ်လ်ဘမ်အမည်များ၊ သီချင်းနံပါတ်များ စသည်တို့ကို ဖတ်ရန် သို့မဟုတ် ရေးလိုပါက၊ EasyID3 module ကို အသုံးပြုရန် လွယ်ကူသည်။

from mutagen.easyid3 import EasyID3

သီချင်းခေါင်းစဉ်တစ်ခုရေးရန် အောက်ပါအတိုင်းလုပ်ဆောင်ပါ။

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

ရိုးရှင်းသောအင်တာဖေ့စ်ကိုရရှိရန် အကန့်အသတ်ရှိသော တဂ်များကိုသာ တည်းဖြတ်နိုင်သော်လည်း အခြေခံအသုံးပြုရန်အတွက် လုံလောက်ပါသည်။ တည်းဖြတ်နိုင်သော tag များကို အောက်တွင် ကြည့်ရှုနိုင်ပါသည်။
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

function တစ်ခုကို သတ်မှတ်ရန် အသုံးဝင်သည်။

Tag များကို အောက်ပါအတိုင်း ရေးသားထားပါသည်။ စုစုပေါင်း သီချင်းအရေအတွက် (သီချင်းအရေအတွက်) ကို ‘tracknumber’ ၏ ပိုင်းခြေအားဖြင့် ကိုယ်စားပြုသည်။ discs အရေအတွက်နှင့် အတူတူပင်ဖြစ်ပါသည်။

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

tag readout (display) မှာ အောက်ပါအတိုင်းဖြစ်သည်။

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

Tag များကို အောက်ပါအတိုင်း ဖယ်ရှားပါသည်။

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

အောက်ပါအတိုင်းအသုံးပြုပါ။

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

mutagen.id3

ID3 တဂ်များကို တိုက်ရိုက်တည်းဖြတ်ရန်၊ 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()

ရေးရန်၊ အောက်ဖော်ပြပါအတိုင်း tag ID ကို သတ်မှတ်ပါ။

  • သီချင်းခေါင်းစဉ်များ(TIT2)
  • အယ်လ်ဘမ်အမည်(TALB)

တဂ် ID များကို အောက်ပါလင့်ခ်ရှိတရားဝင်စာရွက်စာတမ်းများတွင် အကျဉ်းချုပ်ဖော်ပြထားသော်လည်း ၎င်းတို့ကိုယ်စားပြုသည့်အချက်အလက်အမျိုးအစားကို နားလည်ရန်ခက်ခဲသည်။

စာပေးစာယူကိုစစ်ဆေးရန် ရှိပြီးသားဖိုင်တစ်ခု၏ ID3 တက်ဂ်များကိုပြသရန် pprint() နည်းလမ်းကို အသုံးပြုရန် ပိုမိုလွယ်ကူနိုင်သည်။