録画マシンをこれまでより小型のものにするべく、データの移行をしておりまして、ちょっと迷ったので備忘録。
録画マシンではMirakurun、EDCBを利用したテレビの録画と、どがらじを利用したラジオの録音を行っています。
テレビ録画のほうは、AppData内のデータとプログラムフォルダをそのままコピーしてやればいいんですが、どがらじの場合、AppDataの中身をコピーしただけだと、録音予約が移行できません。
最初なんでやと思っていたのですが、よくある質問に書いてありました。
なぜ管理者権限が必要なんですか?
ラジオの予約録音にはWindowsのタスクスケジューラが使用されています。環境や状況によって、タスクスケジューラへのタスクの追加や削除に管理者権限が必要だからです。
というわけで、Windowsのタスクスケジューラ機能を利用しているため、単にフォルダコピーだけでは移行できないということです。
さて、タスクスケジューラなんですが、番組ごとにスケジュールが作成されるため、番組分のスケジュールをエクスポート、インポートする必要があります。
残念ながら標準機能では一括エクスポート、インポートができません。
PowerShellで一括エクスポート
とはいえタスクスケジュールの処理はコマンドで対応可能なため、バッチを作ってやれば可能です。
こちらのブログ記事を参考に、一括でスケジュールをエクスポートするスクリプトを実行します。
どがらじではタスクスケジューラに専用のフォルダを設けて、その中にスケジュールを作成しているので、どがらじスケジュールだけ取得可能なように元記事のベースパスを変更しています。
PowerShellで一括インポート
エクスポートできたら新しいマシンへのインポートです。
が、エクスポートしたXMLファイルをそのままインポートすることはできません。
なにせマシンが違うので、ユーザーのUIDが変わってますので。
というわけで、一度新マシンにインストールしたどがらじで適当に録音予約を作って、そのスケジュールを一度エクスポートしてください。
エクスポートしたXMLファイルを開くと、
のように、UserIDが記載されているので、これをコピーして、先にエクスポートしていたXMLファイルの同じ場所を先ほどコピーしたUIDで置換します。
録画数x2やるのは面倒なので、エディタのファイルから置換の機能を使いましょう。
あとは上記ブログ記事にあったインポート用スクリプトを少し書き換えた下記のスクリプトを実行することで完了です。
WakeUpフォルダとRadioRecorderフォルダそれぞれに登録するために二回実行させているだけです。(どうせ一回しか使わないので冗長に丸っとコピーしてるだけ)