EY-Office ブログ

長年の悩みが解決した(RSSが好き)

皆さんはラジオ聞きますか? 私は学生の頃はよく聞いていましたが働くようになってからは聞かなくなってしましたが、あることをきっかけにまた聞くようになりました。

ただしラジオを録音して聞くのにはいろいろと問題が起き何度も構成を変えて来ましたが、満足できる環境にはならず悩んできました。しかし最近に素晴らしいアイデアが浮かび悩みが解決しました!

Radio Photo by Harry Grout on Unsplash

ラジオ

だいぶ前になりますが、クレジットカードのポイントで防水ラジオをもらいました。防水なのでお風呂に置きました、音楽番組も良いですが以下のような番組が気に入りました。

Growing Reedは2005年にスタートしたインタビュー番組ですが、キャストの “おかだじゅんいち” がジャニーズ V6 の岡田准一だと気がついたのは聞き出してからだいぶ経ってからでした ^^)

Elgato EyeTV 250 Plus

ラジオでリアルタイムに聞くのはたいへんです、その頃 TV(まだアナログ放送)は Elgato EyeTV 250 Plus というMac用のテレビチューナー搭載ビデオキャプチャ+iMacで見ていました。このチューナーはFMも受信出来たので、これで録音して聞いていました。iMacのディスクを共有し開発用MacbookProでマウントして再生していました。

ちなみ EyeTV 用のソフトは良いものでした、その後国産テレビチューナーにしましたが貧相なソフトでした・・・・

Mac用 radiko録音ソフト

2011年にアナログ放送が終わり、EyeTV が使えなくなり後国産テレビチューナーに移行しました。そのころには インターネットラジオ radiko が始まったので、Macで動く録音ソフトで録音し、上と同じようにして聞いていました。

しかし、このradiko録音ソフトはUIが酷く、何度も録音に失敗していました・・・・

Linuxサーバー + rtmpdump + Web + email

そんな時、Linuxサーバー上で rtmpdump というソフトを動かし録音出来る事を知り ubuntuでradikoを予約録音する ~radikoを録音できるところまで~ のコードを使い。開発サーバーで録音出来るようになりました。

録音したファイルはサーバー上の nginx で公開し(一般公開ではなく私にのみ公開)、録音終了後ダウンロード用URLを書いたメールを私宛に送り。メールのURLをクリックしダウンロードしてから聞くようになりました。

これで、安定して録音したラジオを聞けるようになりましたが、横着なものでメールのURLをクリックしダウンロードするのがダルいなぁ〜と思うようになりました。

Linuxサーバー + rtmpdump + Dropbox

この頃は、Mac, iPhone/iPad の情報共有でDropboxを使っていました。
DropboxはLinuxをサポートしている事に気がつき、サーバーにもDropboxをインストールしてラジオの録音データをDropboxで共有出来るようになりました。素晴らしい!

2017年にタイムフリーが始まりましたが、当初はジャニーズ事務所所属タレントの録音はありませんでした ^^); Growing Reedは大好きな番組なので、やはりこの録音ソフトは必要でした(2018年にこの制限は無くなったようです)。

しかし、この時代もDropboxの台数制限が始まり使えなくなりました! 有料版に移行しても良かったのですが ¥1,200/月は高いので悩み、あきらめました。

Linuxサーバー + rtmpdump + Google Drive

Dropboxが駄目ならiCloud Driveにしようかと思ったのですが、Linuxはサポートしていませんでした。そこで Google Drive に乗り換え バックアップと同期 アプリをインストールしました。

しかし、Dropboxに比べると Google Drive の同期は遅く、メインに使っているMacbook Proの同期が始まるまで時間がかかりました。しかも強制的に同期するボタンが無く本当にフラストレーションがたまっていました。

Google Driveは良い印象がなかったので、Mac, iPhone/iPad の情報共有は iCloud に移行しました。

Linuxサーバー + rtmpdump + Web + RSS + Podcast

ところで皆さんも Rebuild.fm などの Podcast を聞いていますよね。私も幾つかの Posdcastを Mac のPodcastアプリ(少し前まではiTunes)で聞いています。仕事をしながら 録音したラジオやPodcastを聞いています。

数日前の寝る直前にヒラメキました! Podcastは音声ファイルをhttpで公開し、情報をRSSで配信しているんだよな。録音したラジオもhttpで(自分向けに)公開しているので、(自分向けに)RSSだけつくればPodcastアプリで再生出来るのでは!?

GoogleポッドキャストのRSSフィード要件 というドキュメントを見ると簡単そうです、Rebuild.fm などいくつかのポッドキャストのRSS内容を見ながら手動でRSSファイルを作り、Podcastアプリに登録すると再生出来ました!

Poscast

その後、Ruby + ERB を使い以下のようなコードで無事にポッドキャスト用RSSが配信出来るようになりました。

#!/usr/bin/env ruby
require 'erb'

RADIKO_PATH = "/秘密"

@mp3s = Dir.glob(RADIKO_PATH + "*.mp3").sort.map do |path|
  name = desc = File.basename(path)
  sec = name.sub(/.*_(\d+)\.mp3/, "\\1").to_i
  {name: name, desc: desc, created_at: File.mtime(path).gmtime.
                                         strftime('%a, %d %b %Y %T GMT'),
   url: "https://秘密/radiko/#{name}", size: File.size(path),
   duration: sprintf("%02d:%02d:%02d", sec / 3600, (sec / 60) % 60, sec % 60) }
end

rss = <<EOT
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">
  <channel>
    <title>Yuumi3 Radiko.fm</title>
    <description>Yuumi3のRadiko podcast</description>
    <language>js</language>
    <link>https://秘密/radiko/</link>
    <itunes:image href="https://秘密/images/podcast.png" />
    <% @mp3s.each do |mp3| %>
    <item>
      <title><%= mp3[:name] %></title>
      <description><%= mp3[:desc] %></description>
      <pubDate><%= mp3[:created_at] %></pubDate>
      <enclosure url="<%= mp3[:url] %>" type="audio/mpeg" length="<%= mp3[:size] %>"/>
      <itunes:duration><%= mp3[:duration] %></itunes:duration>
    </item>
    <% end %>
  </channel>
</rss>
EOT

puts ERB.new(rss).result

長年の悩みが解決しました、ラジオの録音データもPostcastアプリでPotcastと同じように聞けるのは最高です!

RSSというローテクは良いですね ^^)

- about -

EY-Office代表取締役
・プログラマー
吉田裕美の
開発者向けブログ