こんばんは。インプラントの手術を1ヶ月後に控えている yusukebe です。今回も「悪い」ダウンロード系スクリプトの紹介をします。題材は、みんな大好き YourFileHost の flv の動画を簡単にゲットしてしまおうというものです。よい子は真似しないでね。
実はわたくし、某サイトを作るときに必要になり YourFileHost の API をたたくモジュール「WWW::YourFileHost」を作成しました。
http://search.cpan.org/dist/WWW-YourFileHost/
このモジュールを使うと指定したURLの flv 動画ファイルへのパスを簡単に見つけることができます。その URL を以前の記事でも扱った LWP::UserAgent を使いファイルに保存するよう指定し完成です。大体10行ちょいで書けました。
use strict;
use warnings;
use LWP::UserAgent;
use WWW::YourFileHost;
my $url =
$ARGV[0] ||
"http://www.yourfilehost.com/media.php?cat=video&file=guns_dont_kill_people.flv";
my $ua = LWP::UserAgent->new( agent => "WWW::YourFileHost" );
my $response = WWW::YourFileHost->new( url => $url , ua => $ua );
$ua->get( $response->video_id, ":content_file" => $response->id . ".flv" );
こんな感じで実行します。あ、繰り返しになりますが、よい子は真似しないでね。
perl fetch.pl "http://www.yourfilehost.com/media.php?cat=video&file=080128.4_exo_part001.wmv"
WWW::YourFileHost では動画のページをスクレイピングして、裏APIへのURLを解析しています。スクレイピングには Web::Scraper というとってもクールで便利なモジュールを使用しています。Web::Scraper のことをもっと知りたい方はとみたさんが詳しい記事を書いてくれているので、そちらを参照してみてください
http://e8y.net/mag/013-web-scraper/
あ、そうそう、WWW::YourFileHost は CPAN モジュールになっているので、
sudo -H cpan
とCPANシェルを起動し
install WWW::YourFileHost
とすればインストールができます(sudo 権限があれば。CPANシェルについて誰か解説してー)。
このようによく使う処理やデータはモジュールにすると再利用ができて便利な上、いろんな方に使ってもらえます。モジュールの書き方、CPANへのアップロード方法などは、今後このページで紹介されるでしょう。というわけで Enjoy!



Leave a comment