Linux raspberry Pi シェルコマンド シェルスクリプト プログラミング 電子工作

radiko自動録音器で録音番組がカブったときは、再生は止まるけど録音はOK。しかしDropboxアップロードは失敗するのでファイル共有で救出

 

うっかり録音番組がカブって焦った

こちらの記事のradiko自動録音器。

【2022年8月動作確認】radikoの仕様変更に合わせてraspberry Piのラジオ自動録音・再生スクリプトを更新

raspberry Piでラジオを自動録音するシステムを長年使っていましたが、radikoの仕様変更により動かなくなったので対応スクリプトに差し替えました

続きを見る

大変好調でお気に入り番組の再生と録音を連日もくもくと実行してくれる頼もしい存在です。

2020年の大晦日にやった、ニッポン放送のももいろ歌合戦中継も聞き逃せないと言うことで、crontabに設定しておきました。

番組開始時刻になるとあらびっくり、2つのラジオ番組が同時再生されはじめました。どうやらレギュラーの録音番組と時間がカブっていたようです。

一瞬焦りましたが、なんかどっちの番組もちゃんと聞こえるので、大丈夫だろうと放っておきました。

 

killallで全部の再生が止まる

すると、一方の番組が終了したところで両方の番組の音が消えてしまいました。

私のスクリプトでは、番組の終了時間になるとkillall ffplayで再生プログラムを強制終了させているので、まだ終わっていない番組のffplayも止まってしまいました。

しかし録音のffmpegは生きているはずなので、さらに放置しておきました。

 

Dropboxに破損ファイルが上がってた

自動録音システムは録音が終わるとDropboxに自動アップロードします。

ももいろ歌合戦が終わってからDropboxを覗いてみるとファイルは作られいましたが、サイズが妙に小さい。再生することもできず、破損ファイルのようでした。

一瞬、あちゃーと思いましたが、raspberry PiにSSH接続してみると、ちゃんと大きなサイズの音声ファイルができています。raspberry Pi上で再生するとちゃんと聞こえます。

原因はDropboxのアップロードタイミングと上書き禁止にありました。

最初の番組が終了したとき、日付指定でDropboxアップロードが始まります。

このとき録音途中だった別番組のファイルもアップロードされてしまいました。これが破損ファイルの正体。

2番目の番組が終わったときにもDropboxアップロードのスクリプトは走りますが、Dropbox上にはすでに同名のファイルが存在しているのでスキップします。

このため、raspberry Pi上にはちゃんしたファイルが、Dropbox上には破損ファイルが存在する状態になりました。

 

ファイル共有で救出

Dropbox上の破損ファイルを削除してからアップロードスクリプトをもう一度走らせても良かったのですが、私のraspberry Piはファイル共有機能をONにしてあるので、普通にMacのFinderからアクセスして救出しました。

killallを使わない方法も考え中ですが、まぁ続けて聴きたかったら別の端末で聴けばいいやと放置しています。

 

-Linux, raspberry Pi, シェルコマンド, シェルスクリプト, プログラミング, 電子工作