録画予約はTvRockなどのGUIなフリーソフトでやる人が多いようですが、私はTVTestのコマンドラインで番組単位で指定しています(例:
TVTest.exe /d BonDriver_PX_W3PE4_S.dll /sid 308 /reccurservice /noview /nodshow /rec /recdelay 50(秒) /recduration 3600(秒) /recexit /recfile filename ) - ( /sid のところは /ch でも指定可) (/recduration 1h10m30s 形式も可) (ファイル名指定は%date%などのマクロも使えます-TVTestのヘルプ(.chm)参照)。このコマンドを例えばwindows「タスクスケジューラ」に登録すれば予約録画になります。
タスクスケジューラへの登録
4月21日 00:00-00:45放送 NHK総合「歴史探偵」の録画の例
schtasksコマンドを使ってタスクスケジューラに1回限りの録画実行を予約する。
schtasks /create /sc once /tr "C:\TVTest_0.7.23\TVTest.exe /d BonDriver_PX_W3PE4_T.dll /ch 11 /reccurservice /noview /nodshow /rec /recdelay 50 /recduration 45m15s /recexit /recfile C:\Users\ユーザー名\Videos\20260000_歴史探偵.ts" /st 23:59 /sd 2026/04/20 /tn TVrec\20260421-0000-ch1
注:地デジのドライバを指定、11はNHKのch番号、放送開始1分前に実行し50秒遅れで録画を開始し放送終了5秒後まで録画し録画後終了(実際は指定時刻より数秒の遅れが生じる)。/tn はタスク名の指定。タスクスケジューラで見るとTVrecフォルダが自動作成されてその中にタスクができている。
- このままだとPCがスリープしていると録画されないので、タスクのプロパティの「条件」にある「タスクを実行するためにスリープを解除する」にチェックを入れる(何故かschtasksのオプションでは指定できないため)。手作業ではなく自動化したい場合は、PowerShellのコマンドを使えば次のように WakeToRunオプションをセットできる
PowerShell -Command "Set-ScheduledTask -TaskName TVrec\20260421-0000-ch1 -Settings (New-ScheduledTaskSettingsSet -WakeToRun)"
- 録画実行後、タスクは自動削除されないのでログ不要なら手で消す。コマンドなら次のように
schtasks /query /tn TVrec\
で一覧取得し、実行は
schtasks /delete /tn TVrec\20260421-0000-ch1
これだけのことですが、間違えずに時間やチャンネルやドライバを指定するのは意外と面倒なので、以上の全てを自動で行うperlスクリプトを書いて番組表からコピペするようにしています。あくまで上級者向けなので解説は無しでプログラムだけ公開します。2つのファイルをダウンロードしてTVrecord.bat を実行します。
TVrecord.bat,
TVrecord.pl