Python میں mp3 اور دیگر ID3 ٹیگز میں ترمیم کرنے کے لیے mutagen کا استعمال کیسے کریں۔

کاروبار

ازگر ٹیگ ایڈیٹنگ لائبریری,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 install mutagen

ID3 ٹیگ میں ترمیم کرنے کی ایک مثال یہ ہے۔

ID3 کے بارے میں مزید معلومات کے لیے، درج ذیل لنک دیکھیں۔ معیار اصل میں mp3 کے لیے بنایا گیا تھا، لیکن اب یہ mp4 (m4a) اور دیگر نان mp3 فائلوں پر بھی لاگو ہوتا ہے۔

mutagen.easyid3

اگر آپ صرف فنکاروں کے نام، البم کے نام، ٹریک نمبر وغیرہ پڑھنا یا لکھنا چاہتے ہیں، تو EasyID3 ماڈیول استعمال کرنا آسان ہے۔

from mutagen.easyid3 import EasyID3

گانے کا عنوان لکھنے کے لیے درج ذیل کام کریں۔

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

ایک سادہ انٹرفیس حاصل کرنے کے لیے صرف ایک محدود تعداد میں ٹیگز میں ترمیم کی جا سکتی ہے، لیکن یہ بنیادی استعمال کے لیے کافی ہے۔ جن ٹیگز میں ترمیم کی جا سکتی ہے وہ نیچے دیکھے جا سکتے ہیں۔
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

فنکشن کی وضاحت کرنا مفید ہے۔

ٹیگز درج ذیل ہیں۔ ٹریکس کی کل تعداد (گانوں کی تعداد) کو ‘ٹریک نمبر’ کے ڈینومینیٹر سے ظاہر کیا جاتا ہے۔ ڈسکس کی تعداد کے لیے بھی یہی بات ہے۔

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

ٹیگ ریڈ آؤٹ (ڈسپلے) مندرجہ ذیل ہے۔

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

مندرجہ ذیل ٹیگز کو ہٹا دیا گیا ہے۔

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

لکھنے کے لیے، ٹیگ ID کی وضاحت کریں جیسا کہ نیچے دکھایا گیا ہے۔

  • گانے کے عنوانات(TIT2)
  • البم کا نام(TALB)

ٹیگ IDs کا خلاصہ درج ذیل لنک پر سرکاری دستاویزات میں کیا گیا ہے، لیکن یہ سمجھنا مشکل ہے کہ وہ کس قسم کی معلومات کی نمائندگی کرتے ہیں۔

خط و کتابت کی جانچ کرنے کے لیے موجودہ فائل کے ID3 ٹیگز کو ظاہر کرنے کے لیے pprint() طریقہ استعمال کرنا آسان ہو سکتا ہے۔

Copied title and URL