通过结合这 两个问题的答案,我找到了一种方法来做我想做的事。
查找播客的示例
首先:使用 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。