Python இல் mp3 மற்றும் பிற ID3 குறிச்சொற்களைத் திருத்துவதற்கு mutagen ஐ எவ்வாறு பயன்படுத்துவது

வணிக

பைதான் டேக் எடிட்டிங் லைப்ரரி,mutagen

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() முறையைப் பயன்படுத்துவது எளிதாக இருக்கலாம்.