Paano gumamit ng mutagen upang i-edit ang mp3 at iba pang mga tag ng ID3 sa Python

Negosyo

library sa pag-edit ng tag ng Python,mutagen

Ang Python library mutagen ay maaaring gamitin upang i-edit ang mga tag (metadata) ng mga multimedia file gaya ng 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.

Maaari mong i-install ito gamit ang pip.

$ pip install mutagen

Narito ang isang halimbawa ng pag-edit ng ID3 tag.

Para sa karagdagang impormasyon tungkol sa ID3, tingnan ang sumusunod na link. Ang pamantayan ay orihinal na nilikha para sa mp3, ngunit ngayon ay inilapat din sa mp4 (m4a) at iba pang hindi mp3 na mga file.

mutagen.easyid3

Kung gusto mo lang magbasa o magsulat ng mga pangalan ng artist, pangalan ng album, numero ng track, atbp., madaling gamitin ang EasyID3 module.

from mutagen.easyid3 import EasyID3

Upang magsulat ng pamagat ng kanta, gawin ang sumusunod

path = 'example.mp3'
tags = EasyID3(path)
tags['title'] = 'new_title'
tags.save()

Limitado lamang na bilang ng mga tag ang maaaring i-edit upang makamit ang isang simpleng interface, ngunit ito ay sapat na para sa pangunahing paggamit. Ang mga tag na maaaring i-edit ay makikita sa ibaba.
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

Ito ay kapaki-pakinabang upang tukuyin ang isang function.

Ang mga tag ay nakasulat bilang mga sumusunod. Ang kabuuang bilang ng mga track (bilang ng mga kanta) ay kinakatawan ng denominator ng ‘tracknumber’. Ang parehong ay totoo para sa bilang ng mga disc.

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()

Ang tag readout (display) ay ang mga sumusunod.

def show_id3_tags(file_path):
    tags = EasyID3(file_path)
    print(tags.pprint())

Ang mga tag ay tinanggal tulad ng sumusunod.

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()

Gamitin ang mga sumusunod.

set_id3_tag(path, albumartist='new_artist')
delete_id3_tag(path, 'discnumber')
show_id3_tags(path)

mutagen.id3

Upang direktang i-edit ang mga tag ng ID3, gamitin ang module ng 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()

Upang magsulat, tukuyin ang tag ID tulad ng ipinapakita sa ibaba.

  • mga pamagat ng kanta(TIT2)
  • Pangalan ng album(TALB)

Ang mga tag ID ay ibinubuod sa opisyal na dokumentasyon sa sumusunod na link, ngunit mahirap maunawaan kung anong uri ng impormasyon ang kinakatawan ng mga ito.

Maaaring mas madaling gamitin ang pprint() na paraan upang ipakita ang mga ID3 tag ng isang umiiral na file upang suriin kung may mga sulat.

Copied title and URL