podgetを用いたポッドキャストのダウンロードと携帯プレーヤへの自動転送

 ポッドキャストをダウンロードしたいというユーザ側からの声の高まりに応える形で、いわゆるポッドキャッチャ(podcatcher)というプログラムが作成されている。それらはいずれもよくできたアプリケーションではあるのだが、サイトにあるポッドキャストをまとめてダウンロードし、手元のMP3プレーヤに同期させるという処理までは面倒を見てくれない。私の場合もMonopodを用いてポッドキャストをダウンロードしてから、手作業でMP3プレーヤに移動するという作業を行っていたが、それはpodgetというプログラムに出会うまでの話であった。

 podgetにcronとシェルスクリプトとを組み合わせることで、10分間という私の貴重な時間を毎日削り取っていた煩雑な作業をすべて自動化することに成功したのである。

 最初に必要な作業は、podgetをダウンロードして、新規に作成したpodgetディレクトリに展開しておくことである。次にsudoないしはroot権限に切り換えてmake installとコマンドを入力してpodgetを起動させると、後は必要な設定作業が自動的に進行していく。デフォルト設定のままにしておくと、リストに事前登録されたポッドキャストが、初回実行時にまとめてダウンロードされるはずだ。そうした処理が不要な場合は-Cオプションを付けておけば、podgetはクリーンアップモードに移行する。

 podgetを実行すると、その初回実行時にpodgetrcおよびserverlistという2つの設定ファイルが~/.podgetディレクトリに作成される。podgetrcにはpodgetの設定パラメータを指定し、serverlistにはダウンロードしたいポッドキャストのRSSフィードを登録すればいい。その他の設定項目についてはpodgetの操作法をまとめたページに解説されている。

一般のミュージックプレーヤへのポッドキャストデータの転送

 現在市場で入手可能なミュージックプレーヤは星の数ほど存在しているが、これらの操作法はまったく統一されていない。とは言うものの、その多くは外付けハードドライブとしてLinuxからアクセスすることができる。データの同期処理を自動化するには、その辺を上手く利用することだ。例えば私の場合は、下記のようなシェルスクリプトを組んでみた。

#!/bin/sh
mount /dev/sda1 /media/usbdisk
cp -Ru ~/POD /media/usbdisk
umount /media/usbdisk

 このスクリプトでは、プレーヤをデバイス(/dev/sda1)として/media/usbdiskにマウントさせてから、新規ないしは変更されたファイルを再帰的にコピーさせるという処理を行っている。最後に実行させているのは、デバイスのアンマウントである。なお、このスクリプトを実行するユーザにはマウント権限が必要だ。

iPodにポッドキャストデータを転送する場合

 上記のスクリプトはたいていの携帯ミュージックプレーヤに対応しているはずだが、iPodについてはGNUpodを用いた自動処理をするという手もある(iPodはLinuxでの使用を正式にサポートしておらず、最悪の場合は致命的なダメージを負う可能性があるので、その辺は注意が必要である)。

#!/bin/sh
gnupod_INIT.pl -m /media/ipod
find ~/POD -type f -name '*.mp3' -exec gnupod_addsong.pl -m /media/ipod {} \;
mktunes.pl -m /mnt/ipod
umount /mnt/ipod

 このスクリプトでは、iPodのマウント、格納してある全MP3ファイルの転送、データベースの更新、マウントポイントのアンマウント、という処理を行わせている。なお先の場合と同様、このスクリプトを実行するユーザについてもマウント権限が必要である。

プロセス全体の自動化

 crontabに下記の行を追加しておくと、podgetおよび同期スクリプトの実行を含めてまるごと自動化することができる。

15 04 * * * /usr/local/bin/podget -s && /path/to/sync/script

 これは、毎朝4時15分にpodgetと同期スクリプトを実行しろという、cronに対する設定である。また当たり前な話だが、同期スクリプトを正常に機能させるには、事前にミュージックプレーヤがコンピュータに接続されていなければならない。

 更新頻度の高いポッドキャストを複数購読している読者であれば、それらのアップデート状況を追跡するのが思いの外に繁雑な作業であることを実感していることだろう。ここで紹介した自動処理プロセスを利用すると、そうした手間を大幅に削減できるはずであり、私の場合は、優雅に朝の散歩へとしゃれ込む余裕を確保できたくらいである。

Chad Filesはアーカンソー出身のソフトウェア開発者で、Webベースアプリケーションの構築に10年以上の経験を有しており、現在は様々なオープンソース系プロジェクトに開発者として参加している。

NewsForge.com 原文