flvファイルから自動でaacを抽出

flvファイルから自動でaacを抽出

radikoRADIKO RECORDERで録音しているが、容量や音質の点からflvのまま録音する設定にしている。

しかしflvのままだとFittleで聴けないので、FLV ExtractAutoHotkeyを使って自動的にaacに変換するようにした。

;Auto-Execセクション
SetTimer, Radiko, % -1000 * 60
Return

Radiko:
	SourceDir := "C:\Radio"
	Loop, %SourceDir%\*.flv
	;サブフォルダも含めたければ、「Loop, %SourceDir%\*.flv, , 1」とする
	{
		SplitPath, A_LoopFileFullPath, , , , NoExt
		IfNotExist, %SourceDir%\%NoExt%.aac
		{
			Run, ..\FLV_Extract\FLVExtractCL.exe -a "%A_LoopFileFullPath%", , , NewPID
			Process, WaitClose, %NewPID%
			FileDelete, %A_LoopFileFullPath%
		}
	}		
Return

SourceDirにRADIKO RECORDERで指定した録音ファイルの保存先フォルダを指定する。

タイマーはAutoHotkeyが起動してから1分後に1度だけ実行されるよう指定した。1度だけにしたのは、定期実行だと録音中にまで実行されてしまうから。

やってることは、以下のような流れになっている。

  1. 指定フォルダ直下からflvファイルを探す
  2. 同名のaacファイルが無ければ、FLV Extractaacを抽出する
  3. FLV Extractが終了したら、元のflvファイルを削除する

AutoHotkeyのLoopには「拡張子を除いたファイル名」って組み込み変数がないから、SplitPathで面倒なことをしている。

AutoHotkeyというかAutoHotkey_Lなんだけど、バージョンが古いとRunのところでPIDを取得できず、抽出中に削除が実行されてしまうかもしれない。まぁFLV Extractの処理は超高速だから、それでも大丈夫だったりするかもしれないけど。

そもそもRADIKO RECORDERの段階でmp3形式で保存しておけば、こんなことする必要は無いんだけど。