RecName_Macro.dll ガイド ─ EDCB 録画ファイル名マクロの使い方

RecName_Macro.dll は EDCB/EpgTimer で録画ファイル名を自在に組み立てられるプラグイン。

番組名や日時、放送局名などを好きな順番で並べたり、文字変換までワンストップで済ませたり

録画ライブラリを見やすく整理する場合や、バッチやps1スクリプトで自動処理を指せる時には必ずやるべき設定。

記事では、よく使うマクロと関数、俺が普段使っている命名テンプレートを解説する。

Win11のクリーンインストールがてらに設定の見直しのためにパープレ*1や、cursorのエージェント経由で調べたことのメモ


1.導入手順(おさらい)

  1. EpgTimer動作設定予約情報管理 を開く。ここで RecName_Macro.dll を既定のファイル名プラグインとして指定する。 プラグイン選択ドロップダウンの右にある 設定ボタン** を押すと ini 編集ダイアログが開き、ここで RecName_Macro.dll.ini にグローバル書式を直接保存できる。
  2. 録画時のファイル名に PlugIn を使用する」をオンにし、プラグイン一覧から RecName_Macro.dll を選択。
  3. 予約ダイアログの「録画フォルダ」欄で ファイル名 PlugIn オプション を入力。ここで渡した文字列が その予約専用 の命名ルールになる。

    • オプションを空欄にすると、まず EDCB\RecName\RecName_Macro.dll.ini に保存されている グローバル設定 が読み込まれ、その書式が適用される。ini が存在しない、または書式が未設定の場合のみ、プラグイン内部にハードコードされたデフォルト形式になる。
  4. 逆にオプション欄に書式を入力した場合は、その予約(フォルダ行)に限り ini の設定を 上書き して採用される。

    • 同じ録画フォルダでも予約ごとに異なるオプションを設定可能。
    • 複数フォルダを追加している場合は、各フォルダ項目ごと にオプションを付けられる。
    • 逆に、動作設定の既定プラグイン側には「オプションを指定する欄」が無いため、全予約に共通の形式を適用したいときは 録画プリセット を作って各予約に割り当てる方法が便利。 (出典:EDCB tkntrec版 Readme_Mod.md 〈3. プラグインオプション〉 約 189 行目) 予約ダイアログでの挙動は俺の理解が正しいのか定かではない

2.マクロ

2.1 標準マクロ(全一覧)

マクロ 中身 備考
$Title$ 番組名 予約一覧に表示されるそのまま
$Title2$ 番組名から [字] などのタグを除去 よく使う
$SubTitle$ サブタイトル(番組内容) EPG 次第
$SDYYYY$$STSS$ 開始日時 年月日時分秒まで各種
$ServiceName$ 放送局名
$ONID10$ など 各種 ID 数字で管理したい人向け
マクロ 説明 利用可 備考
$FilePath$ ファイルのフルパス バッチ
$FolderPath$ フォルダパス(末尾 \ なし) バッチ
$FileName$ ファイル名(拡張子なし) バッチ
$Title$ 番組名 両方
$Title2$ 番組名から [] タグ除去 両方
$SDYYYY$ 開始年4桁 両方
$SDYY$ 開始年2桁 両方
$SDMM$ / $SDM$ 開始月2桁 / 1–2桁 両方
$SDDD$ / $SDD$ 開始日2桁 / 1–2桁 両方
$SDW$ 開始曜 両方
$STHH$ / $STH$ 開始時2桁 / 1–2桁 両方
$STMM$ / $STM$ 開始分2桁 / 1–2桁 両方
$STSS$ / $STS$ 開始秒2桁 / 1–2桁 両方
$EDYYYY$ $EDYY$ etc. 終了日時系(SD→ED,ST→ET に置換) 両方
$ONID10$/$ONID16$ OriginalNetworkID 10進/16進 両方
$TSID10$/$TSID16$ TransportStreamID 両方
$SID10$/$SID16$ ServiceID 両方
$EID10$/$EID16$ EventID 両方
$ServiceName$ 放送局名 両方
$SDYYYY28$$ETHH28$ 28時間表記版日時 両方 深夜帯向け
$DUHH$/$DUH$ etc. 番組総時間 (時分秒) 両方
$Drops$ $Scrambles$ ドロップ / スクランブル数 バッチ
$Result$ 録画結果コメント バッチ
$TitleF$ $Title2F$ 禁則文字を全角変換 バッチ
$Genre$ $Genre2$ ジャンル / 詳細ジャンル DLL
$AddKey$ 自動予約キーワード バッチ
$SubTitle$ $SubTitle2$ サブタイトル / 話数抽出版 DLL
tkntrec 追加
$BonDriverName$ BonDriver 名 両方 追加
$BonDriverID$ BonDriver ID 両方 追加
$TunerID$ チューナ ID 両方 追加
$ReserveID$ 予約 ID 両方 追加
$FreeCAFlag$ ノンスクランブルフラグ 両方 追加
$ExtEventInfo$ EPG 詳細テキスト DLL 文字数注意

2.2 tkntrec 版で増えたマクロ

マクロ 内容 使いどころ
$BonDriverName$ 使用ドライバ名 トラブルシュートに便利
$ReserveID$ 予約 ID 連番代わりに
$ExtEventInfo$ 詳細 EPG 長いので要足切り

3.関数(tkntrec 版限定)

目的 書式
文字置換 Tr/旧/新/ $Tr/:///(Title)$
半角→全角 HtoZ() $HtoZ(Title)$
全角→半角 ZtoH() $ZtoH(Title2)$
置換(複数) S/旧/新/.../ $S/\.///\?/?/(Title)$
文字削除 Rm/削除文字/ $Rm!/!(SubTitle)$
足切り Head文字数 $Head25(SubTitle)$

関数は `` の形で括る。入れ子にするときは (($...)) で囲むと安全。


4.俺の定番テンプレート

録画後に実行される ps1 スクリプトで HandBrake で自動でエンコードさせる時の問題回避*2のために日本語含むフルパスで 100字 以下に抑えたい))

録画ファイル名を「番組名+サブタイトル(25 文字)+開始日時」にまとめるシンプルなパターン。

$ZtoH(Title2)$$Head25(ZtoH(SubTitle))$$SDYYYY$_$SDMM$_$SDDD$_$STHH$_$STMM$.ts
  • 番組名$Title2$ を半角化。
  • サブタイトル:全角→半角後、25 文字で尾切り。
  • 日時YYYY_MM_DD_HH_MM 形式。

実際の出力例

元データ
番組名 アニメ劇場X「第1話 新たな旅立ち」[再]
サブタイトル これは非常に長いサブタイトルで、ファイル名に含めるには長すぎます。
開始日時 2025/04/26 19:00

生成されたファイル名:

アニメ劇場Xこれは非常に長いサブタイトルで、ファイ2025_04_26_19_00.ts

変換対応表

元データ列 使用マクロ 変換結果
番組名 $ZtoH(Title2)$ アニメ劇場X
サブタイトル $Head25(ZtoH(SubTitle))$ これは非常に長いサブタイトルで、ファイ
年月日 $SDYYYY$_$SDMM$_$SDDD$ 2025_04_26
時分 $STHH$_$STMM$ 19_00
拡張子 (固定) .ts

5.ハマりどころと対策

  • パス長:Windows の古い API では 260 文字制限 (MAX_PATH) が健在。深いフォルダ構成+長い番組名で簡単に超る。Head で切っておくと安心。
  • 外部エンコーダの制限:HandBrakeCLI 1.7 系は日本語パスで 200 文字前後でも落ちることあり。録画先を D:\Rec など短いパスにしておくと吉。
  • 禁止文字\ / : * ? " < > | は OS が受け付けません。TrS で置換するう。
  • マクロの評価タイミング:ファイル名は 録画開始時 の情報で決まります。途中で EPG が更新されても反映されない。

6.参考リンク

最終更新:2025‑04‑27

*1:参考リンク、サブスク年払いが割引になる招待コード付き。と思ったが招待コード発行できなくなったん

*2:マルチバイト文字含むパスだと100字を超えると、フォルダスキャンで検出されなくなる