RSS 피드에서 전체 팟캐스트를 다운로드하는 명령줄 도구

RSS 피드에서 전체 팟캐스트를 다운로드하는 명령줄 도구

팟캐스트가 제공되면 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 -
  • curlURL에서 XML 가져오기
  • xmlstarletXML에서 첨부 URL 추출
  • wgetSTDIN에서 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오리지널 팟캐스트 컬렉션
  • grepmp3 URL 추출
  • sort중복 제거 (이 경우에는 와 같다고 생각합니다 uniq)
  • xargswget에 mp3 URL을 하나씩 파이프하세요.
  • wgetmp3 파일을 현재 폴더에 하나씩 다운로드

답변4

나는 RSS 피드나 그 형식에 익숙하지 않습니다. 예를 들어 newsbeuter, 당신이 말하는 피드에는 거의 200개의 에피소드가 있다는 것도 알 수 없습니다 (기사는 10개만 보입니다).

.mp3하지만 피드에 언급된 파일을 다운로드하는 것이 유일한 목적이라면 다음 방법이 도움이 될 수 있습니다.

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

첫 번째 명령은 피드 파일을 다운로드하여 으로 저장합니다 . 두 번째 명령은 feed파일의 태그에서 .mp3파일 이름을 추출하여 다운로드합니다.enclosurefeed

참고: 방금 사이트를 탐색했지만 찾을 수 없습니다.충분히피드/다운로드 목록. 그것이 없는 것은 아마도 의도적인 것이며, 그런 점을 고려하면, 모든 팟캐스트를 추출/다운로드하기 위해 웹사이트 자체를 스크레이핑하는 방법을 설명하는 것은 적절하지 않다고 생각합니다.

관련 정보