Pergunta

Estou vendo uma maneira de transformar um ID de podcast do iTunes no feed RSS que o produtor de podcast atende.

Estou ciente do Gerador RSS, que pode ser usado para gerar um feed de links para podcasts, mas esses links são para páginas HTML.

Se você tem o iTunes aberto, pode exportar manualmente a lista de podcasts exportando para o OPML, para que possamos supor que o iTunes eventualmente saiba como decodificá -los (ou seja, eles não estão passando exclusivamente por um host ITMS).

Eu olhei para o Documento da API de afiliado O que te dá um bom JSON de volta. Isso te dá um collectionViewUrl que é o mesmo que os dados no gerador RSS e, aliás, o Generador de link do iTunes. Também te dá o id, e toda a carga de outras coisas, incluindo um arquivo de áudio de visualização que não está hospedado nos Phobos.

Neste ponto, estou procurando qualquer coisa que me ajudasse a resolver essa pergunta, incluindo qualquer idioma, não oficial ou não.

(Na verdade, eu preferiria algo vagamente apoiado e, em Java, que não envolveu raspar o HTML).

Foi útil?

Solução

Através de uma combinação de respostas de esses dois Perguntas, encontrei uma maneira de fazer o que quero.

Exemplo de encontrar podcasts

Primeiro: pegue uma lista de podcasts do iTunes, usando o gerador RSS. Ainda não tenho certeza de como os parâmetros de consulta funcionam, mas aqui está um feed RSS para os melhores podcasts de tecnologia nos EUA.

http://ax.itunes.apple.com/WebObjects/MZStoreServices.woa/ws/RSS/toppodcasts/sf=143441/limit=25/genre=1318/xml
  • sf relaciona -se ao país e é opcional. Eu acho que isso padrão é global se ausente.
  • genre relaciona -se ao gênero e é opcional. Eu acho que esse padrão para "todos os gêneros" está ausente.
  • limit é opcional e parece padrão para 9.

Isso oferece um feed de átomos de podcasts. Você precisará fazer um pouco de Sperlunking com o XPath para chegar ao IDM ID do podcast, mas você está procurando o ID numérico contido no URL encontrado no XPath a seguir:

/atom:feed/atom:entry/atom:link[@rel='alernate']/@href

Por exemplo, o excelente Javapaosse possui um ID de 81157308.

A resposta para a pergunta

Depois de ter esse ID, você poderá obter outro documento que informará o último episódio e o URL de alimentação original. A captura aqui é que você precisa usar um agente de usuário do iTunes para obter este documento.

por exemplo

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"

Esta é uma plista que contém alguns metadados sobre o podcast, incluindo o URL da alimentação.

<key>feedURL</key><string>http://feeds.feedburner.com/javaposse</string>

O XPath por isso pode ser algo como:

//key[@text='feedURL']/following-sibling::string/text()

Isenção de responsabilidade

Não tenho certeza de quão estável é isso ou quão legal é. Ymmv.

Outras dicas

Assim que você tiver o ID, você pode usá -lo na pesquisa, conforme definido em

https://www.apple.com/itunes/affiliates/resources/documentation/itunes-store-web-service-search-api.html

Você deve conseguir o que precisa analisar a resposta com JSON

Para elaborar a resposta de @juhariis, aqui estão os conceitos básicos de extrair o URL da alimentação do JSON (Python3):

from urllib.request import urlopen
from urllib.parse import urlparse
import codecs
import json

podcast_url = 'https://itunes.apple.com/us/podcast/grow-big-always/id1060318873'
ITUNES_URL = 'https://itunes.apple.com/lookup?id='
parsed = urlparse(podcast_url)
id = parsed.path.split('/')[-1][2:]
reader = codecs.getreader('utf-8')
with urlopen(ITUNES_URL + id) as response:
    feed = json.load(reader(response))['results'][0]['feedUrl']
print(feed)

Aqui está um script/módulo que fiz, que faz uso disso: https://gist.github.com/theychx/f9fad123bef27bebac665847c7884cd9

Procurei por muito tempo para desconstruir o feed do podcast do iTunes. É uma plata contendo meta dados, dos quais um deles é um feed RSS. Minha postagem no blog Como se inscrever nos podcasts do iTunes no Android possui links para código no PHP e em JavaScript para extrair o URL para o feed RSS de um link individual do iTunes.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top