Како користити мутаген за уређивање мп3 и других ИД3 ознака у Питхон-у

Бусинесс

Библиотека за уређивање Питхон ознака,mutagen

Мутаген Питхон библиотеке може се користити за уређивање ознака (метаподатака) мултимедијалних датотека као што је мп3.

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

Ево примера уређивања ИД3 ознаке.

За више информација о ИД3, погледајте следећу везу. Стандард је првобитно креиран за мп3, али се сада примењује и на мп4 (м4а) и друге датотеке које нису мп3.

mutagen.easyid3

Ако само желите да читате или пишете имена извођача, називе албума, бројеве нумера, итд., Лако је користити ЕасиИД3 модул.

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

Да бисте директно уређивали ИД3 ознаке, користите ИД3 модул.

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)

ИД-ови ознака су сажети у званичној документацији на следећем линку, али је тешко разумети какву врсту информација представљају.

Можда ће бити лакше користити метод ппринт() за приказ ИД3 ознака постојеће датотеке како би се проверила кореспонденција.

Copied title and URL