Radiko タイムフリー 自動録音スクリプト

最後の週のミューコミ火曜日を録音するPowerShell
以下を適当にタスクスケジューラで毎週叩きましょう

wget.exe(https://eternallybored.org/misc/wget/)
youtube-dl.exe(http://rg3.github.io/youtube-dl/)
AYTHKeyGet.vbs(radiko.jpのタイムフリーをバッチファイルで一括ダウンロードする - はんぺん.net)
を同じフォルダに置く

$DIR = ".\rec\" 
$TITLE = "ミュ〜コミ+プラス"
$CH = "LFR"     #放送局
$FT = "000000"  #開始時刻(hhmmss)
$TO = "005800"  #終了時刻(hhmmss)

#最終水曜日を計算
$DIFF = 3 - [System.Convert]::ToInt32((Get-Date).DayOfWeek)
if($DIFF -gt 0) {$DIFF = $DIFF - 7}
$DAY = (Get-Date).AddDays($DIFF).ToString("yyyyMMdd")

#開始終了時刻整形
$FT = $DAY + $FT
$TO = $DAY + $TO

#Radiko認証
Remove-Item *.m3u8
$AUTHTOKEN = Invoke-Expression -Command 'CScript /nologo AYTHKeyGet.vbs $CH'

#HLS取得
.\wget.exe -q --header="pragma: no-cache" --header="Content-Type: application/x-www-form-urlencoded" --header="X-Radiko-AuthToken: ${AUTHTOKEN}" --header="Referer: http://radiko.jp/apps/js/flash/myplayer-release.swf" --post-data='flash=1' --no-check-certificate -O timeshift.m3u8 "https://radiko.jp/v2/api/ts/playlist.m3u8?l=15&station_id=${CH}&ft=${FT}&to=${TO}"
foreach( $line in Get-Content .\timeshift.m3u8){
    if($line.Contains("radiko")) {
        $PLAYLIST_URL = $line
    }
}

#音声取得
.\youtube-dl.exe -F -x --add-header "X-Radiko-AuthToken:${AUTHTOKEN}" -o "$DIR[$DAY]$TITLE.%%(ext)s" "${PLAYLIST_URL}"

Remove-Item *.tmp.txt
Remove-Item *.m3u8