<station> <start_date> <start_time>
<station> には放送局を指定します. 指定できるのは,
- r2 (第2放送),
sapporo-r1, sendai-r1, tokyo-r1, nagoya-r1, osaka-r1,
- hiroshima-r1, matsuyama-r1, fukuoka-r1 (ここまで第1放送),
+ hiroshima-r1, matsuyama-r1, fukuoka-r1 (ここまでAM放送),
sapporo-fm, sendai-fm, tokyo-fm, nagoya-fm, osaka-fm,
hiroshima-fm, matsuyama-fm, fukuoka-fm (ここまでFM放送) です.
my $title = '';
#ラジオ深夜便対策
- if ($option{shinyabin} && $program->{list}[0] =~ /^ラジオ深夜便/) {
- $title = 'ラジオ深夜便';
- $option{li} = '2,3';
+ if ($option{shinyabin} && $program->{list}[0] =~ /^関西発ラジオ深夜便/) {
+ $title = '関西発ラジオ深夜便'. $program->{list}[2];
+ $title =~ s/▽天気概況//g;
+ $title =~ s/・?各地の天気と予想気温//g;
+ $option{li} = '';
+ }elsif ($option{shinyabin} && $program->{list}[0] =~ /^ラジオ深夜便/) {
+ $title = 'ラジオ深夜便'. $program->{list}[1]. $program->{list}[2];
+ $title =~ s/▽天気概況//g;
+ $title =~ s/・?各地の天気と予想気温//g;
+ $title =~ s/【アンカー】/_/g;
+ $option{li} = '';
}
#タイトル取得・エスケープ
use Time::Piece;
use Encode;
-my $FILE_PERMISSION = 644;
-my $MAX_TITLE_LENGTH = 160;
+my $FILE_PERMISSION = 644;
+my $MAX_PATH_BYTES = 230;
デフォルトは $end_margin_sec 秒です.
<放送局ID> : 地域(sapporo, sendai, tokyo, nagoya, osaka, hiroshima, matsuyama, fukuoka) と
- 放送(r1, r2, fm) の組み合わせ. ただし r2 には地域なし.
- ex) tokyo-r1, matsuyama-fm, r2
+ 放送(AM放送=>r1, FM放送=>fm) の組み合わせ.
+ ex) tokyo-r1, matsuyama-fm
<録音長(分)> <タイトル> を省略したときには, get-nhk-title.pl を使用して取得します.
die "無効な引数です." unless ($y && $m && $d && $time_h <= 24 && $time_h >= 0 &&
$time_m <= 59 && $time_m >= 0 && $min > 0 && length $title);
-my $file_name_base = sprintf('%04d-%02d-%02d_%02d%02d_nhk-%s_%s_%dmin', $y, $m, $d, $time_h, $time_m, $station,
- substr($title, 0, $MAX_TITLE_LENGTH) , $min);
-my $mp3 = "${file_name_base}.mp3";
-my $txt = "${file_name_base}.txt";
+#保存ファイル名 (長さ制限内に収める)
+my $base = sprintf('%04d-%02d-%02d_%02d%02d_nhk-%s_%dmin_%s', $y, $m, $d, $time_h, $time_m,
+ $station, $min, $title );
+my $len_bytes_save_dir = bytes::length($ENV{RADIKO_SAVE_TO}. '/.mp3');
+$base = substr($base, 0, -1) while bytes::length($base) + $len_bytes_save_dir > $MAX_PATH_BYTES;
+my $mp3 = "${base}.mp3";
+my $txt = "${base}.txt";
my $duration = get_duration_string($min, $end_margin_sec);
(length $ffmpeg_seg_max_retry ? "--ffmpeg-seg_max_retry $ffmpeg_seg_max_retry " : '').
"$station $duration $mp3 ".
($is_logging_mode ? ">> $txt; " : '; ').
- "$CHMOD $FILE_PERMISSION $file_name_base*.mp3; ";
+ "$CHMOD $FILE_PERMISSION ${base}*.mp3; ";
my $at_time = sprintf('%d:%02d %02d.%02d.%02d', $time_h, $time_m, $d, $m, ($y - int($y/100)*100 ) );
my $cmd = qq{$ECHO -e '$BASH << EOC\\n$rec_cmd\\nEOC' | $AT "$at_time"};