Windowsでしか動作しないと思われます。
[STAThread]
public static string GetTitleFromFile(string file)
{
const int index = 21; // タイトル
var app = Type.GetTypeFromProgID("Shell.Application");
if (app is null) return "";
dynamic? shell = Activator.CreateInstance(app);
if (shell is null) return "";
var folder = shell.NameSpace(Path.GetDirectoryName(file));
var item = folder.ParseName(Path.GetFileName(file));
string ret = folder.GetDetailsOf(item, index);
return ret;
}
GetDetailsOf()の引数のindexを変えることで以下のプロパティを取得することが出来ました。
//18.タグ
//19.評価
//21.タイトル
//24.コメント
//27.長さ
//215.サブタイトル
//313.データ速度
//314.フレーム高
//315.フレーム率
//316.フレーム幅
//320.総ビットレート
コメント