从 RSS feed 下载完整播客的命令行工具

从 RSS feed 下载完整播客的命令行工具

给定一个播客rss feed,如何从命令行下载完整的播客?

我并不是在寻找成熟的命令行播客客户端。我只需要一个一次性命令来下载 mp3 中给定播客的完整历史记录(所有剧集)。

作为示例,以下是包含近 200 集的 RSS 提要:

http://www.internethistorypodcast.com/feed/

如何将它们全部下载为 mp3 文件?

答案1

youtube-dl可以做到。

只需将提要的 URL 作为唯一的参数传递即可。

答案2

这个帖子:

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从 URL 获取 XML
  • xmlstarlet从 XML 中提取附件 URL
  • wget从 STDIN 下载 URL 列表

如果您不想下载所有链接,则wget不需要。

例如,要获取标题:

curl -s $URL | xmlstarlet sel -t -v 'rss/channel/title'

答案3

试试这个,它对我来说效果很好:

$ curl http://www.internethistorypodcast.com/feed/ | grep -Eo "(http|https)://[a-zA-Z0-9./?=_%:-]*mp3" | sort -u | xargs wget
  • curl收集原始播客
  • grep提取 mp3 URL
  • sort删除重复项(在本例中,我认为它与 相同uniq
  • xargs将 mp3 URL 一一通过管道传递给 wget
  • wget将mp3文件一一下载到当前文件夹中

答案4

我不太熟悉 rss feed 或它们的格式。我也没有看到,例如newsbeuter,您所说的 feed 中存在近 200 集(我只看到 10 篇文章)。

但如果仅仅目的是下载.mp3提要文件中提到的文件,这可能适合您:

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

第一个命令下载 feed 文件,并将其另存为feed.第二个从文件中的标签中提取.mp3文件名并下载它们。enclosurefeed

注:我刚刚浏览了该网站,但没有找到完全的提要/下载列表。缺少它可能是故意的,鉴于此,我认为我不适合解释如何抓取网站本身以提取/下载所有播客。

相关内容