【プログラム】PerlでポッドキャストのRSSを読む
ポッドキャストのRSSを読む必要が生じたのでPerlのモジュールを探す。XML::FeedPPというモジュールで目的が達成できそうなので試してみました。
下準備
XML::FeedPPを使うにはXML::TreePPというモジュールが必要だったので両方とも作者様のサイトからダウンロードしました。モジュールの使い方もここに書いてあるので参考にしました。
両方ともコンパイル不要のPure Perl実装なので.pmファイル単体をコピーするだけで利用できた。とても助かります。
コンストラクタ
いろんなやり方がありましたが今回はWeb上のRSSファイルを解析したいので下記のように書きました。
my $feed = XML::FeedPP->new('http://example.com/podcast.rss');
newメソッドの引数に読みたいRSSのURLを指定します。
エピソードごとに読みたいデータ
ポッドキャストのエピソードごとに「タイトル」「公開日時」「音声ファイルのURL」の情報を得たい。
foreach my $item ($feed->get_item()) {
...
my $title = $item->title(); # タイトル
my $pub_date = $item->pubDate(); # 公開日時
my $enclosure_url = $item->get('enclosure@url'); # 音声ファイルのURL
...
}
get_itemメソッドでエピソードごとに順番にアクセスでき、titleメソッドでタイトル、pubDateメソッドで公開日時を入手できた。
音声ファイルのURLは専用のメソッドがないのでgetメソッドの引数に入手したいタグの情報を入れる。enclosureタグのurlプロパティーの値に音声ファイルのURLが書いてあったので、’enclosure@url’と書いたら得ることができました。
プログラム完成に近づいた
使い勝手の良いモジュールがすぐに見つかって助かりました。作者様が日本人のようなので解説ページも日本語だったので使い方もすぐにわかって良かった。
StartupStockPhotosによるPixabayからの画像を使用しています。
ディスカッション
コメント一覧
まだ、コメントがありません