SSブログ

Mac radiko録音 スクリプトめも [Mac]

-----------------------------------------------------------------------------------------------------------------------
Mac radiko 録音シェル・スクリプト(radiko4.ksh)をちょいといじって、iOS device 同期とかを
ダラダラーっと追加(黄色文字部分)
※1 OS X 10.8.3 + iTunes 11.0.2 + iPod touch G1,G5、iPad miniなんかで動作を確認
※2 ファストユーザスイッチには未対応(TTY =console を異なるユーザで複数使用している場合など)
-----------------------------------------------------------------------------------------------------------------------
  radiko5.ksh
#!/bin/ksh #----------------------------------------------------------------- # $1:ID (必須) # TBS TBSラジオ # QRR 文化放送 # LFR ニッポン放送 # NSB ラジオNIKKEI # INT INTERFM # FMT TOKYO FM # BAYFM78 BayFm # NACK5 NACK5 # JORF ラジオ日本 # YFM FM yokohama # --------------------- # ABC ABCラジオ # MBS MBSラジオ # OBC ラジオ大阪 # CCL FM COCOLO # 802 FM802 # FMO FM大阪 # # $2:OFILE (必須) # 任意のファイル名(UTF-8可) # $3:TIME (必須) # 録音時間(分) # # -t "VALUE" (省略可) # タイトル # -a "VALUE" (省略可) # アーティスト # -A "VALUE" (省略可) # アルバム # -g "VALUE" (省略可) # ジャンル #----------------------------------------------------------------- export LANG="ja_JP.UTF-8" LC_ALL="ja_JP.UTF-8" USAGE=\ "Usage:$0 ID OFILE TIME [-t \"TITLE\"] [-a \"ARTIST\"] [-A \"ALBUM\"] [-g \"GENRE\"]" if [ $# -lt 3 ];then print "${USAGE}\n`head -n36 $0 | grep -v ksh | sed 's/^#//g' `" 1>&2 exit 1 fi ID="$1" OFILE="$2" TIME=$3 CHK_INT=3 # shellキックユーザーGUI login チェック間隔(sec) WAIT=60 # shellキックユーザーGUI login からiTunes起動実行までの待ち(sec) ISWAIT=3 # iTunes ライブラリ追加待ち間隔(sec) (iTunes_DIRからファイルが消えるまで) STAT=0 # shellキックユーザーlogin 内部フラグ #------------------------------------------# GetAuth_SRC="${HOME}/get_auth.sh" #------------------------------------------# TOUT=1800 # sec DELAY=20 # sec RDIR=/tmp CODEC=libmp3lame ####CODEC=libfaac ((TIME=TIME*60+DELAY)) DATE1=$(date +%Y-%m-%d_%H.%M.%S) DATE2=$(echo ${DATE1} | cut -c1-10) YEAR=$(echo ${DATE1} | cut -c1-4) shift 3 while getopts a:g:t:A: opt do case ${opt} in t) TITLE="${OPTARG} ${DATE2}";; a) AUTHOR="${OPTARG}";; g) GENRE="${OPTARG}";; A) ALBUM="${OPTARG}";; *) echo ${USAGE} 1>&2 exit 1;; esac done if [ "${CODEC}" = "libmp3lame" ];then RFILE="${RDIR}/${ID}_${OFILE}_${DATE1}.mp3" else RFILE="${RDIR}/${ID}_${OFILE}_${DATE1}.m4a" fi ### authentication RAuth=`${GetAuth_SRC}` set -- ${RAuth} playerurl=$1 authtoken=$2 /usr/local/bin/rtmpdump -B ${TIME} -m ${TOUT} -qvr \ rtmpe://w-radiko.smartstream.ne.jp/${ID}/_definst_/simul-stream.stream \ -W ${playerurl} -C S:"" -C S:"" -C S:"" -C S:${authtoken} \ -o - 2>/dev/null | \ /opt/local/bin/ffmpeg -y -i - -vn -acodec ${CODEC} -ar 44100 -ab 196608 -ac 2 \ -metadata author="${AUTHOR}" \ -metadata artist="${AUTHOR}" \ -metadata title="${TITLE}" \ -metadata album="${ALBUM}" \ -metadata genre="${GENRE}" \ -metadata year="${YEAR}" \ "${RFILE}" > /dev/null 2>&1 #---- Lion 10.7.X 2012/03/19 if (( $(sw_vers -productVersion | awk -F"." '{ print $1$2}') >= 107 )); then F_DIR="Automatically Add to iTunes.localized" else F_DIR="iTunes に自動的に追加" fi ### iTunes_DIR=`find "${HOME}" -name "iTunes に自動的に追加" -type d | grep -vi trash` iTunes_DIR=`find ${HOME} -name "${F_DIR}" -type d | grep -vi trash` if [ "${iTunes_DIR}" ]; then cp "${RFILE}" "${iTunes_DIR}" if [ "$?" = "0" ]; then rm -f "${RFILE}" ### console login check ### Me=`who am i | awk '{ print $1}'` while true do who | awk '{ print $1" "$2}' | while read U C do ### U=console login user, C=tty ### if [ "${U}" = "${Me}" ] && [ "${C}" = "console" ]; then STAT=1 break fi done if [ "${STAT}" = "1" ]; then break else ### login wait ### sleep ${CHK_INT} fi done sleep ${WAIT} ### iTunes 起動 ### open /Applications/iTunes.app while true do #### iTunes ライブラリ追加待ち ### if [ ! -f "${iTunes_DIR}/`basename \"${RFILE}\"`" ]; then break else sleep ${ISWAIT} fi done #### iOS deviceの同期など ### osascript \ -e 'tell application "iTunes"' \ -e 'set so to sources whose kind = iPod' \ -e 'repeat with t in so' \ -e 'update t' \ -e 'end repeat' \ -e 'end tell' fi fi

nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

iOSデバイス同期とか。懐かしのxgolgo ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。