LoginSignup
14
13

More than 5 years have passed since last update.

NHKネットラジオをVLCで録音するスクリプト

Last updated at Posted at 2012-04-01

そんでもってcronで定期予約をして語学勉強したい。

VLCでストリームをmp3に変換してファイル出力するスクリプト。
第一引数に、録音時間を指定できます。

recording.sh

#! /bin/bash

DEST_FILE_NAME_BASE=`date +%Y%m%d-%H%M`

## 録音時間
if [ $# = 0 ]
then
  RECORDING_MINUTES=15
else
  RECORDING_MINUTES=$1
fi

DEST_DIR="/Users/flo_jack/NHK_Radio"

DEST_FILE="$DEST_DIR/$DEST_FILE_NAME_BASE.mp3"

# ストリームには10〜20秒のタイムラグがあるため、30秒余分に保存
RECORDING_TIME=$(($RECORDING_MINUTES * 60 + 30))

# らじる★らじるのラジオ第2放送ストリーム
STREAM_SOURCE="mms://a57.l12993246056.c129932.g.lm.akamaistream.net/D/57/129932/v0001/reflector:46056"
# ラジオ第1ストリーム
#STREAM_SOURCE="mms://a33.l12993146032.c129931.g.lm.akamaistream.net/D/33/129931/v0001/reflector:46032"
# NHK-FMストリーム
#STREAM_SOURCE="mms://a52.l12993346051.c129933.g.lm.akamaistream.net/D/52/129933/v0001/reflector:46051"

if [ ! -e "$DEST_DIR" ]
then
  mkdir "$DEST_DIR"
fi

/usr/local/bin/vlc -I rc $STREAM_SOURCE :sout="#transcode{acodec=mp3}:std{access=file,mux=raw,dst=$DEST_FILE}" --run-time $RECORDING_TIME vlc://quit

録音時間以外の指定、たとえば保存場所の指定などを引数から行うことは、このスクリプトではできません。シェルスクリプトに不慣れなものですみません。
パスはMacな感じで書いてあるため、使用している環境に応じて書き換える必要があります。VLCのパスも同様です。Macの場合、VLCはVLCを右クリックして『パッケージの内容を表示』してから Contents/MacOS/VLC に存在します。VLCをアプリケーションフォルダにインストールしていれば /Applications/VLC/Contents/MacOS/VLC となるでしょう。私はこのシンボリックリンクを /usr/local/bin/vlc になんとなく作りました。

10分番組を記録する使い方。

recording.sh 10

ラジオ英会話(月~金曜日の6:45から15分間)を保存する場合のcrontab例

45  6   *   *   1-5 /Users/flo_jack/NHK_Radio/recording.sh 15

当然ながら、この時間にコンピュータを起動しておく必要があります。
放送は実際の時間より10〜20秒の時間差をもって送信されますので、時間ちょうどにcronを設定しても、うまいぐいあいに開始より先に記録が始まります。

14
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
13