Difference between revisions of "MusicBrainz Picard/Plugins/API"
From MusicBrainz Wiki
Jump to navigationJump to searchPavanChander (talk | contribs) m (Picard Qt/Plugin API moved to MusicBrainz Picard/Plugins/API) |
PavanChander (talk | contribs) m |
||
Line 1: | Line 1: | ||
⚫ | |||
− | =APIs for PicardQt Plugins= |
||
− | |||
⚫ | |||
==Metadata Processors== |
==Metadata Processors== |
Revision as of 18:43, 24 May 2012
API documentation for MusicBrainz Picard plugins.
Metadata Processors
MusicBrainz metadata can be post-processed at two levels, album and track.
Album metadata example:
1 PLUGIN_NAME = "Disc Numbers" 2 PLUGIN_AUTHOR = "Lukas Lalinsky" 3 PLUGIN_DESCRIPTION = "Moves disc numbers from album titles to tags." 4 5 from picard.metadata import register_album_metadata_processor 6 import re 7 8 def remove_discnumbers(metadata, release): 9 matches = re.search(r"\(disc (\d+)\)", metadata["album"]) 10 if matches: 11 metadata["discnumber"] = matches.group(1) 12 metadata["album"] = re.sub(r"\(disc \d+\)", "", metadata["album"]) 13 14 register_album_metadata_processor(remove_discnumbers)
Track metadata example:
1 PLUGIN_NAME = "Feat. Artists" 2 PLUGIN_AUTHOR = "Lukas Lalinsky" 3 PLUGIN_DESCRIPTION = "Removes feat. artists from track titles." 4 5 from picard.metadata import register_track_metadata_processor 6 import re 7 8 def remove_featartists(metadata, release, track): 9 metadata["title"] = re.sub(r"\(feat. [^)]*\)", "", metadata["title"]) 10 11 register_track_metadata_processor(remove_featartists)
File Formats
Example:
1 PLUGIN_NAME = "..." 2 PLUGIN_AUTHOR = "..." 3 PLUGIN_DESCRIPTION = "..." 4 5 from picard.file import File 6 from picard.formats import register_format 7 8 class MyFile(File): 9 EXTENSIONS = [".foo"] 10 NAME = "Foo Audio" 11 def read(self): 12 .... 13 def save(self): 14 .... 15 16 register_format(MyFile)
Tagger Script Functions
To define new tagger script function use register_script_function(function, name=None)
from module picard.script
.
Example:
1 PLUGIN_NAME = "Initials" 2 PLUGIN_AUTHOR = "Lukas Lalinsky" 3 PLUGIN_DESCRIPTION = "Provides tagger script function $initials(text)." 4 5 from picard.script import register_script_function 6 7 def initials(parser, text): 8 return "".join(a[:1] for a in text.split(" ") if a[:1].isalpha()) 9 10 register_script_function(initials)