Python-da mp3 və digər ID3 teqlərini redaktə etmək üçün mutagendən necə istifadə etmək olar

Biznes

Python teq redaktə kitabxanası,mutagen

Python kitabxanasının mutagenindən mp3 kimi multimedia fayllarının teqlərini (metadata) redaktə etmək üçün istifadə oluna bilər.

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.

Siz onu pip ilə quraşdıra bilərsiniz.

$ pip install mutagen

Budur ID3 teqini redaktə etmək nümunəsi.

ID3 haqqında ətraflı məlumat üçün aşağıdakı linkə baxın. Standart əvvəlcə mp3 üçün yaradılmışdı, lakin indi mp4 (m4a) və digər mp3 olmayan fayllara da tətbiq olunur.

mutagen.easyid3

Əgər siz sadəcə olaraq ifaçı adlarını, albom adlarını, trek nömrələrini və s. oxumaq və ya yazmaq istəyirsinizsə, EasyID3 modulundan istifadə etmək asandır.

from mutagen.easyid3 import EasyID3

Mahnının başlığını yazmaq üçün aşağıdakıları edin

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

Sadə bir interfeys əldə etmək üçün yalnız məhdud sayda etiketlər redaktə edilə bilər, lakin əsas istifadə üçün kifayətdir. Aşağıda redaktə edilə bilən etiketlərə baxa bilərsiniz.
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

Funksiyanı təyin etmək faydalıdır.

Etiketlər aşağıdakı kimi yazılır. Treklərin ümumi sayı (mahnıların sayı) “tracknumber” məxrəci ilə təmsil olunur. Eyni şey disklərin sayına da aiddir.

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

Teq oxunuşu (ekran) aşağıdakı kimidir.

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

Etiketlər aşağıdakı kimi silinir.

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

Aşağıdakı kimi istifadə edin.

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

mutagen.id3

ID3 teqlərini birbaşa redaktə etmək üçün ID3 modulundan istifadə edin.

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

Yazmaq üçün aşağıda göstərildiyi kimi teq ID-ni təyin edin.

  • mahnı adları(TIT2)
  • Albom adı(TALB)

Teq identifikatorları rəsmi sənədlərdə aşağıdakı linkdə ümumiləşdirilmişdir, lakin onların hansı məlumatı təmsil etdiyini başa düşmək çətindir.

Yazışmaları yoxlamaq üçün mövcud faylın ID3 teqlərini göstərmək üçün pprint() metodundan istifadə etmək daha asan ola bilər.

Copied title and URL