ไลบรารีแก้ไขแท็ก Python,mutagen
สามารถใช้ 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
$ 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()
ในการเขียน ให้ระบุ tag ID ตามที่แสดงด้านล่าง
- ชื่อเพลง(
TIT2
) - ชื่ออัลบั้ม(
TALB
)
รหัสแท็กมีการสรุปไว้ในเอกสารอย่างเป็นทางการที่ลิงก์ต่อไปนี้ แต่เป็นการยากที่จะเข้าใจว่าเป็นข้อมูลประเภทใด
ใช้วิธี pprint() เพื่อแสดงแท็ก ID3 ของไฟล์ที่มีอยู่ได้ง่ายขึ้นเพื่อตรวจสอบการติดต่อ