Last.FMのRecent TracksのRDFを取得・表示するPerlスクリプト (3/10)
2/26「Last.FMの「Recent Tracks」のRDFをメールで受信したいのですが…」にも書いた通り、 Last.FMのRecent TracksのRDFを取得・表示(してからメール送信)するPerlスクリプトを作ってみました。本『Blog Hacks』を片手に、特に98ページから108ページを参考にして (^^;
Perlの超超超初心者なので、汚いところや変なところはおめこぼしを…。
#! /usr/bin/perl
use strict;
use LWP::Simple;
use XML::RSS;
use Jcode;
# Last.FM の Recent Tracks の RDF のURL
my $url = "http://ws.audioscrobbler.com/rdf/history/(ユーザ名)";
my $xml = get($url) or die "Can't GET $url\n";
# ローカルのRDFの保存先
my $local ="/home/hogehoge/tmp/lastfm.xml";
my $ocode = "euc"; # 変換先の文字コード:sjis,euc,jis,utf8
mirror($url => $local);
my $rss = XML::RSS->new();
$rss->parsefile($local);
for my $item (@{$rss->items}) {
# 文字コードを UTF-8 から変換
my $desc = $item->{description};
Jcode::convert(\$desc,$ocode,'utf8');
# link は audioscrobbler から Last.FM の方に張り変える。
my $link_lastfm = $item->{link};
$link_lastfm =~ s/http:\/\/www.audioscrobbler.com\/music\//http:\/\/www.last.fm\/music\//;
# アーティスト、曲名、リンクを出力
printf "| %s\n%s\n\n", $desc, $link_lastfm;
}
RSSをパースするところは『Blog Hacks』をそのまま書き写したので、よく分かっていません (^^;
本当は前回の「Recent Tracks」との差分だけを表示できるようにできたらいいので、宿題。
以上。

Amazon.co.jp: 本: Blog Hacks ―プロが教えるテクニック&ツール100選
http://www.amazon.co.jp/exec/obidos/ASIN/4873111749
| 固定リンク | コメント (0) | トラックバック (0)

