C#で動画ファイルのタイトルを取得

コンピュータ

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.総ビットレート

コメント