録音編といいつつアプリの使い方だけを説明した前回の続きで手順を書きはじめていたのですが、書き捨て状態だったコードをいじくり回していたらなんとなくまとまりGitHubに上げたので、書くことがなくなりました。
yoshuki/oreore-radio · GitHub
How to use
特定のディレクトリにMP3とサムネイル画像を置いて走らせると、画像をMP3に埋め込んでPodcastを作り、どこかにアップロードするスクリプトです。興味が湧いた方は覗いてみてください。
ということで、いくつか補足を。
- アップロードする場所は自分以外がアクセスできないように必ず対策をしてください。おそらく法的にアレです。
- SSH/SFTPを使うので、公開鍵認証の設定をしておいてください。
- MP3のファイル名は「hoge_YYYYMMDD.mp3」形式を、画像のファイル名は「hoge.jpg」形式を想定しています。「hoge」の部分が一致する画像を埋め込みます。
- ポッドキャストは「config.yml」に定義されている「url.base」の下に「rss.xml」という名前で作られます。
だいぶ間が空いてしまいましたが、以前上げたスライドの続きです。
[2012-09-27 追記] ポッドキャスト編も書きました。
「オレオレラジオポッドキャスト」と称していましたが、自分で放送するわけではなく、おもに時間の都合により聞きづらいラジオを録音して、いつでもどこでも聞けるように「自分専用ポッドキャスト」を作ろう、という話です。ラジオの本当の魅力は深夜番組、それもリアルタイムにあると思ってはいますが、眠いですし、明日がありますし、でも聞きたいですし。
まず、ここで前提としている環境はMacです。理由は簡単で、手元にある中でハード/ソフト両面で最も適していたのがMac miniだったからです。小さいので邪魔にならず、電源入れっぱなしでも静かで気になりませんし、ツールも揃っています。
ここ1年ほど運用していたのはLionですが、Mountain Lionで動作を確認しながらこれを書いています。
また、長くなりそうなので2回に分けることにしました。まずは「録音編」として放送を録音してMP3にするまでを、つぎに「ポッドキャスト編」としてRSSを作りポッドキャストとして聞けるようにするまでを書きます。
続きを読む…
id3lib-ruby – ID3 tag library for Ruby
UTF-16 support (warning: id3lib writes broken UTF-16 frames)
id3lib-3.8.3-UTF16_writing_bug-1.patch
Description: Fixes a UTF16 writing bug.
いままでRubyからmp3のタグをいじるのに、id3libにパッチを当ててid3lib-rubyを使っていたんですが、とっくに別プロジェクトに移行していることをつい最近知りました。
Unicode Handling Problems with Ruby 1.9.1 · Issue #2 · robinst/id3lib-ruby
Hey there. I’m closing this issue as id3lib-ruby is no longer developed (because id3lib isn’t).
robinst/taglib-ruby
Ruby interface for the TagLib C++ library, for reading and writing meta-data (tags) of many audio formats.
いろいろ古すぎるなーと思ってたんですが、なんでいままで気がつかなかったんだー。
Ruby on Rails Guides: A Guide to Active Record Associations
The use of extra attributes on the join table in a has_and_belongs_to_many association is deprecated. If you require this sort of complex behavior on the table that joins two models in a many-to-many relationship, you should use a has_many :through association instead of has_and_belongs_to_many.
「has_and_belongs_to_many」はなくしちゃうから、これからは代わりに「has_many :through」を使ってね。っていうことだったと記憶していたんですが、あらためてドキュメントを読んだら「非推奨なのは関連が属性を持つ場合だけ」ととれる感じになっていました。ずっと勘違いしてたっぽい。それともどこかのタイミングで変わったのかしらん。[要出典]
で、migrationは手動で作ってね、とこんな感じ。
ActiveRecord::Associations::ClassMethods
The join table should not have a primary key or a model associated with it. You must manually generate the join table with a migration such as this: