Domanda

Sto guardando un modo per trasformare un ID podcast di iTunes nel feed RSS che serve il produttore di podcast.

Sono a conoscenza del Generatore RSS, che può essere utilizzato per generare un feed di collegamenti ai podcast, ma questi collegamenti sono alle pagine HTML.

Se hai aperto iTunes, puoi esportare manualmente l'elenco dei podcast esportando in OPML, quindi possiamo supporre che iTunes alla fine sappia come decodificarli (cioè non stanno passando esclusivamente attraverso un host ITMS).

Ho guardato il Documento API affiliato Il che ti restituisce un bel JSON. Questo ti dà un collectionViewUrl che è uguale a quelli indicati nel generatore RSS e, per inciso, il Generatore di collegamenti iTunes. Ti dà anche il id, e un sacco di altre cose tra cui un file audio di anteprima che non è ospitato sul Phobos.

A questo punto, sto cercando tutto ciò che mi aiuterebbe a risolvere questa domanda, tra cui qualsiasi lingua, non ufficiale o no.

(In realtà, preferirei qualcosa di vagamente supportato, e in Java, che non ha coinvolto HTML rasking).

È stato utile?

Soluzione

Attraverso una combinazione di risposte da queste Due Domande, ho trovato il modo di fare quello che voglio.

Esempio di ricerca di podcast

Primo: prendi un elenco di podcast di iTunes, usando il generatore RSS. Non sono ancora sicuro di come funzionino i parametri delle query, ma ecco un feed RSS per i podcast di Top Tech negli Stati Uniti.

http://ax.itunes.apple.com/WebObjects/MZStoreServices.woa/ws/RSS/toppodcasts/sf=143441/limit=25/genre=1318/xml
  • sf si riferisce al paese ed è facoltativo. Immagino che questo predefinito sia globale se assente.
  • genre si riferisce al genere ed è facoltativo. Immagino che questo predefinito sia "tutti i generi" è assente.
  • limit è facoltativo e sembra default a 9.

Questo ti dà un feed atom di podcast. Dovrai fare un po 'di sperlunking con XPath per arrivare all'ID ITMS di Podcast, ma stai cercando l'ID numerico contenuto nell'URL trovato nel seguente XPath:

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

Ad esempio, l'eccellente Javaposse ha un ID di 81157308.

La risposta alla domanda

Una volta che hai quell'ID, puoi ottenere un altro documento che ti dirà l'ultimo episodio e l'URL di feed originale. La cattura qui è che devi utilizzare un agente utente iTunes per ottenere questo documento.

per esempio

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"

Questo è un plist contenente alcuni metadati sul podcast, incluso l'URL di alimentazione.

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

L'XPath per questo potrebbe essere qualcosa di simile:

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

Disclaimer

Non è del tutto sicuro di quanto sia stabile tutto ciò o quanto sia legale. Ymmv.

Altri suggerimenti

Non appena hai l'ID puoi usarlo nella ricerca come definito in

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

Dovresti ottenere ciò di cui hai bisogno analizzando la risposta con JSON

Per elaborare la risposta di @juhariis, ecco le basi dell'estrazione dell'URL di feed dal 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)

Ecco uno script/modulo che ho realizzato, che utilizza questo: https://gist.github.com/theychx/f9fad123bef27bebac665847c7884cd9

Ho cercato a lungo per decostruire il feed podcast di iTunes. È un plist contenente meta dati, di cui uno di essi è un feed RSS. Il mio post sul blog Come iscriverti ai podcast di iTunes su Android Ha collegamenti al codice in PHP e in JavaScript per estrarre l'URL al feed RSS da un singolo collegamento iTunes.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top