Pythoni sildi redigeerimise raamatukogu, mutagen
Pythoni raamatukogu mutagen saab kasutada multimeediafailide (nt mp3) siltide (metaandmete) redigeerimiseks.
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.
Saate selle paigaldada pipi abil.
$ pip install mutagen
Siin on näide ID3-tähe redigeerimisest.
Lisateavet ID3 kohta leiate järgmiselt lingilt. Algselt loodi see standard mp3 jaoks, kuid nüüd kohaldatakse seda ka mp4 (m4a) ja muude mitte-mp3-failide suhtes.
mutagen.easyid3
Kui soovite lihtsalt lugeda või kirjutada artisti nimesid, albumi nimesid, loo numbreid jne, on lihtne kasutada EasyID3 moodulit.
from mutagen.easyid3 import EasyID3
Laulu pealkirja kirjutamiseks tehke järgmist
path = 'example.mp3'
tags = EasyID3(path)
tags['title'] = 'new_title'
tags.save()
Lihtsa kasutajaliidese saavutamiseks saab muuta ainult piiratud arvu silte, kuid põhikasutuseks on sellest piisab. Redigeeritavad sildid on näha allpool.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
Kasulik on defineerida funktsioon.
Sildid on kirjutatud järgmiselt. Lugude koguarv (laulude arv) on esitatud nimetajaga “tracknumber”. Sama kehtib ka plaatide arvu kohta.
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()
Sildi näidik (ekraan) on järgmine.
def show_id3_tags(file_path):
tags = EasyID3(file_path)
print(tags.pprint())
Sildid eemaldatakse järgmiselt.
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()
Kasutage järgmiselt.
set_id3_tag(path, albumartist='new_artist')
delete_id3_tag(path, 'discnumber')
show_id3_tags(path)
mutagen.id3
ID3-siltide otseseks muutmiseks kasutage ID3-moodulit.
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()
Kirjutamiseks määrake sildi ID, nagu allpool näidatud.
- laulu pealkirjad (
TIT2
) - Albumi nimi (
TALB
)
Tagi ID-d on kokkuvõtlikult esitatud ametlikus dokumentatsioonis järgmisel lingil, kuid on raske aru saada, millist teavet need esindavad.
Lihtsam võib olla kasutada meetodit pprint(), et kuvada olemasoleva faili ID3-tähed, et kontrollida vastavust.