September 14, 2004

iTunes で聴いてる曲に Amazon アフィリエイトしてさらに画像も

Hacking the Hack #92: iTunes COM API で今聞いている曲を Blog エントリに掲載: blog.bulknews.net
Blog Hacks Hack #92 では、Winamp とそのプラグイン amip を使用して、今聞いている曲をエントリに追記する方法を紹介していますが、iTunes の場合は COM を利用してもっとスマートにできます。

某氏からのリクエストでこれにアートワークもひろってきて Amazon アフィリエイトリンクもつけてみる。

ActivePerl で Net::Amazon が必要。環境が用意できない場合は、JScript 版で開く URL を、G-Tools とか amazlet とかの検索フォームにしてしまうのが手っ取り早いかも。何ステップか増えてしまいますが。

JScript 版と基本的にやってることは同じですね。InternetExplorer.Application のいじり方で若干はまった。CPAN にある Win32::IE::Mechanize がその辺を隠蔽して WWW::Mechanize とおなじ API 提供してて素敵。

use strict;
use Encode;
use Net::Amazon;
use Net::Amazon::Request::Keyword;
use Win32::OLE;

# Configurtaion: path to your MT script
our $MT = "http://blog.bulknews.net/mt/mt.cgi";
our $BlogID = 6;
our $DeveloperToken = "YOUR-TOKEN";
our $AssociateID    = "yourassoc-22";

# Get Trackname from iTunes using COM
my $itunes = Win32::OLE->new("iTunes.Application");
my $track  = $itunes->CurrentTrack;

# Create text for "Now Playing"
my $now_playing = sprintf "Now Playing: %s - %s (%s)",
  $track->Artist, $track->Name, $track->Album;

# Search AWS for Artist - Album
my $item = search_aws($track->Artist, $track->Album, "", "music");
$item  ||= search_aws($track->Artist, $track->Album, "jp", "music-jp");

if ($item) {
  $now_playing = sprintf qq(<a href="%s"><img src="%s" alt="%s - %s" border="0" clear="all" /><br />%s</a>),
    $item->url, $item->ImageUrlMedium,
    $track->Artist, $track->Album, $now_playing;
}

# Open "New Entry" page of MT in IE using COM
my $url = $MT . "?blog_id=" . $BlogID . "&__mode=view&_type=entry";
my $ie  = Win32::OLE->new("InternetExplorer.Application");
$ie->{Visible} = "TRUE";
$ie->Navigate($url);

# Set "Now Playing:" text in a "exntended" textarea
1 while $ie->Busy;
1 while $ie->document->readyState ne "complete";

$ie->Document->forms(2)->text_more->{value} = $now_playing;

sub search_aws {
    my($artist, $title, $locale, $mode) = @_;
    warn "Searching $artist - $title on Amazon...\n";
    my $attr;
    $attr->{token}  = $DeveloperToken;
    $attr->{locale} = $locale if $locale;
    $attr->{affiliate_id} = $AssociateID;

    my $ua = Net::Amazon->new(%$attr);

    my $keyword = "$artist $title";
    Encode::from_to($keyword, "Shift_JIS" => "UTF-8");
    my $req = Net::Amazon::Request::Keyword->new(
        keyword => $keyword,
        mode    => $mode
    );

    my $response = $ua->request($req);
    my $item = ($response->properties())[0];
    return $item;
}
Posted by miyagawa at September 14, 2004 06:41 PM | Permalink | Comments (0) | TrackBack(7)
Comments
Trackbacks
TrackBack URL for this entry: http://blog.bulknews.net/mt3/mt-tb.cgi/1255
iTunes で聴いてる曲に Amazon アフィリエイトしてさらに画像も
Excerpt: 面白そうなことをやってるのをファッケン!iTunes で聴いてる曲に Amazon アフィリエイトしてさらに画像も時間とって、ゆっくり見たいと思います。
Weblog: T@Dev
Tracked: September 14, 2004 07:21 PM
イクぜ!まだまだ iTunes で COM マンセー
Excerpt: 最近すっかり iTunes づいてるというか、COM マンセーの miyagawa さんが、iTunes + Blog ガラミでまたひとネタやっていた。 blog.bulknews.net - iTunes で聴いてる曲に Amazon アフィリエイトしてさらに画像もBlog Hacks Hack #92 では、Winamp とそのプラグイン amip .
Weblog: にぽたん研究所
Tracked: September 14, 2004 07:44 PM
iTunes で聴いてる曲に Amazon アフィリエイトしてさらに画像も
Excerpt: Hacking the Hack #92: iTunes COM API で今聞いている曲を Blog エントリに掲載: blog.bulknews.net Blog Hacks Hack #92 では、Winamp とそのプラグイン amip を使用して、今聞いている曲をエントリに追記する方法を紹介していますが、iTunes の場合は COM を利用して�...
Weblog: MEXAGON::blog
Tracked: September 15, 2004 02:02 AM
宮川さんはすげぇとおもったDay
Excerpt: いやーすごい。参った。 というわけでituneの情報のプレイリストを外部に取り出すソースコードを見てみた。 で、肝となる部分をば・・・ ----------------------------- use Win32::OLE; my $itune=Win32::OLE-&gt;new("iTunes.Application"); DEBUG Dumper $itune
Weblog: PerlModule備忘録
Tracked: September 19, 2004 11:05 PM
サイドバーに iTunes 最近聴いてた曲を表示
Excerpt: blog.bulknews.net : iTunes で聴いてる曲に Amazon アフィリエイトしてさらに画像も 先日 AirMac Express with AirTunes 買ったので、iTunes を使う機会が多くなってきました。 そういうわけで、最近 iTunes で聴いた曲をサイドバーに表示でもしてみようかなあと。 bulkn...
Weblog: こりゃまた余談
Tracked: September 30, 2004 07:09 PM
iTunes で聴いてる曲に Amazon アフィリエイトしてさらに画像も
Excerpt: これおもしろいですね 俺ゎいつも、iTunesで曲を聴いて、ぃぃなと思ったらブログに載せてるんですけどこれならそぉぃぅ手間が省けそう ぃーなー、実装したぃ。...
Weblog: 笳ɯTUDIO/GB
Tracked: April 3, 2005 09:06 PM
携帯からiTunesを操作する
Excerpt: 携帯からiTunesを操作する仕掛け。 [PC(iTunes)]------[CGI]------[携帯] セットアップは、 1、CGIを仕掛ける。 2、PCで「cscript iTunesRemote.js http://[CGIのURL]」 3、CGIにケータイからhttp://[CGIのUR...
Weblog: スカンク日記2.0
Tracked: February 14, 2006 12:27 AM
Post a comment