콘텐츠로 바로가기

now0930 일지

이런저런 생각

  • 홈
  • 비공개
  • 강좌
  • 잔여 작업 조회
  • 위치

podcast 자동 다운로드 스크립트

홈서버 구축으로 plexmediaserver를 사용하고 있는데 podcast를 들을려고 한다..

안드로이드 앱으로 들어도 되는데 잘 듣던 팥빵이 회원가입을 요구하고 있어서…짜증이 났다..
전에 누가 tedtalks를 자동으로 다운로드 받는 스크립트를 작성했는데, 거기에서 좀 수정을 했다..

3가지 정도 되는데…
1. 지적 대화를 위한 넓고 얕은 지식
2. 이진우의 손에잡히는 경제
3. 파토의 과학과 사람들
4. bbc 6minute english
정도 된다..

원문은 여기에서 다운로드 받았다.

#!/bin/sh
#
# TEDTalks Downloader
#
# Copyright (C) 2009  Denver Gingerich
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.


#cron을 위한 cd
cd /home/now0930/ExtHDD2/PODcast/PODcast

echo "TEDTalks Downloader v0.1"
echo "by Denver Gingerich (http://ossguy.com/)"
echo

which wget
if [ $? -eq 0 ]; then
	echo "Using wget..."
	GET_CMD="wget -O"
else
	which curl
	if [ $? -eq 0 ]; then
		echo "Using curl..."
		GET_CMD="curl -L -o"
	else
		echo "Could not find wget or curl"
		exit 2
	fi
fi
echo

podcast_address=http://minicast.imbc.com/PodCast/pod.aspx?code=1000671100000100000
FEED=feed_podcast.xml
URLS=urls_podcast


DIRNAME=이진우_손에잡히는경제

rm -f ${FEED}
${GET_CMD} ${FEED} ${podcast_address}
#${GET_CMD} ${FEED} http://minicast.imbc.com/PodCast/pod.aspx?code=1000674100000100000 

#${GET_CMD} ${FEED} http://feeds.feedburner.com/tedtalks_video
#손에 잡히는 경제 다운로드 주소.. 
grep 'type="audio/mpeg"' ${FEED} | \


#아래는 다운로드 받을 기간....
grep '201607\|201605' | \
sed -e 's/^ *<enclosure url="\([^"]*\)" type="audio\/mpeg" length="" \/>/\1/g' > ${URLS};


mkdir -p ${DIRNAME}
cd ${DIRNAME}
for line in `cat ../${URLS}`; do
	#SIZE=`echo ${line} | cut -d: -f1`
	URL=`echo ${line}`

	#URL=`echo ${line} | cut -d: -f2-`
	FILENAME=`basename ${URL}|tr -d '\r'`
	
	echo $URL
	echo $FILENAME

	if [ ! -f "${FILENAME}" ]; then
#	 || [ ${SIZE} -ne `ls -l "${FILENAME}" | awk '{print $5}'` ]; then
		rm -f "${FILENAME}"
		${GET_CMD} "${FILENAME}" "${URL}"
	fi
done


cd ..



#TED talks audio
rm -f ${FEED}
podcast_address=http://feeds.feedburner.com/TEDTalks_audio

${GET_CMD} ${FEED} ${podcast_address}


grep '<media:content' ${FEED} \
 | sed -e 's/^.*<media:content url="\([^"]*\)" fileSize="\([^"]*\).*$/\2:\1/g' | cut -d "?" -f 1 \
 > ${URLS}

mkdir -p TEDtalks
cd TEDtalks
for line in `cat ../${URLS}`; do
	SIZE=`echo ${line} | cut -d: -f1`
	URL=`echo ${line} | cut -d: -f2-`
	FILENAME=`basename ${URL}`

	if [ ! -f "${FILENAME}" ]; then
#	 || [ ${SIZE} -ne `ls -l "${FILENAME}" | awk '{print $5}'` ]; then
		rm -f "${FILENAME}"
		${GET_CMD} "${FILENAME}" "${URL}"
	fi
done


cd ..

DIRNAME=파토의과학

rm -f ${FEED}
podcast_address=http://pod.ssenhosting.com/rss/scienceppl/sciencewithpeople.xml

${GET_CMD} ${FEED} ${podcast_address}

grep 'type="audio/mpeg"' ${FEED} | \
cut -d "\"" -f2 > ${URLS};
#sed -e 's/^ *<enclosure url="\([^"]*\)" type="audio\/mpeg3" length="" \/>/\1/g' > ${URLS};


mkdir -p ${DIRNAME}
cd ${DIRNAME}
for line in `cat ../${URLS}`; do
	#SIZE=`echo ${line} | cut -d: -f1`
	#echo "출력분"
	#URL=`echo ${line} | cut -d'"' -f2-`
	URL=`echo ${line}`
	FILENAME=`basename ${URL}|tr -d '\r'`

	#echo ${URL}
	#echo ${FILENAME}
	if [ ! -f "${FILENAME}" ]; then
#	 || [ ${SIZE} -ne `ls -l "${FILENAME}" | awk '{print $5}'` ]; then
		rm -f "${FILENAME}"
		${GET_CMD} "${FILENAME}" "${URL}"
	fi
done


<< 'COMMENT'

COMMENT




cd ..



#BBC 6minute English
DIRNAME=Bbc6Min

rm -f ${FEED}
rm -f ${URLS}
podcast_address=http://www.bbc.co.uk/programmes/p02pc9tn/episodes/downloads

${GET_CMD} ${FEED} ${podcast_address}

sed -e 's/</\r\n/g' ${FEED}| grep mp3 |\
cut -d "\"" -f4 > ${URLS};

#sed -e 's/^ *<enclosure url="\([^"]*\)" type="audio\/mpeg3" length="" \/>/\1/g' > ${URLS};


mkdir -p ${DIRNAME}
cd ${DIRNAME}
for line in `cat ../${URLS}`; do
	#SIZE=`echo ${line} | cut -d: -f1`
	#echo "출력분"
	#URL=`echo ${line} | cut -d'"' -f2-`
	URL=`echo ${line}`
	FILENAME=`basename ${URL}|tr -d '\r'`

	#echo ${URL}
	#echo ${FILENAME}
	if [ ! -f "${FILENAME}" ]; then
#	 || [ ${SIZE} -ne `ls -l "${FILENAME}" | awk '{print $5}'` ]; then
		rm -f "${FILENAME}"
		${GET_CMD} "${FILENAME}" "${URL}"
	fi
done


cd ..

#지대넓얕
DIRNAME=지대넓얕

rm -f ${FEED}
rm -f ${URLS}
podcast_address=http://pod.ssenhosting.com/rss/rrojia2/rrojia2.xml

${GET_CMD} ${FEED} ${podcast_address}

xpath -e '//enclosure/@url' ${FEED} |\
cut -d "\"" -f2 > ${URLS}

#sed -e 's/</\r\n/g' ${FEED}| grep mp3 |\
#cut -d "\"" -f4 > ${URLS};

mkdir -p ${DIRNAME}
cd ${DIRNAME}
for line in `cat ../${URLS}`; do
	#SIZE=`echo ${line} | cut -d: -f1`
	#echo "출력분"
	#URL=`echo ${line} | cut -d'"' -f2-`
	URL=`echo ${line}`
	FILENAME=`basename ${URL}|tr -d '\r'`

	#echo ${URL}
	#echo ${FILENAME}
	if [ ! -f "${FILENAME}" ]; then
#	 || [ ${SIZE} -ne `ls -l "${FILENAME}" | awk '{print $5}'` ]; then
		rm -f "${FILENAME}"
		${GET_CMD} "${FILENAME}" "${URL}"
	fi
done


cd ..

#권한 변경..
find ./ -type f -exec chmod 755 {} \;

매일매일 실행하기 귀찮으니, cron에 등록하면 된다.

이 글 공유하기:

  • Tweet
발행일 2016-07-12글쓴이 이대원
카테고리 생활코딩 태그 bash, 다운로더, 팟캐스트

댓글 남기기응답 취소

이 사이트는 Akismet을 사용하여 스팸을 줄입니다. 댓글 데이터가 어떻게 처리되는지 알아보세요.

글 내비게이션

이전 글

서툰 인생을 위한 철학 수업

다음 글

슈가맨을 찾아서

2025 5월
일 월 화 수 목 금 토
 123
45678910
11121314151617
18192021222324
25262728293031
4월    

최신 글

  • common mode, differential mode 2025-05-11
  • signal conditioner, 신호 처리기 2025-05-10
  • strain gage 2025-05-09
  • 칼만 필터 2025-05-01
  • positioner(I/P) 2025-04-26

카테고리

  • 산업계측제어기술사
  • 삶 자국
    • 책과 영화
    • 투자
  • 생활코딩
    • LEGO
    • ROS
    • tensorflow
  • 전기기사
  • 피아노 악보

메타

  • 로그인
  • 엔트리 피드
  • 댓글 피드
  • WordPress.org

페이지

  • 소개
  • 잔여 작업 조회
    • 작업 추가
    • 작업의 사진 조회
    • 작업 수정 페이지
  • 사진
    • GPS 입력된 사진
    • 사진 조회
  • 위치
    • 하기 휴가 방문지
    • 해외 출장

태그

android bash c docker driver FSM gps java kernel LEGO linux mysql network program opcua open62541 plc programmers python raspberry reinforcementLearning ros state space system program tensorflow transfer function 경제 미국 민수 삼국지 세계사 실기 에너지 역사 유전자 일본 임베디드 리눅스 전기기사 조선 중국 채윤 코딩 테스트 통계 한국사 한국어

팔로우하세요

  • Facebook
now0930 일지
WordPress로 제작.