AVID Metadata
License: PRO+ (Professional Edition or higher)
Plugin Type: Post-Index Plugin
Author: Diskover Data, Inc.
Overview
The AVID Metadata plugin extracts metadata from Avid media management files — specifically PMR (Persistent Media Record) and AVB (Avid Bin) files — and enriches MXF and AAF documents in your Diskover index with up to 15 searchable metadata fields. This gives media asset management teams the ability to search, filter, and report on Avid project relationships, clip names, tape identifiers, track assignments, and other production metadata directly within the Diskover web UI.
The plugin operates in two phases. First, it parses PMR binary files to build clip-to-project mappings and writes project metadata to matching MXF/AAF documents. Second, it parses AVB bin files to extract detailed media metadata — clip names, tape IDs, track assignments, frame rates, resolutions, and more — and writes those fields to matching MXF/AAF documents.
Use Cases
Avid Project Asset Inventory — Identify which MXF media files belong to which Avid projects across shared storage. Use the enriched data for storage reporting, archival planning, or media relocation decisions.
Tape and Clip Tracking — Track which tape sources and clip names are associated with rendered MXF media files across multiple Avid projects. Combine metadata fields to build detailed asset lineage reports.
Pre-Migration Validation — Before migrating Avid media to new storage, run the plugin in dry run mode to verify that all expected clip-to-project relationships are detected. Confirm the results, then run without dry run to apply changes.
Sample data from a AVID Metadata execution:
AVB (AVID Bin Metadata)
Here we can see the entire list of metadata returned from the AVID Metadata plugin!
Installation
DNF Installation (Linux RPM)
On Linux systems using DNF package management, this plugin can be installed via RPM:
sudo dnf install diskover-plugin-postindex-avid
Note: Ensure your system is configured with the Diskover RPM repository before running the install command.
Prerequisites
Component |
Requirement |
|---|---|
Python |
3.9 or higher |
Diskover |
Core installation with post-index plugin support |
Elasticsearch |
7.x or 8.x (as supported by Diskover) |
Storage |
Read access to Avid shared storage (PMR, AVB, MXF, AAF files) |
No external Python dependencies are required — the plugin ships with its own pmr_reader and avb_tools libraries in the plugin directory.
Step 1 — Install the Plugin
Copy the plugin files to your Diskover post-index plugins directory:
Linux:
cp -r diskover_avid /opt/diskover/plugins_postindex/
Windows:
xcopy /E /I diskover_avid "C:\Program Files\Diskover\plugins_postindex\diskover_avid"
Step 2 — Verify the Installation
Linux:
# Verify the plugin can import its dependencies
python3 -c "import sys; sys.path.insert(0, '/opt/diskover/plugins_postindex/diskover_avid'); from pmr_reader import PMRReader; print('PMR reader OK')"
# Verify Elasticsearch connectivity
python3 -c "from diskover_plugin import es_connection_cached; print(es_connection_cached().info())"
Windows:
# Verify the plugin can import its dependencies
python -c "import sys; sys.path.insert(0, r'C:\Program Files\Diskover\plugins_postindex\diskover_avid'); from pmr_reader import PMRReader; print('PMR reader OK')"
# Verify Elasticsearch connectivity
python -c "from diskover_plugin import es_connection_cached; print(es_connection_cached().info())"
Configuration
Configuration is managed through the Diskover Admin Panel. Navigate to Plugins → Post Index → AVID Data to access the settings.
Here is the beginning of our sample configuration.There are many other configuraitons for the AVID Metadata - covered in detail below!
Configuration Parameters
Parameter |
Type |
Default |
Description |
|---|---|---|---|
|
bool |
|
Enable or disable the AVID Metadata plugin |
|
int |
|
Maximum number of threads for parallel AVB file processing |
|
bool |
|
Enable verbose output showing each clip and MXF file processed |
|
bool |
|
Perform a dry run — preview all changes without modifying the index |
Configuration Example
Plugins:
Post Index:
AvidData:
Default:
enabled: true
maxthreads: 4
verbose: false
dry_run: false
Diskover Web UI Extra Fields Configuration
To display Avid metadata columns in the Diskover web UI, add the following entries to the EXTRA_FIELDS configuration under Settings → Web → General Settings:
{"Avid Project": "avid_project"}
{"Avid PMR Reference": "avid_pmr_reference"}
{"Avid Clip Name": "avb_clip_name"}
{"Avid Bin File": "avb_source_file"}
{"Avid Track": "avb_track"}
{"Avid Bin Source Mob": "avb_source_mob"}
{"Avid Project Folder": "avb_project_folder"}
{"Avid Bin Name": "avb_bin_name"}
{"Avid Tape Name": "avb_tape_name"}
{"Avid Tape ID": "avb_tape_id"}
{"Avid Project Name": "avb_project_name"}
{"Avid Drive": "avb_drive"}
{"Avid FPS": "avb_fps"}
{"Avid Resolution": "avb_resolution"}
{"Avid Comments": "avb_comments"}
This will display Avid project and AVB metadata in the "Extra fields" section when viewing MXF and AAF media files in the file detail panel.
Execution / Usage Guide
The AVID Metadata plugin can be run manually from the command line, scheduled as a Custom Task, or triggered automatically as a Post-Crawl Command after an Index Task completes.
Manual Execution
Linux:
# Basic execution on a specific index python3 /opt/diskover/plugins_postindex/diskover_avid/diskover_avid.py diskover-avidmedia # Verbose output to see per-clip processing details python3 /opt/diskover/plugins_postindex/diskover_avid/diskover_avid.py -v diskover-avidmedia # Extra verbose output (ES queries, per-record detail) python3 /opt/diskover/plugins_postindex/diskover_avid/diskover_avid.py -V diskover-avidmedia # Dry run to preview changes without modifying the index python3 /opt/diskover/plugins_postindex/diskover_avid/diskover_avid.py -d -v diskover-avidmedia # Use a named configuration python3 /opt/diskover/plugins_postindex/diskover_avid/diskover_avid.py -c production diskover-avidmedia # Auto-find the latest index by top path python3 /opt/diskover/plugins_postindex/diskover_avid/diskover_avid.py -l /mnt/avid_media # Check the plugin version python3 /opt/diskover/plugins_postindex/diskover_avid/diskover_avid.py --version
Windows:
# Basic execution on a specific index python "C:\Program Files\Diskover\plugins_postindex\diskover_avid\diskover_avid.py" diskover-avidmedia # Verbose output to see per-clip processing details python "C:\Program Files\Diskover\plugins_postindex\diskover_avid\diskover_avid.py" -v diskover-avidmedia # Extra verbose output (ES queries, per-record detail) python "C:\Program Files\Diskover\plugins_postindex\diskover_avid\diskover_avid.py" -V diskover-avidmedia # Dry run to preview changes without modifying the index python "C:\Program Files\Diskover\plugins_postindex\diskover_avid\diskover_avid.py" -d -v diskover-avidmedia # Use a named configuration python "C:\Program Files\Diskover\plugins_postindex\diskover_avid\diskover_avid.py" -c production diskover-avidmedia # Auto-find the latest index by top path python "C:\Program Files\Diskover\plugins_postindex\diskover_avid\diskover_avid.py" -l "D:\AvidMedia" # Check the plugin version python "C:\Program Files\Diskover\plugins_postindex\diskover_avid\diskover_avid.py" --version
Command-Line Options
Option |
Long Form |
Description |
|---|---|---|
|
|
Use a named configuration defined in the Diskover Admin Panel |
|
|
Auto-find the most recent index based on a top path |
|
|
Enable verbose logging |
|
|
Enable extra verbose logging (ES queries, per-record detail) |
|
|
Perform a dry run without updating the index |
|
Print version number and exit |
Automated Execution — Custom Task
You can schedule the AVID Metadata plugin to run on a recurring basis using Diskover's Custom Task feature.
Here we can see the Run Command & args needed for the Custom Task - Note that in this case you cannot use the {indexname} variable as this is not a task that creates an index, so we must use the -l (toppath) CLI option and pass in our top path!
Automated Execution — Post-Crawl Command
To run the plugin automatically after every index crawl completes, configure it as a Post-Crawl Command on your Index Task.
Linux Example:
Field |
Value |
|---|---|
Post-Crawl Command |
|
Post-Crawl Command Args |
|
Windows Example:
Field |
Value |
|---|---|
Post-Crawl Command |
|
Post-Crawl Command Args |
|
To use verbose logging:
Field |
Value |
|---|---|
Post-Crawl Command |
|
Post-Crawl Command Args |
|
To use a named configuration:
Field |
Value |
|---|---|
Post-Crawl Command |
|
Post-Crawl Command Args |
|
Available Index Task Tokens:
{indexname}— The name of the index that was just created
Important: The Post-Crawl Command field should contain only the executable (
python3orpython). All script paths, flags, and arguments go in the Post-Crawl Command Args field.
In your system ensure to replace the ConfigurationName above with a named configuraiton that you've created at Diskover Admin → Plugins → Post-Index → AVID Data – If you are not using a custom configuration and you're just using Default than the -c flag and the ConfigurationName is not required!
Expected Behavior During Execution
The plugin runs in two sequential phases:
Phase 1 — PMR Processing:
Discovers all PMR files (
.pmr) in the Elasticsearch indexParses each PMR binary file to extract clip-to-project mappings (with retry logic — 30-second timeout, up to 3 retries per file)
Groups clips by project for efficient batch processing
Finds matching MXF/AAF documents in the index and writes
avid_projectandavid_pmr_referencefields
Phase 2 — AVB Processing:
Discovers all AVB files (
.avb) in the Elasticsearch indexProcesses AVB files in batches of 10, using a 3-pass extraction pipeline per file
Finds matching MXF/AAF documents and writes 13 AVB metadata fields
Automatically retries any AVB files that timed out during initial processing
Reviewing the Output
Metadata Fields Written to the Index
The plugin writes up to 15 metadata fields across two categories. These fields are added to MXF and AAF documents in Elasticsearch.
PMR Fields (2 fields)
Field |
Type |
Description |
Example |
|---|---|---|---|
|
string |
Project name from PMR entry |
|
|
string |
Full path to the source PMR file |
|
AVB Fields (13 fields)
Field |
Type |
Description |
Example |
|---|---|---|---|
|
string |
Master clip display name (tape ID removed) |
|
|
string |
AVB bin file name |
|
|
string |
Track type and index |
|
|
string |
Source mob name |
|
|
string |
Project folder extracted from media path |
|
|
string |
Bin name from AVB attributes |
|
|
string |
Raw tape mob name |
|
|
string |
Extracted clean tape ID identifier |
|
|
string |
Originating Avid project name |
|
|
string |
Storage volume/drive name |
|
|
string |
Frame rate |
|
|
string |
Video resolution |
|
|
string |
Coalesced comments from user attributes |
|
Verifying Successful Execution
After the plugin completes, verify that metadata was written correctly:
Check the terminal output — The plugin reports how many PMR and AVB files were processed, how many MXF/AAF documents were updated, and any errors encountered.
Search in Diskover — Run
avid_project:*to find documents enriched with PMR data, oravb_clip_name:*to find documents enriched with AVB data.Use dry run first — If you're running the plugin for the first time, use the
-dflag to preview what would change before committing updates.
Searching in Diskover
Once the plugin has run, you can search for MXF and AAF files based on their Avid metadata directly in the Diskover web UI. The plugin creates 15 searchable fields that enable powerful queries across project relationships, clip details, and production metadata.
PMR Metadata Searches
What You Want to Find |
Search Query |
|---|---|
Files belonging to a specific Avid project |
|
All files with PMR project metadata |
|
Files with a specific PMR reference path |
|
AVB Clip and Bin Searches
What You Want to Find |
Search Query |
|---|---|
Files by clip name |
|
Files from a specific AVB bin file |
|
Files by bin name |
|
Files by source mob |
|
All files with AVB metadata |
|
Track and Tape Searches
What You Want to Find |
Search Query |
|---|---|
Video track 1 files |
|
All audio tracks |
|
Files by tape ID |
|
Files by tape name |
|
Project and Storage Searches
What You Want to Find |
Search Query |
|---|---|
Files from a specific Avid project |
|
Files in a project folder |
|
Files on a specific drive/volume |
|
Technical Metadata Searches
What You Want to Find |
Search Query |
|---|---|
Files at a specific frame rate |
|
Files at a specific resolution |
|
Files with comments |
|
Files with specific comment text |
|
Combined Searches
These examples combine multiple Avid metadata fields — or Avid metadata with standard Diskover fields — for more targeted results:
Scenario |
Search Query |
|---|---|
HD video tracks in a specific project |
|
All audio from a specific tape |
|
PMR and AVB enriched files combined |
|
Large MXF files in a project |
|
Recently modified media with clip data |
|
Files with comments in a specific bin |
|
This shows the couple of AAF files that are associated with this AVID project that match that criteria!
Troubleshooting
No PMR Files Found in Index
Symptom: The plugin outputs "No PMR files found in index. Skipping PMR processing." even though PMR files exist on disk. AVB processing continues normally.
Fix:
Ensure the Diskover scan top path includes the Avid MediaFiles directories where PMR files reside (typically under
Avid MediaFiles/MXF/*/msmMMOB.pmr).Verify that PMR files are not excluded by scan filters (extension exclusions or directory exclusions).
Re-run the Diskover scan if PMR files were added to storage after the last scan completed.
PMR File Timeout Errors
Symptom: Warnings about failed PMR file reads after timeout retries — the file may be locked by an active Avid session.
Fix:
Run the plugin during off-hours when Avid sessions are not actively writing to PMR files.
Verify NFS or SMB mount options allow concurrent reads without exclusive locking.
Check network connectivity and storage performance — the 30-second timeout should be sufficient under normal conditions.
MXF Files Not Being Updated
Symptom: The plugin completes without errors but MXF/AAF documents in the index do not have Avid metadata fields.
Fix:
Use the
-d -vflags (dry run with verbose) to preview what the plugin would update — check that clip names from PMR/AVB files match MXF filenames in the index.Confirm that both PMR/AVB files and MXF/AAF files are present in the same Elasticsearch index.
Verify the plugin is not running in dry run mode (check the configuration and command-line flags).
Ensure the
enabledconfiguration parameter is set toTrue.
Enabling Debug Logging
For detailed diagnostic output, use the -V (extra verbose) flag:
Linux:
python3 /opt/diskover/plugins_postindex/diskover_avid/diskover_avid.py -V diskover-avidmedia 2>&1 | tee avid_debug.log
Windows:
python "C:\Program Files\Diskover\plugins_postindex\diskover_avid\diskover_avid.py" -V diskover-avidmedia 2>&1 | tee avid_debug.log
This shows Elasticsearch queries, per-record processing details, and detailed error information for any failures.
Log File Location
Plugin output is written to the Diskover logs directory. Check your Diskover configuration for the log path, or review the terminal output when running manually.
Support
Last Updated: April 2026
Comments
0 comments
Please sign in to leave a comment.