Processing Order
In order to make effective use of plugins and scripts, it is important to understand when each is processed in relation to the others. As a general statement, plugins are always processed before scripts. Plugins of the same type will be executed in order based upon the priority specified when the plugin was registered.
Startup
During program startup, plugins with the following hooks are processed, and any additional functionality that they provide will be available immediately:
File Formats
Cover Art Providers
Tagger Script Functions
Context Menu Actions
Option Pages
Loading a Release
When data gets loaded from MusicBrainz (while the album shows the “loading” status in the right-hand pane), the following are processed:
Metadata Processor Plugins
Tagging Scripts
Plugins have access to the raw data loaded from MusicBrainz and are processed before scripts, in the order of priority set when the plugin was registered.
Scripts are processed in the order set in the Options menu.
Note
Tagging scripts are always run against metadata loaded from MusicBrainz, and exactly after the data gets loaded and before files get matched. They are one of the last steps in the loading process. Tagging scripts do not have access to metadata stored in existing files.
Loading Music Files
After a file has been loaded into Picard, plugins registered with file_post_load_processor()
are
executed. This could, for example, be used to load additional data for a file.
Adding / Removing Files
After a file has been added to a track (on the right-hand pane of Picard), plugins registered with
file_post_addition_to_track_processor()
are executed.
After a file has been removed from a track (on the right-hand pane of Picard), plugins registered with
file_post_removal_from_track_processor()
are executed.
Saving Files
When files are saved, for each file the File Naming Script is first executed to determine the destination path and file name. Note that this script has no effect on the tag values written to the output file.
After a file has been saved, plugins registered with file_post_save_processor()
are executed. This
can, for example, be used to run additional post-processing on the file or write extra data. Note that
the file’s metadata is already the newly saved metadata.
Removing Albums
After an album has been removed from Picard, plugins registered with album_post_removal_processor()
are executed.