動画のキャッシュを皆で共有するソフト「Genkidama」をリリースしまふ。blogこの広告は、90日以上更新していないブログに表示しています。2009-04-25ニコニコ動画のキャッシュを皆で共有するソフト「Genkidama」をリリースしまふ。P2Pなにこれニコニコ動画の動画ファイルのキャッシュファイルを皆で共有しあってより快適にニコ動を楽しめるソフトです。これで一般会員でも回線混雑時に通常画質で動画が見れるかもしれない・・・!って訳です(誰かが以前その動画を通常画質で見ていてくれれば、の話なんだけどね)。えいさあさんのNicoCacheをベースにP2P技術を用いてキャッシュ情報をGenkidamaを起動しているPC同士で共有する仕組みを追加してあります。えいさあさん良いプログラムをソース公開してくれて感謝です。Linuxで動作確認済み)たぶんMacでもおk。ルータにグローバルIPが振られていて、UPnPでポート解放出来る必要あり。使い方Windowsブラウザのプロキシ設定でlocalhost:8080を指定。Genkidama.batを実行する。使い終わったらCTRL+Cを押して終了する(ここ重要。これをやらないと分散ハッシュテーブルにゴミがのこっちまうのを避けられないので、ご協力おながいします。)NicoCacheの設定例があるので、こちらを参考にすると良いです:http://www.oshiete-kun.net/archives/2007/09/nicocache.htmlhttp://d.hatena.ne.jp/dangerous1192/20071009/p1http://wayohoo.com/nicovideo/tech/nicocache_nl.htmlhttp://www.smallstyle.com/20071009.htmlその他ブラウザのプロキシ設定でlocalhost:8080を指定。Genkidama.jarを実行する。使い終わったらCTRL+Cを押して終了する(ここ重要。これをやらないと分散ハッシュテーブルにゴミがのこっちまうのを避けられないので、ご協力おながいします。)NicoCacheをMacで使う場合の設定例。消された動画のキャッシュが頑張れば見えてしまう件は、不可能にする事にしました。修正版のリリースと同時に前のバージョンは使えなくさせて頂きます。#ブートストラップサーバを止めるので立ち上がらなくなります。http://syuu.dokukino.com/Genkidama_002.zip動作原理Genkidamaでは分散ハッシュテーブル(DHT)というP2P技術を使ってキャッシュ情報をPC間でやりとりします。いうか、このプログラムは分散ハッシュテーブルを用いたP2Pアプリの実装がやってみたくてカッとなって作った今は公開している、なんですが。分散ハッシュテーブルというのは、キーとデータのペアの情報を繋がりあったコンピュータ間で記憶・検索する仕組みの事で、いわゆるハッシュテーブルに近い使い方が出来るようになっています。Genkidamaではをこの分散ハッシュテーブルで管理しています。いう形式になっており、このURLを通じてキャッシュを取得出来るようにHTTPサーバが動いています。分散ハッシュテーブル、HTTPサーバでそれぞれtcp/9800、tcp/9801でインターネットからアクセス可能になっている必要が有るので、UPnPを用いてポートマッピングを行っています。分散ハッシュテーブルのライブラリとしてOpenChord、UPnPのライブラリとしてUPNPLibを用いています。設定変更NicoCacheと同じくconfig.propertiesを編集することで設定を変更する事が出来ます。UPnP非対応なルータではここにグローバルIP(FQDNでも良い)を指定。Licenseでライセンスされているので、自由に利用・再配布が可能です。https://enoki.dokukino.com/svn/public/Genkidama/trunkhttp://syuu.dokukino.com/Genkidama_002src.zipところで消された動画ってみれんの?ニコ動のWebサイトから直接はみれないと思います。★追記やはり消された動画はFlashがハンドルして通常と異なるルートを通って「削除されました」のムービー(音声?)を流しているようで、キャッシュは使われない事を確認。ところで消された動画ってみれんの?意図的に見れなくしました。分散ハッシュテーブルへ公開もしないし、リクエストが来ても拒否します。完成度について・不具合報告のお願い書き忘れてました。テスト期間半日位なので、めっちゃβ版です。バージョン番号は0.01です。不具合は色々あるので、なんか有ったらコメントに書き込んでください。確認してる現象としては、たまに分散ハッシュテーブルに繋がらなくってProxyサーバも開始出来ないというのがあります。終了して立ち上げ直せば大体直ります。早まってはてブにも書いてしまいましたが、実はニコ動がどういう仕様になってるのかの所をちっとも理解してません。消されてる時ってどういう状態になってるんでしょうね?もし情報持ってる方居たら教えていただけるとうれしいです。なんか変な音声が代わりに流れてる所を見ると、コメントはそのままムービーだけを差し替えてるんですかね?その差し替えをやるのはサーバ側?フラッシュ側?サーバ側であってフラッシュは何も知らないのであれば、Genkidamaでキャッシュがヒットしてくれるだけで素直に消されたムービーのキャッシュを再生してくれると思います。フラッシュ側であれば、flvplayer_wrapperとか組み込んであげると回避可能になると思います。さんより、「発想はあったが作る人がいなかった。」やっぱ発想は有ったんですかね?私はどうも独創的な発想力とかそーいうのに乏しくて・・・ニコ動とかちっとも詳しくなくて、NicoCacheってソフトを知ったのはつい先週なんですけど、知った瞬間にこれはおもしろいと思って発作的につくっちまいました。NicoCacheとか書いてる人が居て、あ、やっぱりもう先に思いついてる人居たかな・・とか思って自分の浅はかさをちょっと後悔。追加したコード量ですが、わずか200〜300行程度です。期間はコーディング2日、テスト1日くらいですかね。分散ハッシュテーブルのライブラリはOpenChordっていうかなり完成されたものがあるんで、私はこれとNicoCacheをくっつけるグルーコードを書いただけなのですよ。訳で実はあんまり苦労してないwそもそもDHTアルゴリズム自体を研究しているのですが、DHTを使う実用的なアプリっていうのも書いてみると楽しいかなぁと思いまして。法律とかちっとも分からないんですけど、そうなんですか?そうだと安心なんですけど。ネットワークに流したら灰色になったりしない?連邦裁判所の判例だと合法、日本だと判例がない。著作権法改正案で検索キャッシュは合法に、著作権違反なもののダウンロードは違法にするつもりだが、未だ国会提出の段階かな。さんより、「キャッシュが半永久的に(ryあたりはどうなってるんだろう。分散ハッシュテーブルに流しているのは単なるURL(キャッシュ保持ノードのIP+ポート番号+キャッシュID)なので、データそのものは流してません。よって、分散ハッシュテーブルのネットワークを流れる情報は分散ハッシュテーブルのルーティング情報との組み合わせの情報だけになっており、キャッシュデータの中継はやりません。分散ハッシュテーブルへは登録だけでなく削除も出来るので、起動時に手持ちキャッシュを登録、終了時に削除するようにしてます。0.02で分散ハッシュテーブルへ登録、取得へいく前とURLを辿ってキャッシュリクエストが来た時に削除済みかどうかチェックし、削除されてたら作業を行わないようにしました。あと、Winnyでいう初期ノードに当たるもの(=dhtBootstrapURL)を分散配置してません。これ落としちゃうと誰も使えなくなります。いうか、今0.01のサーバを止めたので丁度そういう状態になってるはず。ニワンゴさんに怒られたら勿論全部止めますよ。10:00ニコニコ動画のキャッシュを皆で共有するソフト「Genkidama」をリリースしまふ。0.3.1をリリースしました。0.3.1のリリースに伴い、以前のバージョンは使えなくなります。Dashboardをテストしています。混雑緩和のため、皆様...2009-05-29Genkidamaの統計情報ページをかわゆく作ってくれる人募集。月別アーカイブ参加グループプログラミングはてなブログをはじめよう!syuu1228さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。