#!/usr/bin/perl ################################################ # radiko を聞くスクリプト # 引数で制御する # # ヘルプを表示するにはh # radiko.pl -h ################################################ use strict; use warnings; use Getopt::Std; my %opt; getopts("hc:f:t:",\%opt); if (exists $opt{h}){ print << "HELP"; usage: radiko.pl [-h] [-c channel] [-f outfile] [-t playtime] -h print this message -c channel select play channel default: LFR * FMT TOKYO FM * FMJ J-WAVE * LFR nippon housou * TBS TBS radio -f outfile default: /tmp/channel.flv -t playtime default: 1 hour HELP exit; } my $CHANNEL; if (exists $opt{c}){ $CHANNEL=$opt{c}; } else { $CHANNEL="LFR"; } my $OUTFILE; if (exists $opt{f}){ $OUTFILE=$opt{f}; } else{ $OUTFILE="/tmp/$CHANNEL.flv"; } my $PLAYTIME; if (exists $opt{t}){ $PLAYTIME=$opt{t} * 60 * 60; } else{ $PLAYTIME= 1 * 60 * 60; } unlink $OUTFILE if -e $OUTFILE; my $com = << "CMD"; rtmpdump -v -e -s 'http://radiko.jp/player/swf/player_2.0.1.00.swf' \\ -r 'rtmpe://radiko.smartstream.ne.jp/$CHANNEL/_defInst_' \\ --playpath 'simul-stream?ucid=1dbab2acb98174787146465a40ba9eba' \\ -p 'http://radiko.jp/player/player.html' \\ -f 'WIN 10,1,102,64' \\ -o $OUTFILE CMD print "${com}\nplaytime=$PLAYTIME\n"; my $pid=fork; die $! unless defined $pid; print $pid; if ($pid){ sleep $PLAYTIME; kill 9,$pid; } else{ exec "$com"; }
2011年1月17日月曜日
radikoを聞くperlスクリプト書いた
ポイントはforkして指定した時間で落とすこと
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿