subscribeonandroid.com 経由のpodcast をAndroid 以外で購読する

最近のPodcast の購読はPodget というアプリケーションで購読してダウンロードしたファイルを聞いています.

cron で回しているのですが,最近購読開始したPodcast がエラーになっています.購読URL を間違えたかな?と確認するとURL はPodcast ページのRSS のものと同じで正しそうだけどウェブブラウザで閲覧するとhtml のページが表示されています.

これはPodcast サービスがSubscribe on Android というサービスを利用していて,対応アプリでアクセスするとiTunes のようにワンクリック登録が出来てそうでない場合Android Podcast アプリを紹介するサービスのようです.podget はAndroid でもないしもちろん対応アプリケーションでもないので駄目ということのようです.

User-Agent で判別しているのかな?だとするとUser-Agent を詐称するGW を用意すれば良さそう対応アプリケーションのPodcastAddict に適当な自分の管理しているサーバのアドレスを登録してアクセスさせてログでUser-Agent を確認してみます.

127.0.0.1 - - [05/Apr/2019:19:43:23 +0900] "GET /podcast HTTP/1.1" 404 3806 "-" "PodcastAddict/v2 - Dalvik/2.1.0 (Linux; U; Android 9; PH-1 Build/PQ1A.190105.045)"

PodcastAddict/v2 - Dalvik/2.1.0 (Linux; U; Android 9; PH-1 Build/PQ1A.190105.045) というのがそれのようです.

curl でUser-Agent を詐称してアクセスしてみましたがhtml ドキュメントが渡ってきます.この方法ではダメそう.

$ curl -sA 'PodcastAddict/v2 - Dalvik/2.1.0 (Linux; U; Android 9; PH-1 Build/PQ1A.190105.045)' http://subscribeonandroid.com/example.com/rss | head -1
<!DOCTYPE html>

以下のページを見ると,subscribeonandroid.com のURL の後ろに RSS のURL を指定してあるよう.

Web Developers
Web developers are welcome to create Subscribe On Android links and buttons.

http://geeknewscentral.com/podcast.xml
Separate the scheme from the URL to a podcast feed.

http:// geeknewscentral.com/podcast.xml
Add “subscribeonandroid.com/” between the scheme and remaining URL.

http:// + subscribeonandroid.com/ + geeknewscentral.com/podcast.xml
The Subscribe-on-Android URL will have the following format:

http://subscribeonandroid.com/geeknewscentral.com/podcast.xml
Both http:// and https:// protocols are supported.

単純に subscribeonandroid.com/ を削ればいけるのではと試すとそのとおりでPodget でも問題なく購読できるようになりました.