読者です 読者をやめる 読者になる 読者になる

FutureInsight.info

AI、ビッグデータ、ライフサイエンス、テクノロジービッグプレイヤーの動向、これからの働き方などの「未来」に注目して考察するブログです。

remedie からコンテンツアグリゲータに必要なことを学ぶ

偉大なPerlハッカーであるmiyagawaさんがPlaggerというプラガブルフィードアグリゲータ(この定義から逸脱した最強のツールになってしまっていますが)から派生したRemedieというコンテンツアグリゲータ・メディアサーバを作成しています。

Remedie is a perl based media center application with pluggable architecture. You can subscribe to videocast feeds, watch local folder with media files and keep track of your favorite video sites like YouTube, Nico Nico Douga or Hulu.

この目標が僕が未踏で開発しているDLNAサーバソフトウェアcoRocketsと似ているので、いろいろ参考にしようと思いRemedieを調べてみました。まず、簡単に特徴の違いをまとめてみます。

[追記]miyagawaさんにご指摘いただき、いろいろ修正しました。

評価点 remedie coRockets
OS Linux or Mac。Windowsでも動作済み。 基本的にはWindows。将来的にはsilverlightで拡張?
実行環境 デーモンとして常駐するアプリケーションサーバ Windowsアプリ。GUIが.Net Framework、DLNAサーバ部分はPython(Coherence)でNTサービス
使用言語 サーバ部分はPerl、プラグインもPerlで記述。GUIはJSONでサーバ側と通信できれば何でも良い GUIはC#、DLNAサーバ部分はCPython、プラグインはIronPython
GUI JSON通信出来れば何でもよい。Webサーバにブラウザでアクセスする場合はJavaScript(jQuery) Windows上のWPF/C#で作成したGUI

まとめてみるとわかりますが、想定している機能がかなり違います。

remedieは常時起動し、Mac or Linuxなどのサーバで動かすことを想定しているようです。coRocketsはWindowsで動作し、主にノートPCなどで動作させコンテンツを取得しながらPS3を使ってDLNAを使って視聴することを想定しています。remedieのイシューリストを見ると、Apple版独自規格DLNAであるBonjourやブラウザがそのままメディアプレイヤーに変わってしまうCoolirisが入っているので、今後、視聴環境という点ではMac mini、Apple TVをメインにサポートしつつ、幅広いアクセス手段を提供するという方向でしょうか。

Issueリストから気になったものを

ちらっと見たのですがIssueリストが凄すぎます。もし、この機能が全て実装されるのならものすごく強力なアプリケーションになりそうです。今後のために気になった下回りの機能をリストアップ。coRocketsの今後の拡張の参考にしたいと思います。

IMDB: Sapphire Browser - Home

映画のカバーアートが取得できるらしいです。知りませんでした。coRocketsではカバーアートはすべてAmazonから取得してきているのですが、もしこちらが良いのならIMDBも考えてみたいです。

Bonjourサポート

メインはDLNAが良いかなと思っているのですが、Bonjourも可能ならばサポートしたいです。これは要調査です。

Non-Blocking HTTP server

以下のやりとりをみて思ったのですが、もしかしてPerlには定番のNon-Blocking HTTP serverが存在しないんですかね?

PythonではNon-Blockingと言えばTwistedがあり、僕の知る限りPython製DLNAサーバフレームワークは基本的にTwistedを使っています。僕が利用しているCoherenceもTwistedベースです。

Non-BlockingじゃないとDLNAサーバで性能を出すのは相当つらいと思いますが、この辺りの技術的なことはこのレベルのハッカーだとほとんど関係ないでしょうね。簡単にクリアしてしまうと思います。

まとめ

しかし今後のcoRockets開発のために、非常に良いベンチマークを見つけました。暇を見つけて僕もRemedieを動かしてみたいと思います。