jam*_*esh 14 api podcast rss itunes
我正在研究一种将iTunes播客ID转换为播客生产者所服务的RSS源的方法.
我知道RSS生成器,它可用于生成播客链接的源,但这些链接是HTML页面.
如果您打开iTunes,您可以通过导出到OPML手动导出播客列表,这样我们就可以推测iTunes最终知道如何解码它们(即它们不是专门通过iTMS主机).
我查看了Affiliate API文档,该文档为您提供了一些不错的JSON.这给你一个collectionViewUrl与RSS生成器中给出的相同,顺便提一下,iTunes Link Generator.它还为您提供了id大量其他内容,包括预览音频文件,而不是托管在phobos上.
在这一点上,我正在寻找任何可以帮助我解决这个问题的东西,包括任何语言,非官方或非正式.
(实际上,我更喜欢模糊地支持的东西,而且在Java中,它不涉及HTML抓取).
jam*_*esh 16
通过这 两个问题的答案组合,我找到了一种方法来做我想做的事.
首先:使用RSS生成器从iTunes中获取播客列表.我不确定查询参数是如何工作的,但这里是美国顶级科技播客的RSS源.
http://ax.itunes.apple.com/WebObjects/MZStoreServices.woa/ws/RSS/toppodcasts/sf=143441/limit=25/genre=1318/xml
Run Code Online (Sandbox Code Playgroud)
sf与国家有关,是可选的.如果没有,我猜这个默认为全局.genre与流派有关,是可选的.我猜这个默认为"所有类型"的缺席.limit 是可选的,似乎默认为9.这为您提供了播客的Atom供稿.您需要使用XPath进行一些精简才能获得播客的ITMS ID,但是您正在寻找以下XPath中找到的URL中包含的数字ID:
/atom:feed/atom:entry/atom:link[@rel='alernate']/@href
Run Code Online (Sandbox Code Playgroud)
例如,优秀的JavaPosse的id为81157308.
获得该ID后,您可以获得另一个文档,该文档将告诉您最后一集和原始供稿网址.这里的问题是您需要使用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"
Run Code Online (Sandbox Code Playgroud)
这是一个plist,其中包含有关播客的一些元数据,包括Feed网址.
<key>feedURL</key><string>http://feeds.feedburner.com/javaposse</string>
Run Code Online (Sandbox Code Playgroud)
这个XPath可能是这样的:
//key[@text='feedURL']/following-sibling::string/text()
Run Code Online (Sandbox Code Playgroud)
不完全确定这是多么稳定,或者它是多么合法.因人而异.
拥有ID后,您就可以按照以下定义在查找中使用它
您应该通过使用JSON解析响应来获得所需的内容
| 归档时间: |
|
| 查看次数: |
6782 次 |
| 最近记录: |