インターネットラジオから、StreamRipperを使って、こんな風に録音してます。
[zeke@ace StreamRipper]$ cat check_ripper.sh
#!/bin/sh
cd /home/zeke/StreamRipper/Yggdrasil\ Radio/
PID=`ps ax | grep streamripper | grep -v grep | grep -v check | sed -e 's/^ *//' -e 's/ .*//'`
if [ "${PID}" = "" ]; then
/usr/local/bin/streamripper http://shirayuki.org:9200/ -d /home/zeke/StreamRipper/ -l 9000 -c -q -u "VLC/2.2.6 LibVLC/2.2.6" --quiet >/dev/null 2>&1
fi
rm -f *.core
ls -t *.mp3 | sed -e 's/\$/"\$"/g' | sed -e 's/`/"\\`"/g' | tail -n +31 | awk '{print "rm \""$0"\""}' | sh
/usr/local/bin/eyeD3 -A "Yggdrasil" -G 145 --add-image ../default-album-art.jpg:OTHER --preserve-file-times . >/dev/null 2>&1
cd incomplete/
ls -t *.mp3 | sed -e 's/\$/"\$"/g' | sed -e 's/`/"\\`"/g' | tail -n +2 | awk '{print "rm \""$0"\""}' | sh
cd ../
ls -t *.mp3 | sed -e 's/\$/"\$"/g' | sed -e 's/`/"\\`"/g' | awk '{print "cp -fp \""$0"\" ../Music"}' | sh
cd ../Music
ls -t *.mp3 | sed -e 's/\$/"\$"/g' | sed -e 's/`/"\\`"/g' | tail -n +421 | awk '{print "rm \""$0"\""}' | sh
[zeke@ace StreamRipper]$
このシェルをcronで1日1回実行です。
内容は
- StreamRipperが立ち上がっていなかったら、起動。9000秒(2.5時間)録音し続けます。録音したファイルは曲ごとに分かれて、StreamRipper/Yggdrasil Radio/に貯まります。
- 録音し終わったら、最新30曲を残して削除します。
- mp3ファイルには、StreamRipperが曲名、アーティスト名をつけているので、アルバム名とジャケット写真を追加します。eyeD3コマンドはpipでインストールしたけど/usr/local/bin/に入っているので書き換えます。
- StreamRipper/Yggdrasil Radio/incomplete/内のファイルを削除します。
- StreamRipper/Yggdrasil Radio/ 内の30曲をStreamRipper/Musicにコピーします。
- StreamRipper/Musicから最新420曲を残して削除します。
StreamRipper/Music内には最新2週間分の曲が入っているので、スマホと1日1回自動同期します。
結構このシェルは苦労しました。ファイル名にスペース、ドル記号($)、アクセント記号(`)が入っていることがあるので、それに対応しています。
RHEL9のlsコマンドの仕様変更
RHEL9になって、lsコマンドの表示が
[zeke@ace StreamRipper]$ ls -l Yggdrasil\ Radio/
合計 46268
-rw-r--r-- 1 zeke zeke 2661002 2月 7 16:18 '1000000_BABYMETAL - Doki Doki Morning.mp3'
-rw-r--r-- 1 zeke zeke 2526538 2月 7 16:21 '1000001_ONE OK ROCK - Paper Planes.mp3'
-rw-r--r-- 1 zeke zeke 2809610 2月 7 20:03 '1000002_Itou Kanako - Cross Ache.mp3'
-rw-r--r-- 1 zeke zeke 2711114 2月 7 20:06 '1000003_Dream Ami - Dress wo Nuida Cinderella.mp3'
:
省略
:
[zeke@ace StreamRipper]$
のように、スペースや記号があると、カッコで括られるようになったので、シェルに影響があるのかと思いましたが、
[zeke@ace StreamRipper]$ ls -l Yggdrasil\ Radio/ | cat -
合計 46268
-rw-r--r-- 1 zeke zeke 2661002 2月 7 16:18 1000000_BABYMETAL - Doki Doki Morning.mp3
-rw-r--r-- 1 zeke zeke 2526538 2月 7 16:21 1000001_ONE OK ROCK - Paper Planes.mp3
-rw-r--r-- 1 zeke zeke 2809610 2月 7 20:03 1000002_Itou Kanako - Cross Ache.mp3
-rw-r--r-- 1 zeke zeke 2711114 2月 7 20:06 1000003_Dream Ami - Dress wo Nuida Cinderella.mp3
:
省略
:
[zeke@ace StreamRipper]$
内部では、従来どおりカッコ無しで扱っているようです。文字色と同じで修飾だけのものみたいですね。
SHOUTcastサーバについて
もうなくなっていたかと思っていたのですが、まだ残っていたんですね。
こちらのサイトでは、インターネットラジオの紹介していました。
お勧めのKindle本です!
コメント