Filter::FetchNicoVideo にウェイトを入れてみた
 Plagger でニコニコ動画をダウンロード&変換できるようになったのはいいんですが、すでに変換済みの動画がローカルに大量にあったりすると、
短時間に多数のアクセスが発生
-> ニコニコ運営側に怒られる
-> 動画が(一時的に)ダウンロードできなくなる
という悲しい事態が発生してしまいます。

 ということで、動画がダウンロード済みの場合には指定時間待つように Filter::FetchNicoVideo を修正してみました。ちなみに、下記の otsune さんのエントリを、ものすごい勢いで参考にしています(笑)。
Publish::Twitterにウェイトをいれてみた - otsune's SnakeOil - subtech


--- FetchNicoVideo.pm.orig 2007-11-12 23:10:59.000000000 +0900
+++ FetchNicoVideo.pm 2007-11-12 23:26:20.000000000 +0900
@@ -78,13 +78,18 @@
$ua->get("http://www.nicovideo.jp/watch/$video_id");

#download flv file
- unless ( -e $path ) {
- my $req = HTTP::Request->new(GET => $enclosure->url);
- $context->log(info => "Fetching $video_id FLV File from " . $enclosure->url . "..." );
- my $res = $ua->request($req, $path);
- $context->log(warn => "Fetch FLV Error: $video_id" ) if $res->is_error;
+ if ( -e $path ) {
+ my $sleeping_time = $self->conf->{interval} || 15;
+ $context->log( info => "sleep $sleeping_time." );
+ sleep($sleeping_time);
}
-
+ else {
+ my $req = HTTP::Request->new(GET => $enclosure->url);
+ $context->log(info => "Fetching $video_id FLV File from " . $enclosure->url . "..." );
+ my $res = $ua->request($req, $path);
+ $context->log(warn => "Fetch FLV Error: $video_id" ) if $res->is_error;
+ }
+
#download xml file
if ( $self->conf->{download_comment} ) {
$path = File::Spec->catfile( $self->conf->{dir}, $filename . ".xml" );


 変更後の config.yaml はこんな感じ (Filter::FetchNicoVideo 部分のみ)。

- module: Filter::FetchNicoVideo
config:
mail: your@mailaddress
password: your_password
id_as_filename: 1
dir: /home/user/dir
interval: 30

 "interval" で待ち時間(秒)を指定します(デフォルトは15秒)。手元の環境だと、15秒ぐらい待てば、ダウンロード済みの動画が20個ぐらい続いても大丈夫。


 CodeRepos のコミット権を持ってないので、とりあえずブログに置いておきます。あとでコミット権もらおうかなぁ。
[PR]
by fkmn | 2007-11-12 23:55 | IT
<< 【感想】ウェブ時代をゆく ─い... Autohotkey が便利すぐる >>


とあるWebアプリケーションエンジニアの日記
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
カテゴリ
以前の記事
ブログパーツ
リンク
検索
タグ
最新のトラックバック
プログラミングが「出来る..
from とりあえず9JP?
Genographic ..
from ナンジャモンジャ
ジュセリーノ
from ありの出来事
くちこみブログ集(ライフ..
from くちこみブログ集(ライフ)(..
以降、丁寧語で行こう!
from エッセイ的な何か
人気ジャンル
ファン
記事ランキング
ブログジャンル
画像一覧

fkmnの最近読んだ本 フィードメーター - フッ君の日常 あわせて読みたい AX