通过结合thesetwo问题的答案,我找到了做我想做的事情的方法。
查找播客的示例
首先:使用 RSS 生成器从 iTunes 中获取播客列表。我还不确定查询参数是如何工作的,但这里是美国顶级技术播客的 RSS 提要。
http://ax.itunes.apple.com/WebObjects/MZStoreServices.woa/ws/RSS/toppodcasts/sf=143441/limit=25/genre=1318/xml
-
sf 与国家有关,是可选的。我猜如果不存在,这将默认为全局。
-
genre 与流派有关,是可选的。我猜这默认为“所有类型”不存在。
-
limit 是可选的,似乎默认为 9。
这将为您提供播客的 Atom 提要。您需要使用 XPath 进行一些 sperlunking 以获取播客的 ITMS id,但您正在寻找包含在以下 XPath 中的 URL 中的数字 id:
/atom:feed/atom:entry/atom:link[@rel='alernate']/@href
比如优秀的JavaPosse的id是81157308。
问题的答案
获得该 ID 后,您可以获得另一个文档,该文档将告诉您最后一集以及原始提要 URL。这里的问题是您需要使用 iTunes 用户代理来获取此文档。
例如
wget --user-agent iTunes/7.4.1 \
--no-check-certificate \
"https://buy.itunes.apple.com/WebObjects/MZFinance.woa/wa/com.apple.jingle.app.finance.DirectAction/subscribePodcast?id=81157308&wasWarnedAboutPodcasts=true"
这是一个 plist,其中包含有关播客的一些元数据,包括提要 URL。
<key>feedURL</key><string>http://feeds.feedburner.com/javaposse</string>
用于此的 XPath 可能类似于:
//key[@text='feedURL']/following-sibling::string/text()
免责声明
不完全确定其中的稳定性或合法性。 YMMV。