Как запланировать автоматическую загрузку утреннего выпуска подкаста?

Как запланировать автоматическую загрузку утреннего выпуска подкаста?

Я хотел бы автоматически загружать подкаст Morning Edition каждый день. У меня нет никаких продуктов Apple. Я загрузил и установил flareget, но не могу понять, как заставить его это делать. Я не привязан к этому инструменту. Я давний пользователь Firefox, но в настоящее время тестирую Chrome.

URL-адрес программы: http://www.npr.org/programs/morning-edition/

Адрес RSS:http://www.npr.org/rss/rss.php?id=3

Проблема в том, что RSS включает ссылку на веб-страницу отдельной истории вместо ссылки на mp3.

<rss xmlns:npr="http://www.npr.org/rss/" xmlns:nprml="http://api.npr.org/nprml" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
<channel>
<title>
    Morning Edition : NPR
</title>
<link>
    http://www.npr.org/templates/story/story.php?storyId=3
</link>
<description>
    Morning Edition gives its audience news, analysis, commentary, and coverage of arts and sports. Stories are told through conversation as well as full reports. It's up-to-the-minute news that prepares listeners for the day ahead.
</description>
<language>en</language>
<copyright>Copyright 2015 NPR - For Personal Use Only</copyright>
<generator>NPR API RSS Generator 0.94</generator>
<lastBuildDate>Fri, 06 Nov 2015 12:45:00 -0500</lastBuildDate>
<image>
    <url>http://media.npr.org/images/podcasts/primary/npr_generic_image_300.jpg?s=200</url>
    <title>Morning Edition</title>
    <link>http://www.npr.org/templates/story/story.php?storyId=3</link>
</image>
<item>
    <title>Russian Airliner Crash Update</title>
    <description>
        The latest information on the Russian airliner that crashed in Egypt. All 224 people on board were killed.
    </description>
    <pubDate>Fri, 06 Nov 2015 12:45:00 -0500</pubDate>
    <link>
        http://www.npr.org/2015/11/06/455019224/russian-airliner-crash-update?utm_medium=RSS&utm_campaign=morningedition
    </link>
    <guid>
        http://www.npr.org/2015/11/06/455019224/russian-airliner-crash-update?utm_medium=RSS&utm_campaign=morningedition
    </guid>
    <content:encoded>
        <![CDATA[
        <p>The latest information on the Russian airliner that crashed in Egypt. All 224 people on board were killed.</p>
        ]]>
    </content:encoded>
    <dc:creator>Corey Flintoff</dc:creator>
</item>
...

Когда я открываю http://www.npr.org/2015/11/06/455019224/russian-airliner-crash-update?utm_medium=RSS&utm_campaign=morningedition страницу в браузере, на ней есть ссылка на mp3-файл истории: http://pd.npr.org/anon.npr-mp3/npr/me/2015/11/20151106_me_egypt_plane_crash_probe_russia.mp3?dl=1

Я вижу, что есть легко распознаваемый шаблон, который я мог бы использовать, но не могу понять, какие инструменты использовать или как заставить их делать то, что мне нужно.

Аудиофайл каждой истории начинается со слов:

http://pd.npr.org/anon.npr-mp3/npr/me/

затем добавьте папку на год

http://pd.npr.org/anon.npr-mp3/npr/me/2015

и один на месяц

http://pd.npr.org/anon.npr-mp3/npr/me/2015/11

все mp3 для сегодняшнего шоу

yyyymmdd_me*.mp3

Завершение, ?dl=1похоже, не является необходимым.

решение1

Вам нужно будет написать веб-робота, который будет перемещаться по сайту, пока не найдет URL-адрес(ы) .mp3-файла, которые вы хотите загрузить, а затем загрузить именно эти URL-адреса.

Для perlочевидным решением является использованиеlibwww-perlпакет (он же LWP).

Для python, я порекомендуюмеханизироватьилискребущийбиблиотеки Python.

Обе эти библиотеки Python упакованы для Debian и Ubuntu как python-mechanizeи python-scrapy, поэтому установите пакеты (и не следуйте pip installинструкциям на веб-сайтах)

Аналогичные библиотеки существуют и для других языков.

Связанный контент