Overview:
This script imports several columns, showing details about video/movie files, from Icaros into Directory Opus.
Icaros is a free tool which provides additional video information and thumbnailing capabilities to the Wiindows shell. The thumbnailing capabilities are automatically used in Opus, but the extra columns Icaros adds aren't, unless you install this script.
These columns are included at the time of writing, but the script should automatically import any additional ones added in later versions of Icaros (as long as their identifiers still start with Icaros.
):
- Audio tracks (tells you the audio codecs used by the file)
- Bit depth
- Contains Chapters
- Content compression
- Subtitles
- Subtitle tracks (tells you the subtitles and their formats, if any, used by the file)
- Video trakcs (tells you the video codecs used by the file)
Installing Icaros:
Before using the script, Icaros needs to be installed. Like many free video tools, it doesn't seem to have its own website but can be found on some popular forums:
- - Icaros Development (the Icaros author posts here)
- Icaros 3.2.1 Free Download - VideoHelp
- Download Icaros - MajorGeeks
After installing Icaros, you should open its configuration window and make sure the Properties option on the left is turned on. That is what adds the columns to File Explorer, and they won't work in Opus unless that is on.
If you have problems with the script, make sure the columns exist in File Explorer before worrying about Opus! I found I had to reboot the machine for them to appear in Explorer's list of available columns.
The script was tested with Icaros v3.1.0 and v3.2.0 on Windows 10 x64.
Installing the script:
Requires Directory Opus Pro 12.14 or above.
- Download: Icaros_video_columns.vbs.txt (1.3 KB)
- Open Settings > Preferences / Toolbars / Scripts.
- Drag Icaros_video_columns.vbs.txt to the list of scripts.
Using the columns:
Several new column will now be available, categorised under:
- Script > Icaros video columns
You can display, sort and group using the column the same as you would normal built-in columns. For example, right-click the column header, or use the Folder Options dialog.
You can also refer to the column in commands which you can place on toolbar buttons, menu items, hotkeys, etc. Use the menus above the button editor to build appropriate commands. Ask in Help & Support if you get stuck.
To use the columns for searching, use Tools > Find Files > Advanced tab, and set up one or more Script column clauses to match (or exclude) the things you are interested in:
(Example screenshot shows columns from another script. Column names will be slightly different, but this shows the general idea.)
History:
1.1 (08/Apr/2021):
- Contains Chapters column now reports Yes and No instead of -1 and 0.
1.0 (14/May/2019):
- Initial version.
Script code:
The script code from the download above is reproduced below. This is for people browsing the forum for scripting techniques. You do not need to care about this code if you just want to use the script.
option explicit
Dim strYes, strNo
strYes = "Yes"
strNo = "No"
Function OnInit(initData)
initData.name = "Icaros video columns"
initData.version = "1.1"
initData.copyright = "(c) 2019-2021 Leo Davidson"
initData.url = "https://resource.dopus.com/t/icaros-video-information-columns/32513"
initData.desc = "Import columns added by the Icaros shell extension into Opus (requires Icaros is installed and Properties enabled in its config window)"
initData.default_enable = true
initData.min_version = "12.14"
Dim props, prop, col
Set props = DOpus.FSUtil.GetShellPropertyList("Icaros.*", "r")
For each prop in props
Set col = initData.AddColumn
col.name = prop.raw_name
col.method = "OnIcarosColumn"
col.label = prop.display_name
col.justify = "left"
col.autogroup = true
col.userdata = prop.pkey
If prop.raw_name = "Icaros.ContainsChapters" Then
col.match.push_back strYes
col.match.push_back strNo
End If
Next
End Function
Function OnIcarosColumn(scriptColData)
scriptColData.value = scriptColData.item.shellprop(scriptColData.userdata)
If scriptColData.col = "Icaros.ContainsChapters" And Not IsEmpty(scriptColData.value) Then
If scriptColData.value = -1 Then
scriptColData.value = strYes
Else
scriptColData.value = strNo
End If
End If
End Function