2006年10月24日

YouTubeの動画を変換してVodafone 702NKに転送する

今回は、Plaggerを使って収集した動画を携帯に転送するまでを書いてみる。

Plaggerを使ってiPod向けの動画に変換するときには、Filter::FFmpegのconfigでdevice:ipodという指定が用意されていて、次のように記述する。

  - module: Filter::FFmpeg
config:
command: C:\Program Files\3GP_Converter034\cores\ffmpeg.exe
device: ipod
dir: C:\Youtube


しかし、702NK向けの動画に変換する場合は、当然用意されていないので、私の場合は次のように設定している。

  - module: Filter::FFmpeg
config:
command: C:\Program Files\3GP_Converter034\cores\ffmpeg.exe
ext: mp4
dir: C:\youtube
options:
format: 3gp
video_codec: mpeg4
bitrate: 300
frame_size: 176x144
audio_codec: aac
audio_sampling_rate: 44100
audio_bit_rate: 64
extra_options: -bitexact -fixaspect -ac 2


このオプションの内容は、変換された動画サイズや、画像の綺麗さをみて、個人的にバランスをとったり、この後の工夫のための設定が含まれているので、必ずこれでなくともいい。

ここから出力された動画ファイルをエクスプローラでコピーするという手順でもいいのだが、どうせなら702NK標準の管理ツールであるNokia PC Suiteからできないか工夫してみた。

Nokia PC Suiteには、Nokia Music Managerというツールが含まれている。これは音楽データの管理ツールで動画用ではないのだが、このツールを利用して702NKに動画を転送する。

音楽向けなため、音楽データの拡張子しか読み込み対象にならないのだが、mp4という拡張子が動画データの拡張子でもあることを利用する。上記の設定でPlaggerを通して変換した動画ファイルには通常だと3gpという拡張子を付けるが、mp4を指定することで対象ファイルにしている。

動画転送向けにNokia Music Managerの設定を変更する。


一般タブ
Music Manager設定画面(一般)

「全般設定」の「電話機にトラックをコピーするときに、マイコレクションにもコピーする」チェックボックスをオフにする。
また、「マイコレクションの保存場所」にPlaggerで指定した出力先のフォルダを指定する。


変換タブ
Music Manager設定画面(変換)

すでにPlaggerで転送用の動画に変換しているので、「自動変換オプション」を「変換しない」にしておく。


Nokia 6630タブ
Music Manager設定画面(Nokia 6630)

Nokia 6630の転送先フォルダで動画フォルダを指定する。外部メモリに転送するなら「E:\Videos」になる。


Music Manager リスト画面

これで、通常どおりNokia Music Managerを使って、マイコレクションに一覧になっている動画を電話機にコピーできる。

エントリにしておいてこんなことを言うのもなんだが、Plaggerを使って702NKに動画を転送する人がどれだけいるのか分からないし、そんな奇特な人は私ぐらいなのかもしれない =p
posted by cuckoo at 20:33 | Comment(0) | TrackBack(2) | plagger

2006年10月19日

Plaggerでdel.ico.usでブックマークしたYouTube動画をiTunesに登録する

先日、「PlaggerでYouTubeの注目されている動画をPodcastに登録する」というエントリを書いたが、今度は自分で見つけた面白いYouTube動画をiTunesに簡単に登録できたらいいなあと思い始めた。

見つけた動画のURLを含むフィードさえ作れればいいのだから、と考えてみると、del.ico.usを使えば簡単にできることに気がついた。

気に入った動画をdel.ico.usに特定のタグをつけて登録すれば、そのタグが含まれるブックマークのフィードが取得できる。
例えば、「youtube」というタグをつけて登録しておいた場合なら、http://del.cio.us/アカウント名/youtubeからフィードを取得できる。

先日のエントリのconfig.yamlのSubscription::ConfigでこのURLを設定するように変更すれば、他の箇所の変更はいらないはずだ。

  - module: Subscription::Config
config:
feed:
- http://del.cio.us/アカウント名/youtube


他のソーシャルブックマークを使っていても、同じようなやり方が使えると思う。

いったん、フィードからiTunesまでの仕組みを作ってしまえば、アイデアしだいで簡単に応用が利くのがPlaggerのいいところである。
posted by cuckoo at 20:16 | Comment(0) | TrackBack(2) | plagger

2006年10月03日

PlaggerでYouTubeの検索結果を取得するときにタイトルを設定するようにするパッチ

PlaggerでYouTubeの検索結果を取得してRSSにしたときに、タイトルが「8KXpV-nNZqI」みたいに無意味な文字の羅列になってしまった。Filter::EntryFullTextでタイトルを設定するようにパッチを当ててみたので、報告のために公開する。

plagger/assets/plugins/Filter-EntryFullText/youtube.yaml
--- youtube.yaml~	Mon Oct 02 00:14:54 2006
+++ youtube.yaml Mon Oct 02 00:11:17 2006
@@ -2,8 +2,8 @@
custom_feed_handle: http://(?:www\.)?youtube\.com/(?:browse|results|my_favorites)
custom_feed_follow_link: /watch\?v=\w+
handle: http://(?:www\.)?youtube\.com/(?:watch)\?v=
-extract: <span class="smallLabel">Added</span>&nbsp;\s*<b class="smallText">(.*?)</b><br/>.*?<span id="vidDescBegin">\s*(.*?)\s*</span>.*?<div class="vWatchEntry">.*?<img class="vimgSm" src="(http://.*?\.youtube\.com/vi/.*?/\d+\.jpg)" />
-extract_capture: date body icon
+extract: <h1>(.*?)</h1>.*?<span class="smallLabel">Added</span>&nbsp;\s*<b class="smallText">(.*?)</b><br/>.*?<span id="vidDescBegin">\s*(.*?)\s*</span>.*?<div class="vWatchEntry">.*?<img class="vimgSm" src="(http://.*?\.youtube\.com/vi/.*?/\d+\.jpg)" />
+extract_capture: title date body icon
extract_date_format: %B %d, %Y
extract_date_timezone: America/Los_Angeles

posted by cuckoo at 00:32 | Comment(2) | TrackBack(0) | plagger

2006年10月01日

PlaggerでYouTubeの注目されている動画をPodcastに登録する

SoftwareDesignの10月号にPlaggerの特集記事があるが、その中に「PlaggerでYouTube Casting」という記事がある。Plaggerを利用して指定のキーワードにマッチするYoutTubeの動画をダウンロード、iTunesに登録するというものだ。
Plaggerのconfig.yamlの内容を詳細に説明してあり、とても分かりやすい。

Software Design (ソフトウエア デザイン) 2006年 10月号 [雑誌]
B000ICL4U0


私は普段PlaggerでGmailに記事を集めて読むのが中心で、動画には手を出していなかったのだが、これを読んで興味が出てきたので挑戦してみることにした。

同じ事をやっても面白くないので、検索条件にマッチする動画を登録するのではなく、はてなブックマークの「注目の動画」にあるものを定期的に取ってくることにした。その方がPlaggerらしいという気もする =)

Plaggerが動作する環境が必要になるのは当然だが、それ以外に準備するものがある。

まず、YouTubeの動画フォーマットをiPodや携帯電話で再生できる形式に変換するためにFFmpegが必要だ。私は「携帯動画変換君」に含まれているものを利用した。
後は、iTunesに登録するRSSをURLで公開するためのWebサーバが必要になる。

それが揃っていれば、後はconfig.yamlを用意するだけだ。ファイルパスは自分の環境に合わせて欲しい。

plugins:
- module: Subscription::Config
config:
feed:
- http://b.hatena.ne.jp/entrylist?url=http%3A%2F%2Fwww.youtube.com&threshold=20

- module: Filter::EntryFullText

- module: Filter::FindEnclosures

- module: Filter::HEADEnclosureMetadata

- module: Filter::FetchEnclosure
config:
dir: C:\Youtube

- module: Filter::FFmpeg
config:
command: C:\Program Files\3GP_Converter034\cores\ffmpeg.exe
device: ipod
dir: C:\Youtube

- module: Filter::RewriteEnclosureURL
config:
rewrite:
- local: C:\\Youtube\\
url: http://example/youtube/

- module: Publish::Feed
config:
dir: C:\Youtube
filename: hatena_hot_entry.rss
format: RSS


Subscription::Configではてなブックマークから注目されている動画のリストを取得している。
ただ、そのまま「注目の動画」のRSSを登録してしまうと、しきい値が低すぎて大量の動画をダウンロードすることになってしまう。
そこで、注目エントリーでYouTubeのURLで絞り込んだ上で閾値を20usersにしてみた。

もう一つ、Plaggerを動作させている環境がWindowsの場合には、注意点がある。
Filter::RewriteEnclosureURLでローカルファイルのパスをURLに置き換えているのだが、この時にWindowsのファイルパスに含まれる「\」をそのまま書くと上手く動作しない。
この原因は、Perlの正規表現で「\」は特別な意味を持つ文字だからなのだが、「\」そのものを表すには、「\\」というように重ねないといけない。

後は、出力されたRSSファイルを、Filter::RewriteEnclosureURLで指定したURLでiTunesにPodcastとして登録するだけだ。上記の設定例だとhttp://example/youtube/hatena_hot_entry.rssが登録するURLになる。

iTunesの登録画面

iTunesで再生も出来るし、そのままiPodに転送してもいい。

iTunesのビデオ画面

ここで紹介しているconfig.yamlはiPod向けのものだが、実は、私の持っているiPodは第4世代で動画が見れないため、Vodafone 702NKというNOKIAの携帯電話に転送して動画を見ている。
そのため、Plaggerでは、iPod向けではなく、702NK向けのフォーマットに動画を変換していたりする。
このネタに興味がある人がいるのか分からないが、時間があればエントリにするかもしれない。
posted by cuckoo at 17:58 | Comment(0) | TrackBack(3) | plagger

2006年05月29日

PlaggerでAmazonアソシエイトの注文レポートを送る

※このエントリで紹介しているパッチはすでに不要になっているので注意。

Plaggerでは、プラグインの Plagger::Plugin::CustomFeed::AmazonAssociateReportJPを使うと、Amazonのアソシエイトレポートの情報を扱える。このプラグインでは、現四半期の売上、昨日の売上レポート、昨日の売上合計レポートが対象になっている。
このblogでもAmazonアソシエイトは導入しているのだが、売れたためしがないので売り上げレポートを見ても楽しくない。
普段は、注文レポートの「クリックのみで注文のない商品」のリストを見るくらいだが、Plaggerのプラグインには、注文レポートの情報は含まれない。ふと、しげふみメモさんのところで、Plaggerで注文レポートが見れたらなあと書かれていたのも思い出したので、パッチを当ててみた。


--- AmazonAssociateReportJP.org Fri Mar 31 20:58:50 2006
+++ AmazonAssociateReportJP.pm Mon May 29 13:38:51 2006
@@ -44,6 +44,13 @@
$earnings_entry->body( $mech->earnings_html);
$feed->add_entry($earnings_entry);

+ my $orders_entry = Plagger::Entry->new;
+ $orders_entry->title('注文レポート');
+ $orders_entry->link('https://associates.amazon.co.jp/gp/associates/network/reports/report.html');
+ $orders_entry->date( Plagger::Date->now() );
+ $orders_entry->body( $mech->orders_html);
+ $feed->add_entry($orders_entry);
+
$context->update->add($feed);
}

@@ -102,6 +109,21 @@
$html = $1;
}
if ($content =~ m!(<table class="earningsReportSummary">.*?</table>)!is) {
+ $html .= $1;
+ }
+ return $html;
+}
+
+sub orders_html {
+ my $self = shift;
+ my $html;
+ $self->mech->follow_link(url_regex => qr/report\.html.*?ordersReport/);
+ $self->mech->submit_form(form_number => 8);
+ my $content = $self->mech->content;
+ if ($content =~ m!(<table class="report" id="ordersReport">.*?</table>)!is) {
+ $html = $1;
+ }
+ if ($content =~ m!(<table class="ordersReportSummary">.*?</table>)!is) {
$html .= $1;
}
return $html;


これでAmazonアソシエイト・セントラルにログインすることは、ほとんどないかも。


2006/10/2 追記。

だいぶ前の話になってしまうのだが、このパッチは改良されて正式に取り込まれたため必要なくなった。
posted by cuckoo at 13:10 | Comment(2) | TrackBack(1) | plagger

2006年04月27日

Plaggerでフィードをエントリごとに分割してGmailに送る

※このエントリで紹介しているパッチはすでに不要になっているので注意。

普段、Bloglinesに登録しているフィードをGmailに送っているのだが、エントリごとに分割して送っている設定例が見つからなかったので、自分の設定例をさらしてみる。

- module: Subscription::Bloglines
config:
username: sample@sample.com
password: pass
mark_read: 1
fetch_meta: 1

- module: Filter::BreakEntriesToFeeds

- module: Filter::HatenaBookmarkUsersCount
- module: Widget::HatenaBookmarkUsersCount

- module: Filter::StripRSSAd

BreakEntriesToFeedsモジュールを呼べばいいだけだ。要するに設定が簡単すぎるから、設定例が見つからなかったのかもしれない。この例では、ついでに、はてなブックマークのブックマーク数を追加して、RSS広告を削除している。

先日、Plaggerでメールの件名をエントリのタイトルにする場当たりパッチを載せておいたが、エントリごとに分割する場合には、Fromと件名が両方ともエントリのタイトルになってしまう。そこで、私は次のパッチも当てて使っている。

--- BreakEntriesToFeeds.org Tue Apr 11 05:34:04 2006
+++ BreakEntriesToFeeds.pm Mon Apr 24 12:45:01 2006
@@ -17,7 +17,7 @@
my $feed = $args->{feed}->clone;
$feed->clear_entries;
$feed->add_entry($args->{entry});
- $feed->title($args->{entry}->title);
+# $feed->title($args->{entry}->title);

push @{$self->{feeds}}, $feed;
}

このパッチを当てると、

From: フィード名
件名: エントリのタイトル

という形で送られるようになるはずだ。

ひとつのエントリが一行になるので、Gmailでの見通しがよくなる気がするがどうだろう。ただ、油断していると未読があっという間に200、300になるので注意。

と、ここでお決まりの文句を。

くれぐれも自己責任でどうぞ。


2006/10/2 追記。

Filter::BreakEntriesToFeedsにuse_entry_titleが追加され、このパッチは必要なくなった。
posted by cuckoo at 12:59 | Comment(0) | TrackBack(0) | plagger

2006年04月24日

PlaggerでGmailへのメールの件名をエントリのタイトルにする場当たりパッチ

私の場合、今やPlaggerは情報収集に欠かせないものになっているのだが、Gmailにフィードを送ると、メールのFromと件名の両方にフィードのタイトルが入る。一般的には、これでいいと思うのだが、個人的には、メールの件名には最初のエントリのタイトルが入っているほうが都合がいいので、場当たり的なパッチを当ててみた。

--- Gmail.org   Sat Apr 01 08:12:30 2006
+++ Gmail.pm Mon Apr 24 13:29:46 2006
@@ -43,7 +43,7 @@
my($self, $context, $args) = @_;

my $feed = $args->{feed};
- my $subject = $feed->title || '(no-title)';
+ my $subject = ($feed->entries)[0]->title || '(no-title)';
my $body = $self->templatize($context, $feed);

my $cfg = $self->conf;


適用前
From: ITmedia エンタープライズ 最新記事一覧
件名: ITmedia エンタープライズ 最新記事一覧

適用後
From: ITmedia エンタープライズ 最新記事一覧
件名: ビジネスマンが最も評価するブランドは?

一応、注意。このパッチは個人的なカスタマイズのために作ったので、パッチを当てるなら自己責任でと言っておく。


2006/10/2 追記。

だいぶ前の話になってしまうのだが、Filter::BreakEntriesToFeedsにuse_entry_titleが追加されたので、このパッチは必要なくなった。
エントリのタイトルにする場合には、次のように指定すればいい。

  - module: Filter::BreakEntriesToFeeds
config:
use_entry_title: 1



2006/10/3 さらに追記。

use_entry_titleを指定するとFromと件名の両方がエントリのタイトルになってしまうので、このパッチはまだ必要だった。
use_entry_titleを指定しないでパッチを当てると、上記の適用後の状態と同じになる。
posted by cuckoo at 21:08 | Comment(0) | TrackBack(0) | plagger

2006年04月22日

PlaggerでPOP before SMTP

blogやあとで読むためのブックマークの情報を効率よく読むために、Plaggerを使ってGmailに集約している。メールの送信には、契約しているプロバイダのサーバを使おうとしたのだが、「POP before SMTP」でないと送れない。

すぐに設定が見つからなかったので、メモしておく。


- module: Publish::Gmail
config:
pop3:
host: pop.sample.com
username: name
password: pass
mailto: user@sample.com
mailfrom: user@sample.com
mailroute:
via: smtp
host: smtp.sample.com
username: name
password: pass

posted by cuckoo at 21:20 | Comment(0) | TrackBack(0) | plagger
タグクラウド

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。