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-ээр суулгаж болно.
$ 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
Функцийг тодорхойлох нь ашигтай байдаг.
Тагуудыг дараах байдлаар бичнэ. Дууны нийт тоог (дууны тоо) ‘tracknumber’ гэсэн хуваагчаар илэрхийлнэ. Дискний тооны хувьд ч мөн адил.
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
)
Шошгоны ID-г албан ёсны баримт бичигт дараах линкээр нэгтгэн харуулав, гэхдээ тэдгээр нь ямар төрлийн мэдээллийг төлөөлж байгааг ойлгоход хэцүү байдаг.
Харилцааг шалгахын тулд одоо байгаа файлын ID3 хаягуудыг харуулахын тулд pprint() аргыг ашиглах нь илүү хялбар байж болох юм.