MediaInfo++:All the MediaInfo data you can ask for!

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, or right.
  • "type": Must be string, number, size, double, duration, datetime, date, or time.
  • "category": Must be music, movie, image, script, size, std, date, or sums.
  • "enabled": Must be 1 or 0.
  • "exts": Cannot be empty; must include at least one . or grp:. Multiple values are separated by ; .
  • "group": Must be General, Audio, Video, Image, Text, Menu, or Other.
  • "keyword": Cannot be empty (except for infotips).
  • "multi": Must be true or false.
  • "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 and ChaptersList.
  • Custom formatting are ignored when the type is datetime, date, or time.
  • 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 :gear: 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

v1.0.1 (03/07/2025) :

  • 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.
12 Likes

Very impressive! :trophy:

2 Likes

v1.0.1 (03/07/2025) :

  • 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 :grinning_face_with_smiling_eyes:)
1 Like

You're telling me that MediaInfo has columns of data that aren't in DO? Hard to believe. :slightly_smiling_face:

This post led me to look at your website which of course I was really only familiar with MediaInfo, a long-time favorite of mine especially when video problems arose.

I also see you're involved in saving VHS data, although I'd suspect it goes further than just VHS to all formats. How do they decide what's worth saving? What do they save it on to ensure longevity?

Thanks for all your great work.

I'm very impressed with your script! But I'm not using the beta version yet, so I haven't checked if the script works yet, but if it does, I hope I can see the color space information in the video in Directory Opus
I always opened the media info, looked at the video information one by one, checked it one by one, managed the video, separated the color space, changed the name, and hung the tag and kept it
If it works like that, it will be very convenient for me to organize the video
It's not easy to see information only with the metadata on Windows
Therefore, the color space area, P3D65; Apple Log-HDR; Apple Log-HDR; LUT;
Apple Log - HDR; 422HQ; Rec.2020 - HDR; Rec.709; Sony HLG; Sony S-Log3; Samsung Log - BT.2020; I hope this information comes from Directory Opus as well

Why not try the script to see if it has what you need? You can always uninstall it afterwards.

2 Likes

image
I downloaded the beta version and made sure it worked well

Woah! You're officially a legend. Thank you!

1 Like

FWIW, consider updating to v13.16.8 to fix the issue where a different row appears visually edited when modifying a value in the list, if it had been previously sorted.