cliveとはコマンドライン(CUI)上で動作する動画ダウンロードツールです。cliveはLinuxで標準でインストールされているPerlで記述されています。
cliveを導入するメリットですが、コマンドラインベースである為にcronに組み込むことができたり、既存の(あるいは新規の)アプリケーションに組み込むことが出来たりと、汎用性が高いという点でしょう。URLをそのまま引数として指定するだけでダウンロードを行ってくれる点や、タイトル名を自動でファイル名にしてくれる点(日本語にも対応)も魅力的です。
また、対応している動画サイトもメジャーなところは抑えていると思います。動画サイトの仕様変更に合わせて、cliveのバージョンの更新も頻繁に行われているようです。
cliveはgoogle codeで公開されているオープンなソースコードであり、Gitリポジトリを利用して管理されています。
上記のgoogle code上のcliveのページからもダウンロード出来ますが、今回はGitリポジトリから最新ソースを取得してインストールする方法を書いてみます。
注意:お約束ですが著作権物のダウンロードは違法です。自己責任でお願いしますです。
cliveの取得
Gitを利用してソースコードを取得するには、Git本体がインストールされている必要があります。「バージョン管理 LinuxへのGitのインストールと軽い動作確認」でGitのインストールについて書きましたのでインストールをしていない方はご参考に。(とは言ってもyumで一発なんですが)以下はGitがインストール済みであることを前提に書いていきます。- 初期のダウンロード
- 2回目以降で最新のソースをダウンロード
- バージョンの確認
$ cd /usr/local/src
sudo git clone git://repo.or.cz/clive.git
$ cd /usr/local/src/clive
$ sudo git fetch
$ sudo git tag
・・・
2.2.7
2.2.8
2.2.9
cliveに必要なperlモジュールのインストール
僕の環境は64bit CentOSですが、以下のモジュールのインストールが必要でした。cpanを利用してインストールします。モジュールは/usr/lib/perl5/site_perl/[version]/と、いくつかのモジュールは64bit環境だと/usr/lib64/perl5/site_perl/[version]/にインストールされます。(32bitだとたぶんすべてlibディレクトリ配下になるのかな?)
$ sudo cpan
- Class::Singleton
- Config::Tiny
- Digest::SHA
- Getopt::ArgvFile
- HTML::TokeParser
- URI::Escape
- WWW::Curl
cpan> install Class::Singleton
cpan> install Config::Tiny
cpan> install Digest::SHA
cpan> install Getopt::ArgvFile
cpan> install HTML::TokeParser
・・・
Writing Makefile for HTML::Parser
---- Unsatisfied dependencies detected during [G/GA/GAAS/HTML-Parser-3.68.tar.gz] -----
HTML::Tagset
Shall I follow them and prepend them to the queue
of modules we are processing right now? [yes] yes ### yesを入力するとHTML::TokeParserが依存するモジュールもインストールされる
cpan> install URI::Escape
cpan> install WWW::Curl
・・・
Running make install
make had returned bad status, install seems impossible
makeに失敗。curl-configというパッケージが見つからないらしい。curl-configはcurl-develパッケージに含まれているのでyumでインストールする。$ sudo yum -y install curl-devel
再度、cpanでinstall WWW::Curlを打っても上手くいかなかったので、手動でmake installすることにする。$ cd /root/.cpan/build/WWW-Curl-[バージョン]
$ sudo perl Makefile.PL
$ sudo make
$ sudo make test
$ sudo make install
$ whereis curl-config
curl-config: /usr/bin/curl-config /usr/share/man/man1/curl-config.1.gz
cliveのインストール
cliveディレクトリのREADMEファイルにインストール方法が記述されています。perl Makefile.PL INSTALL_BASE=/usr/local
perl Makefile.PL
make
make test # optional
make install
$ cd /usr/local/src/clive
$ sudo perl Makefile.PL INSTALL_BASE=/usr/local
$ sudo make
$ sudo make install
$ whereis clive
clive: /usr/bin/clive /usr/share/man/man1/clive.1
cliveの動作確認
ためしにyoutubeの公式動画である「ようこそ、YouTube Japanへ」をダウンロードしてみます。$ clive http://www.youtube.com/watch?v=aFhvWOgg-YU
fetch http://www.youtube.com/watch?v=aFhvWOgg-YU ...done.
verify video link ...done.
ようこそJapanへ.flv 100% 1.7M / 1.7M 132.3K/s 13s
$ ls
ようこそJapanへ.flv
なんか微妙にファイル名が違う(”youtube”の文字が入ってない)けど気にしない(ぁcliveが対応している動画サイト
以下のコマンドで確認できます。$ clive with --hosts
youtube.com default|mobile|sd_270p|sd_360p|hq_480p|hd_720p|hd_1080p|webm_480p|webm_720p
video.google. default|mp4
sevenload.com default
break.com default
liveleak.com default
evisor.tv default
dailymotion.com default|hq|hd
tv.cctv.com default
vimeo.com default|hd
spiegel.de default|vp6_928|vp6_576|vp6_64|h264_1400
golem.de default|ipod|high
ehrensenf.de default
clipfish.de default
funnyhub.com default
myubo.com default
buzzhumor.com default
ヽ(´~`;)ウーン。個人的にはveohに対応していないのが残念。
cliveの設定
cliveはユーザのホームディレクトリにある.clivercで設定した条件で動作します。(無くても取りあえず動きますし、コマンドラインで引数指定することもできます。なので必須ではありません。)詳細についてはman cliveに色々書いてありますので割愛します(特に最後の方に有用なサンプルが記載されているので要チェックです!)。.clivercのサンプルは/usr/local/src/clive/examples/configにありますので、これとman cliveで見れるオプションを参考に試行錯誤してみると良いですね。
まだ使い倒していないのですが、途中でダウンロードが止まってしまった場合のリトライ機能も付いているようです。(-lオプション)ただし、manをざっと見た感じだと、リトライするロジックは自分で書かないといけないのかな?あくまでもcliveで実装しているのはレジューム機能(ダウンロードを中断した場合、続きから再開できる)だけって感じがします。
URLリスト(テキストファイル)を引数にして一括ダウンロード!って機能は無さそうですが、これはshとかperlとかphpでちょこっと書けば簡単に実装できるかな。
こういう汎用性がCUIアプリの利点ですよね(^∇^)
参考サイト
clive公式サイト関連するかもしれない記事
- Linux WineにDirectXをインストール
- linuxへのSubversionのインストール
- Linux Wineのインストール
- CentOS VNC Clientのインストール
- バージョン管理 LinuxへのGitのインストールと軽い動作確認
他のブログも読む



One Response
Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.
Continuing the Discussion