كيفية استخدام المغير لتحرير mp3 وعلامات ID3 الأخرى في Python

اعمال

مكتبة تحرير علامات Python,mutagen

يمكن استخدام مغير مكتبة Python لتحرير العلامات (البيانات الوصفية) لملفات الوسائط المتعددة مثل 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()

للكتابة ، حدد معرف العلامة كما هو موضح أدناه.

  • عناوين الأغاني(TIT2)
  • اسم الألبوم(TALB)

يتم تلخيص معرفات العلامات في الوثائق الرسمية الموجودة على الرابط التالي ، ولكن من الصعب فهم نوع المعلومات التي يمثلونها.

قد يكون من الأسهل استخدام طريقة pprint () لعرض علامات ID3 لملف موجود للتحقق من المراسلات.

Copied title and URL