『TweetMic』をポッドキャストフィードに変換するプログラム
| Check |
先日公開された「tweet junky」(※詳細は以下の記事をご覧ください)はTwitterのサービスをベースに作られたものです。
関連URL : まさに皆さんのつぶやき声が聞こえる!ユーザー参加型twitter版podcast『tweet junky』開始へ
その為ポッドキャストとして配信するためにはenclosureタグでmp3ファイルへのリンクがフィードについていなければiTunes等で受信が出来ません。「TweetMic」で特定のTwitterのアカウントに情報が集約された場合、ATOM/RSS/XML/JSONデータは取得できても、さすがにポッドキャスト用のフィードを生成は自動では出来ません。
出来ればYahoo!Pipesとかで作りたかったのですが、手間がかかりそうだったので今回は独自のフィード生成を開発することに致しました。最終成果は以下のフィードです。
・http://podcast-j.net/tweetcast/tweet_junky.xml
本記事ではTwitter(TweetMic)からポッドキャストフィードを作る1つの方法としてプログラムも公開し、その作り方の簡単な説明を行います。
■仕様
このフィードを作るために考えた仕様について。
・PHPで作成
・Twitterからの情報はAPIで取得
1.statuses/user_timeline
特定ID(今回はtweet_junky)に投稿されているフィードを取得
2.users/show
特定IDのプロフィール情報を取得
・PHPからXMLファイルを生成
※当初PHPのみで作成したが、色々な意味で負荷の分散を行うためにXMLファイルを生成した
・TwitterフィードからTweetMicへのリンクを抽出し、TweetMic内のmp3ファイルリンクを抽出
・ポッドキャスト用のフィードとして最低限必要なタグ情報のみ生成する
・フィードの更新は一時間に一度
※各種サーバーへの負荷を考慮して一時間に一度とした。今後更新頻度は再考が必要かな?
ざっくり書くとこんな感じで作り始めた。ソースは記事末にダウンロード出来るようにしております。
改善点はたくさんあると思っており、いつでも最適な改善方法があればご提案頂ければと思っております。
作りながら感じていた問題点を以下に列挙します。
1.短縮URL対応
現時点では特定URLのみの情報を収集しておりますが、今後bit.lyなどの短縮URLが生成されたら修正が必要。
2.TweetMicの仕様変更
現時点ではAPIで提供されていない為ある一定の方法でmp3ファイルへのリンクを取得していますが、提供側の都合で配信ルールが変更されたらこちらも変更をする必要がある。ちなみに所謂Webスクレイピングで作ろうと思ったのですが、今回は一番簡単な方法(ファイルを読み込んで、特定個所を抽出しURLを取得)でリンクを抽出しております。
3.URL抽出
今回はURLの抽出に正規表現で作成したが、この部分はまだ不完全で、2と被る話ですが仕様が変わった場合にきちんとURLが取得出来ない可能性があるので、もっと変更されても対応しやすい様に関数とか使って対応できるようにしたい。ちなみに今回URL抽出は以下の2点行っている。
(1)Twitterフィードから特定のURL抽出(今回はhttp://tweetmic.com/)
(2)tweetmic.comから特定個所で一番最初に見つかった特定URL抽出
4.同一情報の収集への負荷軽減に向けて
今回毎回フィードを作り直しているので、同一のitemの場合、再取得せずにtmpなどに情報を保管し、最新のitemだけ読み込むようにしたい
・・・今思いつくのはこんなところかな。あ、あとアートワークはtwitterのプロフィールの画像URLを入れておりますが、きちんと反映されていない。。。これも課題かな。
他に思いつくところがありましたら是非教えてください。
ちなみに私のTwitterのアカウントは”http://twitter.com/Masao_S/”です。お気軽につぶやいて頂ければ幸いです。
出来るだけ拾います。
■ソースについて
ちなみに私のプログラミングに対する知識のスペックを記載しておきます。
・プログラミングを商売にしておりません。
・どの開発言語も何となく簡単なところだけは書けますが、専門はありません。
・今回PHPで書きましたが、何となく使いやすかっただけでそれ以上の比較検討を元にした訳ではありません。逆に良い言語があれば教えてほしいです。
・実現方法をたくさんネットで検索して寄せ集めて使った感じです。
・・・まぁ、こんな感じの人が書いたソースだと思ってご覧頂ければ幸いです。注釈文は元々のソースには色々書いておりますが、何となく恥ずかしいのでおおよそ消しました。逆に見にくかったらすいません。
"tweetmic-to-podcast.php"をダウンロード
誰かの参考になれば幸いです。





