Humanity

Edit the world by your favorite way

dlnico.plを久しぶりに更新した

ニコニコ動画巡回中ふとインストールしたい動画を見つけて、そういや以前ニコニコ動画のダウンロードクライアント作ってた事を思い出し最新のPerlで試してみたら動かなかったので直した。
ついでに依存モジュールのインストールがかったるかったのでCarton使うようにした。
あと偶然mattnさんの記事を見つけてTerm::ProgressBar使うようにしたり細々とした修正も加えました。
Perl v5.22.0で動作するのを確認しました。

https://github.com/tyru/dlnico.pl

$ perl -v
This is perl 5, version 22, subversion 0 (v5.22.0) built for x86_64-linux-thread-multi

cpanfileとcpanfile.snapshot作ったので依存モジュールインストールするのも楽になりました。
とはいえイチからインストールするのはちょっとだるい?

$ # cpanmとcartonをインストールしておく(~/perl5にインストールすると仮定する)
$ cat ~/.bash_profile
(省略)

mkdir -p $HOME/perl5
[ "$PERL5LIB" ] && export PERL5LIB="$HOME/perl5/lib/perl5:$PERL5LIB" || export PERL5LIB="$HOME/perl5/lib/perl5"
[ "$PATH" ] && export PATH="$HOME/perl5/bin:$PATH" || export PATH="$HOME/perl5/bin"

$ . ~/.bash_profile
$ # httpsだからって安心せず良識ある人はDNSレコードを確認して正しいサーバに接続している事を(以下略)
$ curl -L https://cpanmin.us | perl - -L $HOME/perl5 App::cpanminus Carton

$ git clone https://github.com/tyru/dlnico.pl
$ cd dlnico.pl
$ carton
$ cpanm -L local Config::Pit    # ユーザIDとパスワードを コマンドラインで指定したくない場合。ユーザIDとパスワードは ~/.pit に保存されます

$ # リポジトリのディレクトリの中でcarton execを付ければ dlnico.pl が使えます
$ carton exec ./dlnico.pl sm18689536
$ # ちなみにdlnico.plの使い方紹介になりますが、URLでも大丈夫です。マイリストまるごとダウンロードもできます
$ carton exec ./dlnico.pl http://www.nicovideo.jp/watch/sm18689536

本当は依存モジュールインストールしたいだけだったので Module::BuildじゃなくModule::Install使えば

$ cpanm -L local https://github.com/tyru/dlnico.pl

だけでよくなるのかなと思わなくもなかったけど、バージョンロックのおまけもあるし、久しぶりにPerlを触って混沌としたBuild.PLやらMANIFESTやらMYMETA.yml等のファイルの前に力尽きたのと自動化する手順書いてあればそれほど変わらんだろと開き直ったりしたのでした。

参考サイト

*1:dlnico.plはライブラリではなくツール(アプリケーション)なのでcpanfile.snapshotは含めることにした