- 2007/10/02 9:54 PM
- TechLog!
どうも。iPod Touchをアップルストアで初日に予約しながらAmazonポイントの大量還元に惑わされ、乗り換えたら一向に品物が届かないという負け組みな俺です。
・・あ、どうでもいいですか。(’A`)
てゅーか、妄想ばかりが膨らんで既に手にした人たちのエントリーなどなどをイイナーイイナーとあちこち見ていたんですが、とても魅力的な記事を発見したのでそちらに情熱を向けて気持ちを紛らわすことにしました。
はこべにっき#
[iPod][Plagger]iPod touch向けのニコニコ動画のPodcastを生成する
http://d.hatena.ne.jp/hakobe932/20070923/1190594172
ゆーすけべー日記
Plaggerでニコニコ動画のFLVとコメントを一括ダウンロード!
http://yusukebe.com/archives/07/08/09/105502.html
Plaggerというものの存在を正直知らなかった無知野郎で潜り野郎な俺だったわけなんですが、この方法を使うとニコニコ動画で気に入った動画のマイリストを作ってスクリプトを実行すれば、自動的にiTunesでポッドキャストとして受信できる形式に変換してくれるというスグレモノ環境が構築できるらしいです。手作業でやることが低減すれば俄然使い方が変わりますよね。これは是非とも自分の環境でも実現させたい!!ということで、手持ちのMac miniでゼロからこれらを実現する環境を構築する方法を考えてみました。
ちなみに当方の実証環境は Mac mini(M9687J/B) OSX 10.4.10(PPC) です。
これから記述する方法はOSX(Intel)でも使えるのではと思いますが、手持ちが無く試せないのでIntel版をお持ちのチャレンジャーな方に検証を託したいところです。では続きをドウゾ。
2007/10/29 追記 その1:
Intel版のMac OS X 10.4.10での動作を確認しました。
2008/06/18 追記 その2:
Leopard環境ではパッケージ版Plaggerがうまく動作しないようなので、自力でPlagger実行環境を構築する方法を記事にしました。興味のある方は以下のエントリーもどうぞ。
Wed, Jun-18-2008 LeopardにPlaggerを全力でインストールしてみる
***** 始める前の注意書き *****
著者の知識は残念ながら趣味レベルを脱していません。
結果オーライ的な手法であることは否めず過度な期待は禁物です。
尚、以下の記事はターミナル?コマンド?Perl?多少なら分かる(触ったことある)けど?という人を対象としています。ちんぷんかんぷんな人はちょっと厳しいかもしれません。やってみたら大事なMacが動かなくなったという場合も当方では責任は取れません。全ては自己責任でお願いします。
又、いずれのソフトウェア・スクリプト・ライブラリのバージョンも記事作成段階(2007.10.02)のものです。以上、ご了承いただいた上でご覧ください。
1.Plaggerを手に入れる
まずは環境を構築するベースとなるPlaggerを手に入れなければなりません。
色々検索したサイトなどを巡りつつ自力でtestしてmakeしてinstall・・と試みましたが、手順が多くて時間がかかったりよく分からないエラーが出たりと大変な目に遭ったのでめんどくさくなって失念。(ぁ
検索してみると、Mac OSX用にユニバーサルバイナリとしてコンパイルしたものを公開しておられるステキなサイトを発見したので、こちらのパッケージを活用させていただくことにしました。
Plagger for Mac http://8-p.info/Plagger/
上記サイトの中ほどにある plagger-0.7.17-1.tar.gz (14.3MB, 2007-05-06) をデスクトップにダウンロードして解凍します。解凍すると同じような名前のファイルと plagger-0.7.17-1 という名前のフォルダが出来ると思います。フォルダ以外のファイルは必要ないのでゴミ箱へポイしてください。それから、後々にターミナルでコマンドを打つときに面倒なので plagger-0.7.17-1 を plagger というフォルダ名に変更しておきます。
以降はこの構成でデスクトップ上で作業を進めます。
2.FFmpegを手に入れる
これも正直自分でコーデック入れてmakeしてinstallするには手順が多くてめんどくs(ry
例によって検索しているとステキなサイトがみつかりました。(他力本願でマジすいません)こちらもユニバーサルバイナリでコンパイルしてくださっているのでIntelなMacでもおそらく安心です。
らけった
ffmpeg SVN-r8638u
http://raketta.blogzine.jp/blog/2007/04/ffmpeg_svnr8638.html
ffmpeg_SVN-r8638u のリンクからダウンロードして解凍します。
解凍してできた ffmpeg_SVN-r8638u というファイルはplaggerフォルダ内に配置しました。
3.Plagger用のプラグインを手に入れる
ニコニコ動画から動画を取得する為のPlagger用プラグインを準備します。
Yusukebe::Tech
Plagger::Plugin::Filter::FetchNicoVideo / ver0.01
http://yusukebe.com/tech/archives/20070808/110245.html
package Plagger::Plugin::Filter::FetchNicoVideo; で始まるスクリプトをコピーしてテキストエディタに貼り付けて FetchNicoVideo.pm として保存します。(テキストエンコードはEUCが無難です)
そしてはこべにっき#様で公開されているFetchNicoVideo用のログイン修正パッチも手に入れます。
はこべにっき#
[iPod][Plagger]iPod touch向けのニコニコ動画のPodcastを生成する
http://d.hatena.ne.jp/hakobe932/20070923/1190594172
記事後半の Filter::FetchNicoVideoのdiff のリンクから filter-fetch-nico-video.diff をダウンロードしてください。
次に、FFmpegを操作する為のPlagger用プラグインを手に入れます。
FFmpeg.pm
http://svn.coderepos.org/share/lang/perl/plagger/lib/Plagger/Plugin/Filter/FFmpeg.pm
はこべにっき#様でFFmpeg.pmのdiffも公開されていますが、記事作成段階ではFFmpeg.pmが微妙なタイミングでアップデートされてしまったようで、うまく動きませんでした。一部の修正で動くことが確認できたのでこちらで直してみました。更なるアップデートが無ければ動くと思います。ダウンロードして使ってください。気合の入っている人はdiffを見ながらソースを直接修正してみてください。そんなに行数は無いのですぐに直せます。
FFmpeg.diff ファイルをダウンロードする
(自由に直してOKとありましたのでこちらで直したものを公開します。問題があれば即座にひっこめますのでご容赦ください)
ここまででダウンロードした4つのファイルはまだデスクトップ上に残しておいてください。。
4.パッチ当て作業
ターミナルを起動してデスクトップに移動します。
一括処理はちょっと怖いので一つづつ処理しますか。まずは FetchNicoVideo.pm から。
patching file FetchNicoVideo.pm と出ればOKです。変なエラーが出る場合は直接ソースを見ながら手修正する必要がありますね・・。
続いて FFmpeg.pm にもパッチを当てます
patching file FFmpeg.pm と出ればOKです。こちらも変なエラーが出る場合は直接ソースを見ながら手修正する必要がありますね・・。
上記2つがうまく行ったら FetchNicoVideo.pm を然るべきディレクトリに移動させます。
そして FFmpeg.pm も然るべきディレクトリに移動させます。
ひとまずターミナルの使用はここまでです。ターミナルを閉じてください。
デスクトップ上に残った filter-fetch-nico-video.diff と FFmpeg.diff や ?.orig などの派生ファイルはもう使わないのでゴミ箱にポイで構いません。
5.config.yamlの作成
Plaggerを動作させる為のスクリプトを準備します。作成時の注意点としてはTabは使わないこと(エラーが出ます)、テキストエンコードはEUCが無難とかぐらいですか。参考までに自分が作ったものを載せておきます。
config.yaml ファイルをダウンロードする
中身の解説しておきますね。ちなみにUserNameはいまログインしているユーザー名を入力してください。
assets_path: assets/
plugins:
– module: Subscription::Config
config:
feed:
– url: http://www.nicovideo.jp/mylist/0000000/0000000?rss=atom
上記は自分の使いたいマイリストのアドレスに置き換えてください。
– module: Filter::FetchNicoVideo
rule:
– module: RecentN
count: 20 ←リストの上位20件を受信
– expression: $args->{entry}->{date} = undef; 1
– module: Deduped
engine: DB_File
path: /Users/UserName/Desktop/plagger/deduped.db ←重複チェック用のDBのパス
config:
mail: ==id== ←ニコニコ動画登録メールアドレス
password: ==password== ←ニコニコ動画登録パスワード
id_as_filename: 1
dir: /Users/UserName/Sites/nicovideo ←動画の保存先のパス
– module: Filter::FFmpeg
config:
dir: /Users/UserName/Sites/nicovideo ←動画の保存先のパス
ext: MP4
command: /Users/UserName/Desktop/plagger/ffmpeg_SVN-r8638u ←FFmpegのパス
encoding: utf8
option_string: ‘-y -threads 4 -s
– module: Filter::RewriteEnclosureURL
config:
rewrite:
– local: /Users/UserName/Sites/nicovideo ←動画の保存先のパス
url: http://localhost/~UserName/nicovideo ←動画の保存先のURI
– module: Publish::Feed
config:
dir: /Users/UserName/Sites/nicovideo ←RSSの保存先のパス
filename: nicovideo.xml ←RSSのファイル名
format: RSS
簡単に要約すると、ニコニコ動画で作ったマイリストの上位20件の動画をサイトフォルダ内に作ったnicovideoフォルダ(パスは/Users/UserName/Sites/nicovideo)へダウンロード(重複ダウンロードは抑止)してMP4形式に変換し nicovideo.xml というRSSを同フォルダに書き出すという感じです。これらは はこべにっき#様 や ゆーすけべー日記様 の記事を参考にして作成しました。ありがとうございます。
では、出来上がった config.yaml をplaggerフォルダの中に保存しておいてください。
6.サイトフォルダに config.yaml で設定したフォルダを作る
先ほどの config.yaml で設定した動画の保存フォルダを サイトフォルダの中に準備しておきます。設定通り、nicovideo というフォルダを作りました。フォルダの所有権設定を確認しておきます。赤い四角で囲ったグループのアクセスとその他の双方に”読み出しのみ“の設定がなされているかどうかを確認します。
この設定が違っているとiTunesから読めない場合があるので注意です。
7.とにかく実行してみる
再びターミナルを起動し、plaggerディレクトリへ移動します。
以下のコマンドを実行しPlaggerを起動してみます。
・・このように間違いなくエラーメッセージがずらずら出ます。(ぇ
今までの工程をひっかかりなく進めていたとすれば、上のスクリーンショットと同じ内容のエラーメッセージが出ているはずです。もし違うならどこかの手順で失敗してる可能性が高いです。
この赤線のエラーメッセージはPerlかPlaggarのモジュール類が足りないことを示しています。ということで、以降それを確認しながら残りの作業を進めます。
ずらずら出てきた文字列に辟易しそうになりますが、このエラーメッセージで読まなければならないところは赤線で示した1行だけです。それより先は気にしたら負けだと思います。(←勝手な解釈)
とりあえず、一つ作業するたびに先程のPlaggerの起動コマンドを実行しながらエラーメッセージを表示させて何が足りないのか確認して進めてみます。最終的に全てが揃えば動き始めるはずです。ええ、マジ結果オーライでよろしく。でもゴールは見えてきましたヨ?
ということで、ターミナルは閉じずにそのままにしておいてください。何度も使います。
8.足りないモジュール類を足していく
Can’t locate ? というメッセージは、その場所にあるべきはずのプラグインなりモジュールが無いということなので、それらをどんどん足していきます。どこでトラブルが起きたか把握しやすくする為、一つ足したらPlaggerの起動コマンドを実行して様子を見ていきます。
まずは RecentN.pm が足りないということなので以下からダウンロードします。
Plagger:Rule:RecentN
http://plagger.org/trac/browser/trunk/plagger/lib/Plagger/Rule/RecentN.pm
ダウンロードしたファイル RecentN.pm を
plagger/cpan/lib/perl5/site_perl/Plagger/Rule に保存すればOKです。(本来は正しい手順を踏むべきですが、とりあえず動いたのでこのまま進めます。手抜きスマソ)
次に FFmpeg/Command.pm が足りないとメッセージが出てきました。迷わずダウンロードですよ。
FFmpeg::Command
http://cpan.uwinnipeg.ca/module/FFmpeg::Command
解凍したフォルダの中の lib フォルダの中にある FFmpeg フォルダを
plagger/cpan/lib/perl5/site_perl に保存します。
次は FLV/Info.pm が足りないとメッセージが出てきたので、ダウンロードっすよ。
解凍したフォルダの中の lib フォルダの中にある FLV フォルダを
plagger/cpan/lib/perl5/site_perl に保存します。
次はちょっと長めのエラーメッセージが出てきました。でも読むのは1行目だけです。
AMF/Perl/Util/Object.pm が足りない模様。ダウンロードするより他ありませんな。
解凍したフォルダの中の lib フォルダの中にある AMF フォルダを
plagger/cpan/lib/perl5/site_perl に保存します。
・・と。ここまでの作業でおそらく今までとは明らかに違う動きを始めたと思います。
サーバが混雑してるときは失敗することもあるようですが、実証環境ではニコニコ動画からFLVファイルを取得し、粛々と変換作業を始めましたヨ。
上のような感じのメッセージが流れてきたらいわゆる キタ――――(゚∀゚)――――!!! 状態ですな。
コンバートは結構のんびりな感じなので、ここまで動けばとりあえず休憩です。
・・しばらく放置してコマンド入力可能な状態になったら動作完了です。
**注意**
二重ダウンロード抑止の確認はこの先の手順の後に試してください。この段階でコマンドを再度実行すると、今ダウンロードした動画が取り込めなくなります。又、ニコニコ動画のマイリストは “公開” に設定しておかないとリストを受信できません。
/Users/UserName/Sites/nicovideo の様子はこんな感じです。
さぁ、あとはポッドキャトの登録でいよいよフィニッシュですヨ。
9.・・と、その前に。
まさかとは思いますが、パーソナルWeb共有が動作していないとうまくいきません。
確認しておいてください。
10.iTunesにポッドキャストのURLを登録する
では、iTunesメニューの 詳細 の中にある ポッドキャストを登録… を選択します。
そして、config.yaml で設定したRSSを保存しているURLを登録すればiTunesに取り込めるようになります。
(この記事の設定では http://localhost/~UserName/nicovideo/nicovideo.xml です)
・・そうするとこんな感じでめでたくiTunesに表示されます。
あとは好きなようにやっちゃってください。
仮に失敗しても、plaggerフォルダごと捨てて作り直せばいいのでお試しで遊ぶのにはちょうど良い方法かと。
では思い思いのニコプラライフをお過ごしください。しかし俺のiPod Touchはいつ届きますか・・。(´ω`)