***** 始める前の注意書き *****
著者の知識は残念ながら趣味レベルを脱していません。
結果オーライ的な手法であることは否めず過度な期待は禁物です。
尚、以下の記事はターミナル?コマンド?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.パッチ当て作業

ターミナルを起動してデスクトップに移動します。
cd Desktop
一括処理はちょっと怖いので一つづつ処理しますか。まずは FetchNicoVideo.pm から。
patch < filter-fetch-nico-video.diff
patching file FetchNicoVideo.pm と出ればOKです。変なエラーが出る場合は直接ソースを見ながら手修正する必要がありますね・・。
続いて FFmpeg.pm にもパッチを当てます
patch < FFmpeg.diff
patching file FFmpeg.pm と出ればOKです。こちらも変なエラーが出る場合は直接ソースを見ながら手修正する必要がありますね・・。
上記2つがうまく行ったら FetchNicoVideo.pm を然るべきディレクトリに移動させます。
mv FetchNicoVideo.pm plagger/cpan/lib/perl5/site_perl/Plagger/Plugin/Filter
そして FFmpeg.pm も然るべきディレクトリに移動させます。
mv FFmpeg.pm plagger/cpan/lib/perl5/site_perl/Plagger/Plugin/Filter
ひとまずターミナルの使用はここまでです。ターミナルを閉じてください。
デスクトップ上に残った filter-fetch-nico-video.diff と FFmpeg.diff や ~.orig などの派生ファイルはもう使わないのでゴミ箱にポイで構いません。
5.config.yamlの作成
Plaggerを動作させる為のスクリプトを準備します。作成時の注意点としてはTabは使わないこと(エラーが出ます)、テキストエンコードはEUCが無難とかぐらいですか。参考までに自分が作ったものを載せておきます。
config.yaml ファイルをダウンロードする
中身の解説しておきますね。ちなみにUserNameはいまログインしているユーザー名を入力してください。
global:
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 -r 29.97 -vcodec h264 -g 250 -aspect -b 600 -level 13 -loop 1 -sc_threshold 40 -partp4x4 1 -rc_eq blurCplx^(1-qComp) -refs 3 -maxrate 768 -async 50 -acodec aac -ar 44100 -ac 2 -ab 128'
- 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ディレクトリへ移動します。
cd Desktop/plagger
以下のコマンドを実行しPlaggerを起動してみます。
./bin/plagger -c ./config.yaml

・・このように間違いなくエラーメッセージがずらずら出ます。(ぇ
今までの工程をひっかかりなく進めていたとすれば、上のスクリーンショットと同じ内容のエラーメッセージが出ているはずです。もし違うならどこかの手順で失敗してる可能性が高いです。
この赤線のエラーメッセージは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 が足りないとメッセージが出てきたので、ダウンロードっすよ。
FLV::Info
http://cpan.uwinnipeg.ca/module/FLV::Info
解凍したフォルダの中の lib フォルダの中にある FLV フォルダを
plagger/cpan/lib/perl5/site_perl に保存します。
次はちょっと長めのエラーメッセージが出てきました。でも読むのは1行目だけです。
AMF/Perl/Util/Object.pm が足りない模様。ダウンロードするより他ありませんな。
AMF::Perl
http://cpan.uwinnipeg.ca/module/AMF::Perl
解凍したフォルダの中の 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はいつ届きますか・・。(´ω`)
コメント (13)
連続ですみません。何度かやり直した結果、エラーコードが変わりました。
説明文を見てて気付いたのですが、
>>デスクトップ上に残った filter-fetch-nico-video.diff.txt と FFmpeg.diff.txt や ~.orig などの…
と記述がありますが、これらのファイルは.txtを付けた状態で実行する物では無いという認識でいるのです。
>>patch < filter-fetch-nico-video.diff
とあるように、.txtをを付けると実行できないコマンドも書いて有るので…
その点自分が間違えてたりするということは無いでしょうか。
また、この記事はでDesktopで実行するようになっていますが、Desktop以外でも問題は無いでしょうか。
自分でMoviesフォルダ内にNivoVideo等のフォルダを作って(日本語未使用)実行しています。
それによって変わるコマンドにもミスはないはずです。config.yamlのpath等もミスなく(ファインダー上でコマンド+G等で確認)書いているはずなのです。
エラー内容は
Plagger [info] plugin Plagger::Plugin::Subscription::Config loaded.
Unrecognized character \x80 at /Users/darkdaft/Movies/NicoVideo/Soft/plagger/cpan/lib/perl5/site_perl/Plagger
/Plugin/Filter/FetchNicoVideo.pm line 20, line 1.
Compilation failed in require at /Users/darkdaft/Movies/NicoVideo/Soft/plagger/cpan/lib/perl5/site_perl/Plagger.pm line 232, line 1.
という物でした。
本当に申し訳ないのですが解決方法をご教授下さい。よろしくお願いいたします。
投稿者: darkdaft | Sun, Oct-07-2007 10:50
darkdaftさん、コメントありがとうございます!
連続でいただいていたようですが、こちらの設定に不備があったようで、1件しか届いていませんでした。
ご指摘いただいた~.diff.txtの記事は作成当初そのようなファイルを用いていたため修正漏れで残っていたものです。該当部分については修正しました。ご指摘ありがとうございました。
エラーメッセージについてですが、恐らく FetchNicoVideo.pm の中に認識できない全角文字か何かが混入しているものと思います。ソースを見て確認するか、もう一度 FetchNicoVideo.pm の操作をやり直す必要があると思います。
できれば、一度記事の通り作成してみてください。こちらでは記事以外の操作を追うことは困難です。記事通り作成して動くのであれば、パス設定を書き換えると他のフォルダに設置しても動くはずです。
投稿者: shin | Sun, Oct-07-2007 12:40
こんにちは。いきなりの質問で恐縮ですが、できあがったxmlファイルをiTunesへ登録しても、ファイルのダウンロードが開始されません。xmlファイルの中をのぞいてみると、どうやらダウンロードされるべきファイルの場所が全く書いてありません。解決方法をご存知でしたら、是非ともおねがいいたします。
投稿者: ささき | Sun, Oct-07-2007 20:08
ささきさん、コメントありがとうございます。
サンプルで紹介している二重ダウンロード抑止の動作確認としてマイリストの更新なしで再度コマンドをキックしませんでしたか?もしくは、処理中にタイムアウトでダウンロード失敗したときに再度コマンドを実行したとか。
もしそうだとすると、RSSファイルが上書きされたために <enclosure length=~ 行が消えてしまっているのだと思います。この現象についてはこちらでも確認できているのですが、残念ながらPlagger初心者の私はそれを解決する術を持ち合わせていません。
plaggerフォルダに出来たdeduped.dbを削除してもう一度処理を実行してみてください。コンバート処理が終わったらRSSの中身を確認して <enclosure length=~ の行が入っていればiTunesで取り込めるはずです。私もこの対策についていろいろ調べているところです。解決法ご存知の方のコメントもお待ちしています・・。
投稿者: shin | Sun, Oct-07-2007 21:10
ご回答ありがとうございます。shinさんご指摘の通り、二重ダウンロード抑止の動作確認としてマイリストの更新なしで再度コマンドをキックしておりました。deduped.dbを削除の上、もう一度コンバートを試みたところ、問題のないxmlファイルが出来あがり、iTunesへのダウンロードも、iPod touchでの視聴もできました。たすけていただき、本当にありがとうございます。
投稿者: ささき | Sun, Oct-07-2007 22:54
ささきさん
問題解決できてよかったです!確かに二重ダウンロードは試しておきたくなりますね・・。ちょっと本文に注意書きを足しておきます。
投稿者: shin | Mon, Oct-08-2007 00:16
ご返答頂きありがとうございます。
エラーメッセージの内容が理解できました。そういうことだったんですね。
問題のファイルにMacでは表示できないのか、全く横幅の無い文字が入っていました。
Jeditの正規表現検索機能を使ってエラーメッセージにある16進数で検索をしたら見つける事が出来ました。コピペの時か、DLした際に何かデータに故障が有ったようです。
それと、自分もささきさんと同じ現象が起りました。
他にも、何故か上手くいかないコマンドがあって、エラーの出たファイルをEUCで、エンコードし直す。等の対処を行った所上手くいったという事もありました。
とりあえず、コマンド実行後に精製されるファイル全てを消し(site内と・DB File)、実行しなおした所上手くいきました!
それと、殆どのファイルが下記のようなメッセージで跳ね返されてしまいます。
Plagger::Plugin::Filter::FetchNicoVideo [warn] Not Found FLV URL : sm00000
試しにねこ鍋(当記事でサンプルとして実行されている物)をやってみた所、上手くいきました。Safari側のキャッシュ等は全く無関係だと思うので、ニコニコ側のRSSのデータが変なのでしょうか?
ちなみに、これらのエラーが出た際も、動画はDLされないのは当然ですが、XML(RSS)を見た所だと、記事事態は存在しているみたいですね。
あと、これは自分が気付かなかっただけなのですがマイリストは公開状態にしてないとダメなんですね。ログインするような記述があったのでいいのかと思っていました。
Not Found の問題が解決したら、Blogでも紹介したいと思います!
コレ用のAppleScriptとか誰か作ってないかな…do shell script書くだけならもう出来てるんですが、エラーメッセージが見たい…。
気が向いたら、AppleScript書いてアプリケーション用のアイコンでも作ってみます!!TrackBackしますので、よろしくお願いします!
投稿者: darkdaft | Mon, Oct-08-2007 00:46
こんにちは
Plagger::Plugin::Filter::FetchNicoVideo [warn] Not Found FLV URL sm*******
と出てxmlしか生成されなかったのですが、混雑していて接続に失敗したということでしょうか?
ちなみに(このコメントの投稿時)ブラウザで見ても中々繋がらない状況です
投稿者: 匿名 | Mon, Oct-08-2007 14:50
匿名さん
ダウンロード中にタイムアウトを起こして失敗しているようです。
空いた時間にするか、プレミアムアカウントにするか悩ましいところですね。
投稿者: shin | Mon, Oct-08-2007 16:14
darkdaftさん
問題解決できたようでよかったです!
Plagger::Plugin::Filter::FetchNicoVideo [warn] Not Found FLV URL : sm00000
というメッセージはニコニコの動画サーバから応答が無い場合にも出ます。消されてしまったという可能性もなくはないですが、大抵はタイムアウトによるものと思われます。マイリストの件については注意書き追加しておきますね。
別アカウントでプレミアムアカウントを作ってPlagger用に割り当て、プレイリストを従前のアカウントで作成するというのも手ではあります。トラックバックお待ちしています!
投稿者: shin | Tue, Oct-09-2007 01:28
ご返答ありがとうございます。
タイムアウトですか…。Premiumアカウントで、Safari等では見接続状態でも全く同じなんですよね。DNSの設定が特殊だからなのでしょうか…。タイムアウトの時間調節をしてみます。
投稿者: darkdaft | Fri, Oct-12-2007 00:08
あの、PC初心者で、よく分からないんですが、もしよかったら、リモートで教えてくださいませんか?
初対面なのにすみません;
windows liveメッセンジャーでなんですが・・・。
ヤフーメールにてご連絡ください><
よろしくお願いします!!!
投稿者: あすみ | Fri, Dec-14-2007 12:47
おそらくあすみさんのPCはWindowsXPかVistaじゃないかなと思うのですが、如何でしょうか。今回紹介した記事をWindows環境で実現するには手順が複雑になってしまうので、初心者の方にはあまりおすすめできません。
Windowsで手軽にニコニコ動画をiPodに録画するには以下の市販のソフトがお勧めです。
チューブ&ニコ録画
http://www.magnolia.co.jp/tnico/
パッケージ版
http://www.amazon.co.jp/gp/product/B000Y1QW48?ie=UTF8&tag=magnolia064-22&linkCode=as2&camp=247&creative=1211&creativeASIN=B000Y1QW48
無料でほぼ同じような機能を持ったソフトもありますが、若干インストールに手順が必要なのと、マニュアル的なものはあまり期待できません。こちらも紹介しておきます。
ニコニコPodder
http://www.rocaz.net/nicop/
ブログで紹介した記事も上記ソフトもやっていることは同じでほぼ同じ結果が得られます。
Windows環境なら手軽に始められる上記のソフトの使用を検討されたほうが安心して使えると思います。
大してお力にはなれなくて申し訳ありませんが、がんばってください!
※メールで返事しようと思いましたが届きませんでした。
投稿者: shin | Tue, Dec-18-2007 09:00