cronを使ってRadikoの番組を録音しているが、crontabのエントリを簡単に書けるようなブックマークレットを書いた。(ベースはChatGPTにお願いした)
Radikoのサイトで録音したい番組のページを開いてブックマークレットを実行すると、crontabのエントリが作成される。
例えば、Radikoのサイトで https://radiko.jp/#!/ts/LFR/20250206030000 を開いた状態で実行すると、
00 03 * * 4 /home/htakeuchi/bin/ripdiko.sh LFR
のようなエントリが出力される。
このブックマークレットは週一の番組を前提にしているため、月〜金で毎日放送している番組なら、
00 18 * * 1-5 /home/htakeuchi/bin/ripdiko.sh TBS
のように手で修正する必要がある。
(function () {
// URL例: https://radiko.jp/#!/ts/LFR/20250206030000
var url = window.location.href;
var match = url.match(/#!\/ts\/([^\/]+)\/(\d{14})/);
if (!match) {
alert("URLから必要な情報が取得できませんでした。");
return;
}
var station = match[1];
var timestampStr = match[2];
var year = parseInt(timestampStr.substring(0, 4), 10);
var month = parseInt(timestampStr.substring(4, 6), 10); // 1~12
var day = parseInt(timestampStr.substring(6, 8), 10);
var hour = parseInt(timestampStr.substring(8, 10), 10);
var minute = parseInt(timestampStr.substring(10, 12), 10);
var date = new Date(year, month - 1, day, hour, minute);
var dowNum = date.getDay();
var formattedHour = (hour < 10 ? "0" : "") + hour;
var formattedMinute = (minute < 10 ? "0" : "") + minute;
var cronEntry = formattedMinute + " " + formattedHour + " * * " + dowNum +
" /home/htakeuchi/bin/ripdiko.sh " + station;
prompt("crontabエントリ:", cronEntry);
})();