Pustaka penyuntingan tag Python,mutagen
Pustaka Python mutagen boleh digunakan untuk mengedit tag (metadata) fail multimedia seperti 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.
Anda boleh memasangnya dengan pip.
$ pip install mutagen
Berikut ialah contoh mengedit tag ID3.
Untuk maklumat lanjut tentang ID3, lihat pautan berikut. Standard pada asalnya dicipta untuk mp3, tetapi kini turut digunakan pada mp4 (m4a) dan fail bukan mp3 yang lain.
mutagen.easyid3
Jika anda hanya mahu membaca atau menulis nama artis, nama album, nombor lagu, dsb., mudah untuk menggunakan modul EasyID3.
from mutagen.easyid3 import EasyID3
Untuk menulis tajuk lagu, lakukan perkara berikut
path = 'example.mp3'
tags = EasyID3(path)
tags['title'] = 'new_title'
tags.save()
Hanya bilangan tag yang terhad boleh diedit untuk mencapai antara muka yang mudah, tetapi ia mencukupi untuk kegunaan asas. Tag yang boleh diedit boleh dilihat di bawah.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
Ia berguna untuk menentukan fungsi.
Tag ditulis seperti berikut. Jumlah bilangan lagu (bilangan lagu) diwakili oleh penyebut ‘nombor trek’. Perkara yang sama berlaku untuk bilangan cakera.
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()
Pembacaan tag (paparan) adalah seperti berikut.
def show_id3_tags(file_path):
tags = EasyID3(file_path)
print(tags.pprint())
Tag dikeluarkan seperti berikut.
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()
Gunakan seperti berikut.
set_id3_tag(path, albumartist='new_artist')
delete_id3_tag(path, 'discnumber')
show_id3_tags(path)
mutagen.id3
Untuk mengedit teg ID3 secara langsung, gunakan modul 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()
Untuk menulis, nyatakan ID teg seperti yang ditunjukkan di bawah.
- tajuk lagu(
TIT2
) - nama album(
TALB
)
ID teg diringkaskan dalam dokumentasi rasmi pada pautan berikut, tetapi sukar untuk memahami jenis maklumat yang diwakilinya.
Ia mungkin lebih mudah untuk menggunakan kaedah pprint() untuk memaparkan teg ID3 bagi fail sedia ada untuk menyemak surat-menyurat.