получить последние подкасты из магазина itunes со ссылкой на RSS, JSON или что-то еще

Я пытаюсь получить последнюю информацию о подкастах из «магазина itunes», чтобы работать с этими данными в нескольких приложениях (приложение iphone и веб-приложение).

Есть ли способ получить эту информацию? RSS, JSON или что-то в этом роде?

Я хочу работать с этой информацией в objective-c и на веб-сайте с php или js.

Мой вопрос ясен? :(

// редактировать: что-нибудь непонятно? оставьте комментарий, если да


person choise    schedule 12.05.2010    source источник
comment
Вы пытаетесь получить агрегированный поток последних подкастов в том виде, в каком его видели в iTunes, или вас интересует канал определенного подкаста?   -  person deceze♦    schedule 14.05.2010
comment
да, мне нужен конкретный канал или что-то из определенного подкаста, чтобы я мог получать последние выпуски (например, имя, дата, продолжительность)   -  person choise    schedule 14.05.2010
comment
Что именно вы хотите получить из магазина? Он просто предоставляет каталог для поиска RSS-каналов подкастов, но эти каналы не проходят через магазин. Вы запрашиваете программный доступ к каталогу?   -  person deceze♦    schedule 17.05.2010
comment
Да. я хочу получить все выпуски одного конкретного подкаста (название, дату публикации и ссылку на магазин, если это возможно)   -  person choise    schedule 17.05.2010
comment
Я все еще не понимаю, что ты хочешь сделать. Если вы хотите получить все выпуски одного конкретного подкаста, вам не нужно проходить через магазин. Подкаст имеет свою собственную ленту где-то независимо от магазина. Например, подкаст TWiT находится по адресу leoville.tv/podcasts/twit.xml.   -  person deceze♦    schedule 17.05.2010
comment
хорошо, это звучит хорошо. как получить этот URL для подкаста?   -  person choise    schedule 17.05.2010
comment
Извините, поясните: хотите ли вы URL-адрес подкаста? Тогда я не уверен, в чем проблема; просто зайдите на сайт своего подкаста и найдите RSS-канал. Или вы ищете URL-адреса подкастов (во множественном числе), то есть API каталога? Это две очень разные вещи, и я все еще не уверен, что вам нужно.   -  person deceze♦    schedule 18.05.2010
comment
так что мне нужен URL-адрес RSS-канала! Разве нет другого способа перейти на сайт этого подкаста и найти ленту? некоторые подкасты не публикуют свои RSS-каналы. Я ищу способ получить URL-адрес RSS-канала подкаста из iTunes.   -  person choise    schedule 18.05.2010


Ответы (4)


Основываясь на вашем вопросе, я просто попытался найти способ сделать это.

  1. Поэтому вам понадобится идентификатор подкаста (должен быть очевиден из URL-адреса, если он у вас есть; например, http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=82884735 имеет идентификатор «82884735», а http://itunes.apple.com/us/podcast/this-week-in-tech-mp3-edition/id73329404 - идентификатор «73329404»).

  2. ???

  3. Вставьте идентификатор в URL https://buy.itunes.apple.com/WebObjects/MZFinance.woa/wa/com.apple.jingle.app.finance.DirectAction/subscribePodcast?id={ID}&wasWarnedAboutPodcasts=true и получите данные, где {ID} - идентификатор вашего подкаста. Здесь важно изменить строку пользовательского агента на iTunes. Для этого эксперимента я использовал «iTunes / 7.4.1». Если вы не измените его, вы получите что-то совсем другое.

  4. В итоге вы получите данные XML; XML-список, заключенный в теги Document и Protocol. Это будет выглядеть как

    ‹Document> ‹Protocol> ‹plist version =" 1.0 "> ... ‹/plist> ‹/Protocol> ‹/Document>

Вы можете извлечь из него данные plist и использовать библиотеку для управления ими, если она есть на выбранном вами языке. По сути, там будет «корневой» словарь и словарь внутри него под названием «подписка-подкаст». Этот словарь «подписка-подкаст» будет иметь ключ под названием «feedURL» - наберите значение, и у вас будет свой RSS-канал. Я бы рекомендовал попробовать эти шаги и следовать им.

За представлением списка проще следить, если он выглядит в формате NeXTSTEP, который немного похож на JSON. Отрывок из фиктивного списка подкастов, преобразованного в этот формат, выглядит следующим образом (помните, что вы действительно получите XML-подобный файл):

{
    "subscribe-podcast" = {
        …
        feedURL = "http://feeds.feedburner.com/yaddayaddayadda"; 
        …
        podcastName = "Lorem Ipsum"; 
        …
    }; 
}

Теперь вы заметите в описанных мною шагах, что шаг 2 отсутствует. Это потому, что я просмотрел данные, которые Apple возвращала мне вручную, чтобы перейти к URL-адресу на шаге 3. Скорее всего, вы захотите проанализировать данные самостоятельно на случай, если Apple решит изменить URL-адрес, но, возможно, это вероятно для промежуточный HTML, чтобы все равно изменить и сломать вашу программу. Я мог бы вернуться и посмотреть на документирование шагов, которые необходимо предпринять, чтобы получить наш волшебный URL-адрес на шаге 3.

Я опробовал эту стратегию с несколькими подкастами, и, похоже, она хорошо работает, давая мне RSS-канал. Поскольку я не знаю ни одного из запрашиваемых вами языков, я не могу давать никаких рекомендаций по коду. Надеюсь, это поможет вам в этом.

person Volt    schedule 22.05.2010

  1. Извлечь идентификатор из iTunes-url https://itunes.apple.com/de/podcast/ard-radio-tatort/id310864997?mt=2&uo=2 (в этом примере «310864997»)
  2. Вы можете извлечь идентификатор, используя следующее регулярное выражение: /id(\d+)/
  3. Введите идентификатор в следующий URL-адрес, чтобы получить информацию о канале через API Apple https://itunes.apple.com/lookup?id={FEED_ID}&entity=podcast
  4. Служба поиска вернет файл JSON. Вы найдете URL-адрес RSS в поле «feedUrl» внутри JSON.

У решения Вольта есть два преимущества.

  1. Вам не нужно подделывать агент браузера.
  2. В качестве ответа вы получите чистый и простой JSON.

Если вы хотите увидеть живой пример, взгляните на xTunes-Podcatcher, где я сам реализовал описанную выше технику / шаги. Просто введите URL-адрес своего подкаста iTunes и получите из него URL-адрес RSS.

person netblognet    schedule 11.07.2015
comment
@DragonLord Отредактировал мой ответ ... Теперь уже лучше? - person netblognet; 13.07.2015
comment
Так-то лучше; пожалуйста, не забудьте раскрыть свою принадлежность к вам в будущем и не делайте слишком много рекламных сообщений такого рода. - person bwDraco; 13.07.2015
comment
@DragonLord - если вы проверите мой профиль Stackoverflow, вы увидите, что я почти никогда не продвигаю свои собственные материалы. - person netblognet; 13.07.2015
comment
Вам по-прежнему необходимо указать в своем ответе свою принадлежность. - person Martijn Pieters; 13.07.2015
comment
@MartijnPieters ... где я реализовал описанную выше технику / шаги. - Разве это не раскрытие? - person netblognet; 13.07.2015
comment
Ах, я пропустил эту часть. Однако это не так очевидно. - person Martijn Pieters; 13.07.2015

Если есть RSS-канал для данных, которые вы ищете, вы можете использовать этот парсер RSS / Atom для iPhone Я только что освободился.

Надеюсь, это может быть полезно!

person Michael Waterfall    schedule 16.05.2010
comment
поэтому моя проблема в том, чтобы ПОЛУЧИТЬ фид, а не обрабатывать его. - person choise; 16.05.2010

Я получил требуемый RSS-подкаст косвенно с сайта feedburner.com. я не мог найти его на сайте. но я искал в Google необходимое «название подкаста» вместе с feedburner в ключевом слове. Результатом поиска была rss-страница подкаста, соответствующая имени из feedburner.

person ArunGJ    schedule 07.08.2011