Качаем подкасты скриптом на FreeBSD

Задача: периодически проверять, появились ли новые выпуски подкаста и если появились, то автоматически скачиваем.
Решение: Достаточно написать простенький скрипт и по cron’у запускать, например, ежесуточно ночью. Итак, нам требуется wget, поэтому установим его из портов:
cd /usr/ports/ftp/wget
make config

Options for wget 1.12_1
[X] GNUTLS Support for SSL via GnuTLS
[ ] IPV6 Support for IPv6
[X] NLS Native Language Support with gettext
[ ] OPENSSL Support for SSL via OpenSSL

make install clean

В примере ниже мы будем проверять появились ли новые выпуски подкастов radio-t и качать их.
Теперь сам скрипт, назовём его podload.sh, с пояснениями:

#!/bin/sh

# url-адрес сайта, на странице которого
# расположены mp3-файлы подкастов
# (можете изменить на тот, с которого вы
# качаете ваши любимые подкасты)
url=radio-t.com
# место, куда сохранять подкасты
# (измените путь, актуальный для вас)
poddir=/mnt/pools/dsk00/audio/podcasts
# строку sndurl не трогать
sndurl=sound_url.txt

# Далее строки тоже не меняем
#####not change#####
wget=/usr/local/bin/wget
mkdir=/bin/mkdir
secur=/bin/chmod
cd=/usr/bin/cd
rm=/bin/rm
grep=/usr/bin/grep
find=/usr/bin/find
####################
# Описание того, что происходит:
# создаётся папка
# следующего вида: /путь_до_директории_с_подкастами/url_страницы_подкаста
$mkdir -p $poddir/$url
$secur -R 0777 $poddir
# качается страница со ссылками на mp3
$wget -P $poddir/$url $url
# происходит поиск строк в которых встречаются "http://" и "mp3"
# из найденного выбираются первые 15 результатов поиска и
# найденное перенаправляется в файлик sound_url.txt
$grep -woi http://.*.mp3 $poddir/$url/index.html | head -n15 > $poddir/$url/$sndurl
# далее wget берёт найденные ссылки на mp3 из sound_url.txt
# и качает их так, что имеющиеся файлы игнорируются, а
# качаются только новые.
$wget -P $poddir/$url -nc -A.mp3 -i $poddir/$url/$sndurl

# удаляются файлы sound_url.txt и html
$rm $poddir/$url/$sndurl
$rm $poddir/$url/*.*html

# формируется список файлов имеющихся
# в директории с подкастом radio-t
$find $poddir/ -name *.mp3 >> $poddir/downloaded.txt
# назначаются права на файлы рекурсивно
$secur -R 0777 $poddir

#end

Вам в скрипте менять ничего не надо за исключением 2-ух строк:
1) url=radio-t.com
Здесь «radio-t.com» замените на свою ссылку на страницу с подкастом по вашим интересам.
2) poddir=/mnt/pools/dsk00/audio/podcasts
Здесь «/mnt/pools/dsk00/audio/podcasts» -директория, куда сохранять подкасты, тоже поменяйте на свою.
Комментарии — строки, начинающиеся с «#», можно удалить.

Не забываем дать права на выполнение для podload.sh:
chmod +x /путь/до/podload.sh

и можно отредактировать crontab:
ee /etc/crontab

добавив строку:
30 3 * * * root /bin/sh /путь/до/podload.sh
Таким образом в 3:30 ночи ежедневно будет происходить проверка сайта, который вы указали в podload.sh, а при наличии новых выпусков и их скачиваие.
Пример дан только для ознакомления а не для практического применения.

Добавить комментарий