Python-да mp3 және басқа ID3 тегтерін өңдеу үшін мутагенді қалай пайдалануға болады

Іскерлік

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

Функцияны анықтау пайдалы.

Тегтер келесідей жазылады. Жолдардың жалпы саны (әндер саны) «трек саны» бөлгішімен көрсетіледі. Бұл дискілердің санына қатысты.

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)

Тег идентификаторлары келесі сілтемедегі ресми құжаттамада жинақталған, бірақ олардың қандай ақпаратты білдіретінін түсіну қиын.

Сәйкестікті тексеру үшін бар файлдың ID3 тегтерін көрсету үшін pprint() әдісін пайдалану оңайырақ болуы мүмкін.

Copied title and URL