Cách sử dụng mutagen để chỉnh sửa mp3 và các thẻ ID3 khác bằng Python

Kinh doanh

Thư viện chỉnh sửa thẻ Python,mutagen

Thư viện Python mutagen có thể được sử dụng để chỉnh sửa các thẻ (siêu dữ liệu) của các tệp đa phương tiện như 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.

Bạn có thể cài đặt nó bằng pip.

$ pip install mutagen

Đây là một ví dụ về chỉnh sửa thẻ ID3.

Để biết thêm thông tin về ID3, hãy xem liên kết sau. Tiêu chuẩn ban đầu được tạo cho mp3, nhưng giờ đây cũng được áp dụng cho mp4 (m4a) và các tệp không phải mp3 khác.

mutagen.easyid3

Nếu bạn chỉ muốn đọc hoặc viết tên nghệ sĩ, tên album, số bản nhạc, v.v., có thể dễ dàng sử dụng mô-đun EasyID3.

from mutagen.easyid3 import EasyID3

Để viết tên bài hát, hãy làm như sau

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

Chỉ một số thẻ có giới hạn có thể được chỉnh sửa để đạt được giao diện đơn giản, nhưng nó đủ để sử dụng cơ bản. Các thẻ có thể được chỉnh sửa có thể được nhìn thấy bên dưới.
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

Nó rất hữu ích để xác định một chức năng.

Các thẻ được viết như sau. Tổng số bản nhạc (số bài hát) được biểu thị bằng mẫu số là ‘tracknumber’. Điều này cũng đúng với số lượng đĩa.

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

Thẻ đọc (hiển thị) như sau.

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

Các thẻ được xóa như sau.

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

Sử dụng như sau.

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

mutagen.id3

Để chỉnh sửa trực tiếp thẻ ID3, hãy sử dụng mô-đun 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()

Để viết, hãy chỉ định ID thẻ như hình dưới đây.

  • tên bài hát(TIT2)
  • Tên anbom(TALB)

Các ID thẻ được tóm tắt trong tài liệu chính thức tại liên kết sau, nhưng rất khó để hiểu chúng đại diện cho loại thông tin nào.

Có thể dễ dàng hơn khi sử dụng phương thức pprint () để hiển thị các thẻ ID3 của một tệp hiện có để kiểm tra sự tương ứng.

Copied title and URL