#!/bin/bash # By Linc 10/1/2004 # Find the latest script at http://linc.homeunix.org:8080/scripts/bashpodder # Last revision 07/01/2005 - Many Contributers! # If you use this and have made improvements or have comments # drop me an email at linc dot fessenden at gmail dot com # I'd appreciate it! # Make script crontab friendly: cd $(dirname $0) # datadir is the directory you want podcasts saved to: datadir=$(date +%Y-%m-%d) # Check for and create datadir if necessary: if test ! -d "$datadir" then mkdir "$datadir" fi # Delete any temp file: rm -f temp.log # If this is the first time, touch podcast.log to shut up the grep below. if ! [ -e podcast.log ] then touch podcast.log fi # Read the bp.conf file and wget any url not already in the podcast.log file: while read podcast do file=$(wget -q $podcast -O - | xsltproc parse_enclosure.xsl - 2> /dev/null) || file=$(wget -q $podcast -O - | tr '\r' '\n' | tr \' \" | sed -n 's/.*url="\([^"]*\)".*/\1/p') for url in $file do if ! grep "^$url$" podcast.log > /dev/null then wget -q -P "$datadir" "$url" && echo "$url" >> temp.log fi done done < bp.conf # Move dynamically created log file (if any) to permanent log file: if [ -s temp.log ] then cat podcast.log >> temp.log sort -u temp.log > podcast.log fi rm -f temp.log # If nothing was downloaded, just remove the download directory. Else # create an m3u playlist: if ! rmdir 2> /dev/null "$datadir" then ls "$datadir" | grep -v '\.m3u$' > "$datadir"/podcast.m3u fi