مكتبة تحرير علامات 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 لملف موجود للتحقق من المراسلات.