Skip to content

Instantly share code, notes, and snippets.

@ym405nm
Created December 10, 2017 07:48
Show Gist options
  • Save ym405nm/1de2993ae12e1b90f75c0ac4cf681ede to your computer and use it in GitHub Desktop.
Save ym405nm/1de2993ae12e1b90f75c0ac4cf681ede to your computer and use it in GitHub Desktop.
壊れかけのRadioスクリプト

壊れかけのRadio(スクリプト)

思春期に~少年から~(自粛

ということで、 #ssmjp Advent Calendar 12月7日の記事になります。

https://adventar.org/calendars/2286

動機

いつもお世話になっている #ssmjp の Slack で music チャンネルというものがあります。 ここでは普段から音楽に関するいろいろな話題をやっているのですが、 たまにラジオの話になることがあります。(だいたい原因は私ですが...) ラジオ聞いてますよ~とあんまり言うことが私生活ではないのですが、 こういうところだと好きな人が多いので気軽にそういう話ができますよね。

そこで、普段から私がラジオを楽しんでいる環境をご紹介して、 現在過去にぶち当たった問題についてお話ししたいと思います。

※ どこかで #ssmjp の勉強会で喋りたかったのですが、 発表する機会がなかったのでこちらで。

やりたいこと

  • radio を定期録音して外出先で楽しみたい
  • できればこの作業を簡単にしたい

よくある質問

radiko あるやん

そもそも、radiko 依存するのはあまりよくないですね。

あとタイムフリー機能で番組終了後聞けるのですが、ここでは細かいこと 簡単に言うと1週間経つと聞けなくなります。 ちなみに、私はプレミアム会員です。

...というか、あのradiko のインタフェース使いにくくないですか? ちょっとラジオ聴こうというのには別に問題ないのですが、 定期的にタイムフリー・エリアフリーしていると好きな番組にいくまで1分くらいかかって 結構ストレスに感じることがあるんですよね。

radiko 録音すればいいやん

ネットで検索すれば便利な録音ツールありますね。 あれ使ったら別に問題ないのですが、非公式のものを使うのは radiko の仕様上簡単に作れるみたいなんですが(未検証)、 radiko 側の気分で今後仕様変更されたり、厳密に禁止されたりする可能性があるので、 今回は選んでいません。

実は、これを作り始めたのは radiko のプレミアム機能が始まる前だったりするんですよね。 ですので、このへんは全部後付けです。

ラジオ

まずはラジオです。 Panasonic製の「ラジオレコーダー RF-DR100」というものを使っています。 タイマー設定ごとにフォルダをわけて mp3 形式で保存してくれます。 昔はループ状のアンテナだったんですが、今はこういうヘリコプター型が主流なのかな。

5年前くらいに買いましたので、今ではもっといいのあるかな。 でも全然劣化せずに使えてます。

http://panasonic.jp/radio/p-db/RF-DR100.html

抽出PC

先のラジオ機器が USB でのデータ出力に対応していますので PC で取り出します。 本当はサーバ的なのを用意して定期的に USB を ON/OFF して自動的に取り出してもいいのですが※、 そういう用途の機器を持っていないので、ここは手動になっています。しょうがないね。

※ ラジオの仕様で USB 接続中にはラジオの機能を使用できない

ラジオから取り出せるファイルはフォルダ構成が決まっていますので保存のために フォルダ分けのスクリプトを作りました。

下図のようにファイル名が

連番 + 日付 + 録音開始時間 + AM/FM + 周波数 .mp3

になっているので、これをもとにフォルダ分けしています。 最初のラジオに格納されているフォルダがタイマー録音ごとにはなっているのですが、 曜日ごとに出演者が変わる帯番組は同一タイマーとして保存されていますが、 このあたりもスクリプトでフォローできるようにしています。

壊れかけの問題点

このあたりを数年運営していますが、いろいろ問題点が出て困っています。

曜日がずれる

スクリプトを作ったときにアレ?と思ったんですが、 録音日時から曜日に変換してフォルダ分けをしていたんですが、 12時以降の深夜放送になるとズレるんですよね。

例えば「月曜深夜1時」という放送は、当然日付が変わって翌日の 01:00 になるわけで、 何気なく月曜日の番組として考えてたものがシステム的には火曜日になるんだなと。 当たり前だよなぁ。

25時の概念で苦労しているシステム屋さんも多いんだなーと思った感じです。

連番がずれる

このラジオの唯一の欠点なんですが、ラジオを録音するとファイルに連番がふられて、 それが DB でよく使う「auto_increment」な考え方なのかなと勝手に思ってたんですが、 どうやらそうではないみたいで...

容量の問題で古いのを消そうとしたときに、001~150までのファイルがあったとして、 古いもの、例えば 001~100まで消して、101~150までを残して運用したとき、 次の番号が151ではなく、001に戻るんですよね... この仕様がスクリプトと相性が悪くおかしな挙動をしているようです。困った...

おわりに

いろいろ問題があるものは年末年始の宿題にしようかと思います。

最近では、ここまでやってくれるラジオもありそうなので、 そろそろ買い換えようかなと考えています。 同じような趣味をお持ちの方、お勧めのものを教えてください。

また、いつもお世話になっています #ssmjp の皆さま、 今後とも宜しくお願い致します。

明日12月8日は欠番になっていまして、 翌9日は music チャンネルでも良くお話しさせて頂いている junjun さんです~お楽しみに!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment