RHEL9で作る自宅サーバ:StreamRipperでエアチェック

RHEL9パソコン自宅サーバ

インターネットラジオから、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本です!

コメント