ド素人がYouTubeの"402 Payment Required"と戦うために「listpod-app-lite」

ListPodというサービスをご存知でしょうか。僕はついさっき知りました :)
今からでも、遅くないはず、ということで早速使ってみようとしたのですが…

YouTubeの"402 Payment Required"と戦うために「listpod-app-lite」
一つのサービスに集中していたダウンロードという機能、いやむしろListPodそのものを分散させる、つまり使いたい人の手元で動作するクライアントアプリケーションにすればいいのです。
てなわけで、前置きが長くなりましたが、 ListPodは死んだので、listpod-app-liteってのを作ってみたよ!

http://yusukebe.com/archives/10/03/15/183556.html

えー!もうListPodが使えない?!
諦めるのはまだ早いです。listpod-app-liteを使えばListPodが使えるようになるみたいなので、早速インストールして、ListPodを復活させましょう!
listpod-app-liteはPerlで書かれています。Perlを使い始めて2、3ヶ月のド素人でもインストールすることができるのでしょうか?

追記

今の時代、perl Makefile.PLしている人なんていないと思うので、cpanmを使ってListPod-App-Liteをインストールしましょう。

cpanmをインストールする

% curl -LO http://cpanmin.us/
% perl cpanm App::cpanminus

これで、cpanmコマンドが使えるようになります。

ListPod-App-Liteをインストールする

% cpanm Module::Install
% cpanm Module::Install::AuthorTests Module::Install::Repository

% cpanm http://github.com/yusukebe/ListPod-App-Lite/tarball/master

ListPod-App-Liteを実行する

% listpod-app-lite
HTTP::Server::PSGI: Accepting connections at http://0:5000/

以上で、ListPod-App-Liteが使えるようになります。


* * *

環境

モジュールのインストール

まずは必要なモジュールをCPANでインストールしていきます。

$ sudo cpan

cpan shell -- CPAN exploration and modules installation (v1.9402)
Enter 'h' for help.

cpan> install Module::Install
cpan> install Module::Install::AuthorTests
cpan> install Module::Install::Repository
cpan> install LWP::UserAgent
cpan> install Text::MicroTemplate
cpan> install Plack
cpan> install Pod::Usage
cpan> install Getopt::Long
cpan> install AnyEvent
cpan> install Plack::Server::AnyEvent
cpan> install Test::Spelling
cpan> install Test::Perl::Critic
cpan> install Test::Pod
cpan> q

  • Module::InstallやPlackのインストールには少し時間がかかるので注意
  • Module::Install::AuthorTestsとModule::Install::Repositoryをインストールしないといけないのが分からなくて30分くらい悩んだ

それらのモジュールをインストールしないとperl Makefile.PLできず、エラーを吐きます。

$ perl Makefile.PL
include /Users/akiyama/Desktop/ListPod-App-Lite/inc/Module/Install.pm
String found where operator expected at Makefile.PL line 18, near "author_tests 'xt'"
(Do you need to predeclare author_tests?)
syntax error at Makefile.PL line 18, near "author_tests 'xt'"
Bareword "auto_set_repository" not allowed while "strict subs" in use at Makefile.PL line 21.
Execution of Makefile.PL aborted due to compilation errors.

  • AnyEventとPlack::Server::AnyEventはインストール不要

listpod-app-liteのインストール


$ git clone git://github.com/yusukebe/ListPod-App-Lite.git
$ cd ListPod-App-Lite
$ perl Makefile.PL
$ make
$ sudo make install

listpod-app-liteを実行

$ listpod-app-lite
HTTP::Server::PSGI: Accepting connections at http://0:5000/

最後にブラウザでhttp://localhost:5000/にアクセスすれば…
f:id:akiym:20100319231353p:image
ListPodが復活しました!これで使い放題ですね!

ちなみに

モジュールのインストールは一見、難しいように思えますが、Makefile.PLを読めばどのモジュールが必要か書かれているので、それに従ってモジュールをインストールするだけです。
ド素人でもMakefile.PLを読めば簡単にできる!

  • Plack::Handler::AnyEvent?

要求されているのはPlack::Handler::AnyEventなのですが、そのようなモジュールはCPANにはなく、Plack::Server::AnyEventで同じようなモジュールが入るみたいです。いまいち、よく分かりません…。

最後に

ListPodとlistpod-app-liteの作者であるyusukebeさんに感謝です。
yusukebeさん応援してます :)