Python etiketi düzenleme kitaplığı,mutagen
Python kitaplığı mutajeni, mp3 gibi multimedya dosyalarının etiketlerini (meta verileri) düzenlemek için kullanılabilir.
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 ile kurabilirsiniz.
$ pip install mutagen
İşte bir ID3 etiketinin düzenlenmesine bir örnek.
ID3 hakkında daha fazla bilgi için aşağıdaki bağlantıya bakın. Standart başlangıçta mp3 için oluşturuldu, ancak şimdi mp4 (m4a) ve diğer mp3 olmayan dosyalara da uygulanıyor.
mutagen.easyid3
Yalnızca sanatçı adlarını, albüm adlarını, parça numaralarını vb. okumak veya yazmak istiyorsanız, EasyID3 modülünü kullanmak kolaydır.
from mutagen.easyid3 import EasyID3
Bir şarkı adı yazmak için aşağıdakileri yapın
path = 'example.mp3'
tags = EasyID3(path)
tags['title'] = 'new_title'
tags.save()
Basit bir arayüz elde etmek için yalnızca sınırlı sayıda etiket düzenlenebilir, ancak temel kullanım için yeterlidir. Düzenlenebilir etiketler aşağıda görülebilir.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
Bir fonksiyon tanımlamak yararlıdır.
Etiketler aşağıdaki gibi yazılır. Toplam parça sayısı (şarkı sayısı), ‘parça numarası’ paydası ile temsil edilir. Aynısı disk sayısı için de geçerlidir.
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()
Etiket okuması (ekran) aşağıdaki gibidir.
def show_id3_tags(file_path):
tags = EasyID3(file_path)
print(tags.pprint())
Etiketler aşağıdaki gibi kaldırılır.
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()
Aşağıdaki gibi kullanın.
set_id3_tag(path, albumartist='new_artist')
delete_id3_tag(path, 'discnumber')
show_id3_tags(path)
mutagen.id3
ID3 etiketlerini doğrudan düzenlemek için ID3 modülünü kullanın.
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()
Yazmak için etiket kimliğini aşağıda gösterildiği gibi belirtin.
- şarkı isimleri(
TIT2
) - Albüm adı(
TALB
)
Etiket kimlikleri, aşağıdaki bağlantıdaki resmi belgelerde özetlenmiştir, ancak ne tür bilgileri temsil ettiklerini anlamak zordur.
Karşılık olup olmadığını kontrol etmek için mevcut bir dosyanın ID3 etiketlerini görüntülemek için pprint() yöntemini kullanmak daha kolay olabilir.