コマンドラインでのラジコ(radiko.jp)の録音42010/04/08

radiko.jpの仕様変更でプロトコルが変わった模様。

radiko.jpのお知らせ 2010.04.07 セキュリティの強化について参照

対応方法

  1. rtmpdumpを最新にする(2.2b 2010-03-22) :rtmpdump
  2. rtmp:をrtmpe:に変更

radiko.jpを聴く簡易アプリ Ver.0.4(1)2010/04/03

radiko.jpを聴く簡易アプリ Ver.0.4(1)

配布

変更点

  • cron、コマンドライン対応
  • iCal連携時の繰り返しスケジュール再生bugfix
  • スリープからの復帰は行えません(iCalに機能無し)。
  • フリーです。

コマンドラインでのラジコ(radiko.jp)の録音32010/04/01

radiko.jpをrtmpdumpで録音した時、

(多分)音質が良くて小さいファイルへの変換方法

 

ffmpegとMac標準のafconvertを使用する。

$ ffmpeg -vn -i input.flv  temp.wav
$ afconvert temp.wav -f m4af output.m4a
$ rm temp.wav

もっと適切な方法/パラメータがあるのかもしれないが

ffmpegだけよりよい音質のような気がする。

中間ファイル(wav)が大きくなるのが問題。

 

サイズの例

sample.flv	6.9M 
temp.wav	213M
afconv.m4a	18M (afconvert)
ffmpeg.m4a	36M (ffmpeg -aq 0で変換,encoder: Lavf52.56.0)

radiko.jpを聴く簡易アプリ Ver.0.3(4)2010/03/28

radiko.jpを聴く簡易アプリ Ver.0.3(4)

配布

変更点

  • AppleScript対応
  • iCalとの連携によりスケジュール再生
  • 指定時間後終了、指定時間後Macスリープが可能
  • おやすみタイマーとして動作
  • スリープからの復帰は行えません(iCalに機能無し)。
  • フリーです。

コマンドラインでのラジコ(radiko.jp)の録音22010/03/25

MacOS X 10.2,FreeBSD 7.1で確認

変更点

  • aacに変換して1本のファイルに結合
    • aacだと再生時のスキップ等が可能になる
    • aacはファイルを結合するだけで処理が簡単
#!/bin/sh
LANG=C; export C

FDIR=/Users/buimemo/radiko-flv
ADIR=/Users/buimemo/radiko-aac

STIME=`/bin/date +%s`
RTIME=$3
SDTIME=`/bin/date +%Y-%m%d-%H%M-$$F`

while : ; do
	DTIME=`/bin/date +%Y-%m%d-%H%M-$$`
	echo "### $1-$2-${DTIME}.flv ###"
	/usr/local/bin/rtmpdump \
	   -B ${RTIME} \
	   -qv \
	   --timeout 10 \
	   -r rtmp://radiko.smartstream.ne.jp/$2/_defInst_/simul-stream \
	   -o ${FDIR}/$1-$2-${DTIME}.flv
	echo
	NTIME=`/bin/date +%s`
	RTIME=`/bin/expr $3 - ${NTIME} +  ${STIME} `
	if [ 0 -ge ${RTIME} ]; then
		break;
	fi
done

/usr/bin/du -sh ${FDIR}
echo
cd ${FDIR}
FLVFILES="$1-$2-????-????-*-$$.flv"
/bin/ls -lh ${FLVFILES}
echo
/bin/date
echo
echo "#######################################################"
for i in ${FLVFILES} ; do
	/usr/local/bin/ffmpeg -v 0 \
		-i ${i} -acodec copy \
		${ADIR}/${i%%.flv}.aac
done
echo
cd ${ADIR}
ls -lh ${FLVFILES%%.flv}.aac 
echo  "#######################################################"
AACFC=`ls -lh ${FLVFILES%%.flv}.aac | /usr/bin/wc -l`
echo
if [ ${AACFC} -eq 1 ]; then
	mv  ${FLVFILES%%.flv}.aac \
		$1-$2-${SDTIME}.aac
else
	cat    ${FLVFILES%%.flv}.aac \
		>  $1-$2-${SDTIME}.aac
	/bin/rm ${FLVFILES%%.flv}.aac 
fi
echo
ls -lh  $1-$2-${SDTIME}.aac
echo
/usr/bin/du -sh ${ADIR}
echo
# end

  • crontabの例(Mac)
MAILTO="" #メールを送信しない場合
#minute hour    mday    month   wday    command
57	12	*	*	1-5	/Users/buimemo/bin/RadikoRecord Kira TBS 9300

ラジコの録音のためのrtmpdump2010/03/19

radiko.jpの録音のための RTMP Dump

RTMPDump v2.2aで確認

  • ソースコードの入手
$ svn co svn://svn.mplayerhq.hu/rtmpdump/trunk rtmpdump 
  • Mac OS X(10.6で確認)
$ make posix

  • FreeBSD(7.1)
$ gmake posix
  • 録音例1
    • TBSを1時間録音
$ rtmpdump -B 3600 \
    -vr rtmp://radiko.smartstream.ne.jp/TBS/_defInst_/simul-stream \
    -o tbs.flv

  • 録音例2
    • J-WAVEをタイムアウト300秒、SOCKS4 prox使用して1時間録音
    • SOCK4 proxy serverで port 1935を許可
$ rtmpdump -B 3600 --timeout 300 --socks proxy:1080 \
    -vr rtmp://radiko.smartstream.ne.jp/FMJ/_defInst_/simul-stream \
    -o j-wave.flv

  • 再生はVLCまたはRealPlayerで可能
  • 問題
    • 録音が途中停止することがある。原因が追い切れていない。
    • (ffmpegのと違い、途中で停止しても終了する。)

ラジコの録音のためのffmpeg2010/03/18

radiko.jpの録音のためのffmpeg

FFmpeg version SVN-r22585で確認

  • ソースコードの入手
$ svn co svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg

  • Mac OS X (10.6で確認)でのコンパイル
$ ./configure --enable-swscale --enable-gpl --enable-pthreads
 
  • FreeBSD(7.1)でのコンパイル
$ patch < /usr/ports/multimedia/ffmpeg-devel/files/patch-libavdevice-bktr.c
$ patch < /usr/ports/multimedia/ffmpeg-devel/files/patch-libavdevice-oss_audio.c
$ patch < /usr/ports/multimedia/ffmpeg-devel/files/patch-libavformat-udp.c
$ ./configure --enable-swscale --enable-gpl --enable-pthreads
$ gmake   # makeではだめ

  • 録音例 TBSを1時間録音
$ ffmpeg -t 1:00:00 \
   -i rtmp://radiko.smartstream.ne.jp:1935/TBS/_defInst_/simul-stream  \
   -acodec copy tbs.aac

  • 問題
    • proxy経由にならない
    • タイムアウトが短い?途中で停止していることがある模様
Google Analytics使用