Kako koristiti mutagen za uređivanje mp3 i drugih ID3 oznaka u Pythonu

Poslovanje

Knjižnica za uređivanje Python oznaka,mutagen

Mutagen biblioteke Python može se koristiti za uređivanje oznaka (metapodataka) multimedijskih datoteka kao što je 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.

Možete ga instalirati s pip-om.

$ pip install mutagen

Evo primjera uređivanja ID3 oznake.

Za više informacija o ID3 pogledajte sljedeću poveznicu. Standard je izvorno stvoren za mp3, ali se sada primjenjuje i na mp4 (m4a) i druge datoteke koje nisu mp3.

mutagen.easyid3

Ako samo želite čitati ili pisati imena izvođača, nazive albuma, brojeve pjesama itd., jednostavno je koristiti EasyID3 modul.

from mutagen.easyid3 import EasyID3

Da biste napisali naslov pjesme, učinite sljedeće

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

Samo ograničen broj oznaka može se uređivati ​​kako bi se postiglo jednostavno sučelje, ali to je dovoljno za osnovnu upotrebu. Oznake koje je moguće uređivati ​​možete vidjeti u nastavku.
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

Korisno je definirati funkciju.

Oznake su napisane na sljedeći način. Ukupan broj pjesama (broj pjesama) predstavljen je nazivnikom ‘tracknumber’. Isto vrijedi i za broj diskova.

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

Očitavanje oznake (zaslon) je kako slijedi.

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

Oznake se uklanjaju na sljedeći način.

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

Koristite na sljedeći način.

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

mutagen.id3

Za izravno uređivanje ID3 oznaka koristite ID3 modul.

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

Za pisanje navedite ID oznake kao što je prikazano u nastavku.

  • naslovi pjesama(TIT2)
  • Naziv albuma(TALB)

ID-ovi oznaka sažeti su u službenoj dokumentaciji na sljedećoj poveznici, no teško je razumjeti kakvu vrstu informacija predstavljaju.

Možda će biti lakše koristiti metodu pprint() za prikaz ID3 oznaka postojeće datoteke radi provjere korespondencije.

Copied title and URL