MediaInfo++
is a script add‑in for Directory Opus that extends the default multimedia columns, letting you pull in any MediaInfo value right into Opus. What really sets it apart is its intuitive UI. No more manual edits just to add some columns. Just preview and pick exactly the data you need, then choose how it'll appear in Opus.
Key Features:
- Full support for virtually every property exposed by MediaInfo, including unofficial ones.
- Easy to use. Just open the config dialog with a file, or drop a file in, pick the properties you want to add by their preview value, and you're good to go.
- A built-in UI to manage which columns you want to add—customize the name, header, type, category, applicable extensions, and more.
- Designed for both casual and advanced users: the interface is simple but powerful enough to define custom rules and formatting.
- Real-time preview of values in each property, exactly as they'd appear in columns.
- Fully customizable infotips with special entries that show results live.
- Supports both single-value and multi-stream outputs at runtime—no need to tweak the script manually.
- Easily switch data types on the fly.
- No data caching needed—performance is fast enough without it.
Installation:
This script uses DOpus-Scripting-Extensions
by @PolarGoose. First, you'll need to install the latest version from here.
Then install the script as usual. (Required at least DOpus v13.16.6)
Note: If you're using the preview version, it's recommended to uninstall it first.
v1.0.1 : Download here
Configuration: Adding/editing columns
The first time you install the script, it'll ask if you want to start configuring columns—assuming you already have the mentioned program. If not, it'll give you the link to install it.
To configure which columns are enabled, you need to open the configuration dialog, which you can do in a few different ways:
-
From the Script Management window, click the Configure button.
-
Using the
MediaInfo++ CONFIG
command. You can also include the path to a file you'd like to preview.
The configuration dialog has two tabs—one for column
settings and another for infotips
.
When this dialog opens, if the list of properties (keywords) is initially empty, you'll be asked to select a file so MediaInfo can fill in the list with values from its inform.
Columns
Checked properties are the ones that will be enabled as columns in Opus once you close the dialog.
MediaInfo groups each property into one of the following: General, Video, Audio, Text, Menu, Image, and Other. Each property belongs to only one group, and there can be properties with the same name across different groups. Only properties in the "General" group have a single value; others can have multiple values—one for each stream in the file.
Using the controls on the right, you can edit each column's label, header, and type.
The "Multiple" control lets you choose whether the column will show the property for each stream in the group, or just the first one. If "Multiple" is set to "True", the chosen separator will be used to split the values.
The "Type" control sets the data type of the column's content. Allowed types are: String (text), number (int), double, star (rating), datetime, date, time, duration, and size.
You can change this value and immediately see how it affects the preview below.
Note: When "Multiple" is True, the type is always treated as String, since it's best practice not to mix value types in a single column.
The "Category" control lets you change where the column appears. By default, columns are added under Script > MediaInfo++. You can switch this to any other category you prefer. This doesn't affect the behavior or output of the column.
The "Pattern" controls let you apply advanced formatting using regular expressions.
By default, the script uses predefined formats to adjust the type of each value. You can override those with your own.
The first field is where you define the actual pattern to match. Use the same format as ECMAScript literal regex: /pattern/flags
.
The second field defines the replacement string. Both follow the same format used in JScript's String.replace(pattern, replace)
, so compatibility depends on that context.
The listed extensions below are used to determine which files the column applies to.
You can add file type groups using grp:
followed by the internal or display name of the group.
You can also list specific extensions (include the dot). Wildcards are not supported.
Every time you open a file for preview, the script saves the listed properties for later use, so you don't have to remember which file had which properties when adding a new column.
For keyboard navigation, the following hotkeys are active when the list is focused:
Ctrl+L: Focuses the Label field
Ctrl+H: Focuses the Header field
Ctrl+T: Focuses the Type field
Ctrl+M: Focuses the Multiple field
Ctrl+G: Focuses the Category field
Ctrl+R: Focuses the Pattern field
Ctrl+A: Focuses the Alignment field
You can also press F3 to move focus to the Filter field.
After closing the dialog, the columns will be added automatically and will be ready to use in Opus, in any field where they apply.
Note: If the columns are already visible, you may need to refresh the lister to see the changes.
Infotips
When building infotips, to get the keyword you want, select it from the list and press Ctrl+C to copy it to the clipboard.
Available infotips are for: General, Audio, Video, Text, Menu, and Image.
Infotips use a special syntax, which basically works like this:
{keyword|value if not available|specific format}
Where parts 2 and 3 are optional.
The specific format expects "%1" to insert the keyword's value in the desired position.
If the keyword doesn't exist, or the text isn't inside {}, the text is passed as is.
These values support all the markup code that Opus allows.
Command's Arguments
The command support the following arguments:
Argument | Type | Value | Desc |
---|---|---|---|
CONFIG | /O | Shows the dialog windows for configuring columns/infotips. | |
filepath | Accepts a filepath to populate the preview column right after start. | ||
EXPORT | /S | Exports columns/infotips to a file. | |
IMPORT | /O | Imports columns/infotips from a file without deleting existing ones. If no file is specified, you'll be prompted to choose one. | |
!IMPORT | /O | Imports columns/infotips from a file, deleting existing ones. If no file is specified, you'll be prompted to choose one. |
Importing from a file
The command supports importing columns directly from a valid JSON file encoded with UTF-8 NOBOM, with the following format:
Detailed explanation
There are two sections: "columns" and "infotips".
Each entry (KEY) in both groups must have the following properties:
- "label": Cannot be empty.
- "header":
- "align": Must be
left
,center
, orright
. - "type": Must be
string
,number
,size
,double
,duration
,datetime
,date
, ortime
. - "category": Must be
music
,movie
,image
,script
,size
,std
,date
, orsums
. - "enabled": Must be
1
or0
. - "exts": Cannot be empty; must include at least one
.
orgrp:
. Multiple values are separated by;
. - "group": Must be
General
,Audio
,Video
,Image
,Text
,Menu
, orOther
. - "keyword": Cannot be empty (except for infotips).
- "multi": Must be
true
orfalse
. - "regex": The regex used for custom formatting.
- "regex1": The regex flags.
- "regex2": The replacement value for the regex.
- "value": Only for infotips. Cannot be empty.
Additionally:
- KEY must follow the internal format for columns (
group_keyword
) or infotips (group_infotip
).
E.g.
{
"columns": {
"Audio_Default": {
"label": "Audio Default",
"header": "Default",
"align": "left",
"type": "string",
"category": "script",
"enabled": 1,
"exts": "grp:Video",
"group": "Audio",
"keyword": "Default",
"multi": true,
"regex": "",
"regex1": "",
"regex2": ""
}
}
"infotips": {
"General_infotip": {
"label": "General_infotip",
"header": "General_infotip",
"align": "left",
"type": "string",
"category": "script",
"enabled": 1,
"exts": "grp:Music; grp:Movies; grp:Images",
"group": "General",
"keyword": "",
"multi": true,
"regex": "",
"regex1": "",
"regex2": "",
"value": "{FileSize_String||Size: %1},{OverallBitRate_String|| Bitrate: %1}{Duration_String||, Duration: %1} {File_Created_Date||Created: %1} {Encoded_Date||Encoded: %1} {Released_Date||Released: %1}"
}
}
}
Notes:
- Starting with version 16.0 of
DOpus-Scripting-Extensions
, unit values and certain words will be displayed in the same language Opus is running in. - The script adds certain values to the "Menu" group for convenience:
ChaptersCount
andChaptersList
. - Custom formatting are ignored when the type is
datetime
,date
, ortime
. - The search supports Opus wildcard syntax, so you'll need to escape certain characters where required.
- You can change the script log level by clicking the
button. You can also enter
debug mode
by holding Shift while opening the script's configuration dialog. - When uninstalling the script, the property database stored at
/dopusdata\User Data\MediaInfo++.json
will also be deleted.
Acknowledgments/Credits:
- MediaInfo.
- @PolarGoose, for the awesome plugin that makes this project possible.
- Opus devs, for an amazing program that goes beyond a file manager.
Changelog
- If a column value isn't found, it still respects the data type the column returns (so for a column of type number, it shows 0 instead of leaving it empty).
- Fixed the text in the welcome dialog. (It shouldn't say preview anymore)
v1.0.0 (02/07/2025) :
- Initial release.