Бібліотека редагування тегів 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()
Щоб написати, вкажіть ідентифікатор тега, як показано нижче.
- назви пісень(
TIT2
) - Назва альбому(
TALB
)
Ідентифікатори тегів узагальнено в офіційній документації за наступним посиланням, але важко зрозуміти, яку інформацію вони представляють.
Може бути простіше використовувати метод pprint() для відображення тегів ID3 існуючого файлу для перевірки відповідності.