инструмент командной строки для загрузки полного подкаста из RSS-канала

arr=($url1 $url2 $url3)

for i in ${arr[@]}; do
  if [[ $i == $1 ]] ;then
    ans=$i
    break
  fi
done
1
19.01.2019, 15:57
3 ответа

Я не совсем знаком с rss-каналами или форматом, в котором они приходят. Я также не вижу, используя, например, newsbeuterоколо 200 эпизодов, которые, как вы говорите, присутствуют в ленте (Я вижу всего 10 статей ).

Но если простая цель состоит в том, чтобы загрузить.mp3-файлы, упомянутые в фиде -файл (с ), это может сработать для вас:

wget http://www.internethistorypodcast.com/feed/ -O feed
wget $(grep -ioP '<enclosure\s+url="\K.*?\.mp3(?=")' feed)

Первая команда загружает канал -файл (с )и сохраняет его/их как feed. Второй извлекает имена файлов.mp3-из теговenclosure-в файлеfeed-(s )и загружает их.

Примечание. :Я только что просмотрел веб-сайт и не смог найти полный список рассылки/загрузки. Его отсутствие может быть преднамеренным, и в этом свете я не думаю, что мне было бы уместно объяснять, как сканировать сам сайт, чтобы извлечь/загрузить все подкасты.

0
27.01.2020, 23:42

Из этого поста:

URL="https://feeds.feedburner.com/TEDenEspanol"
curl -s $URL | xmlstarlet sel -N atom="http://www.w3.org/2005/Atom" -t -m './/enclosure' -v '@url' -n | wget -i -
  • curlполучает XML из URL
  • xmlstarletизвлечь URL-адрес вложения из XML
  • wgetсписок URL-адресов загрузки из стандартного ввода стандартного ввода

Если вы не хотите скачивать все ссылки, wgetне нужен.

Чтобы получить, например, заголовок:

curl -s $URL | xmlstarlet sel -t -v 'rss/channel/title'
4
27.01.2020, 23:42

youtube-dlможет это сделать.

Просто передайте URL фида в качестве единственного аргумента.

11
27.12.2020, 08:50

Теги

Похожие вопросы