お好みのURLからpodcastsのMP3音楽ファイルを取得するlinuxスクリプト

  1. #!/bin/sh
  2. # licence GPLv2 ; this scripts designed by IZAMUKARERA 2010.12.12 update 2012.11.15
  3. # get pepopodcastget mp3
  4. # XMLにpodcastのURLを登録
  5. #XML=http://podcast.1242.com/ps/index.xml
  6. #XML=http://podcasts.voanews.com/podcastxml_local.cfm?id=1631
  7. XML=http://www3.nhk.or.jp/rj/podcast/rss/english.xml
  8. #XML=http://www.cnn.com/services/podcasting/newscast/rss.xml
  9. # CTは保存世代数(古い順に消去)
  10. CT=6
  11. # DEVはMP3プレーヤーのデバイス名
  12. DEV=/dev/sdb1
  13. MNT=/mnt/music
  14. MDIR=$MNT/MUSIC/podcasts
  15. DIR=/tmp/music
  16. RAND=`echo -e $RANDOM`
  17. TMP=$DIR/${RAND}.xml
  18. [ ! -e $DIR ] && mkdir -p $DIR
  19. wget $XML -O $TMP
  20. URL=`cat $TMP |awk '/enclosure/{split($0,I,"\"")
  21. for ( J in I ) {
  22. if (I[J] ~ /\.mp3$/) {
  23. printf I[J]" "
  24. }
  25. }
  26. }'`
  27. for FIL in $URL
  28. do
  29. MP3=`echo $FIL |awk '{s=split($0,I,"/"); printf I[s]}'`
  30. [ -f $DIR/$MP3 ] && continue
  31. wget $FIL -O $DIR/$MP3
  32. [ ! -s $DIR/$MP3 ] && rm -f $DIR/$MP3
  33. done
  34. rm -f $TMP
  35. MFIL=`ls -tr $DIR`
  36. MCT=`echo $MFIL | wc -w`
  37. if [ $MCT -gt $CT ];then
  38. I=`expr $MCT - $CT`
  39. for J in $MFIL
  40. do
  41. rm -f $DIR/$J
  42. I=`expr $I - 1`
  43. [ $I -eq 0 ] && break
  44. done
  45. fi
  46. [ ! -e $MNT ] && mkdir -p $MNT
  47. mount $DEV $MNT -t vfat >/dev/null 2>&1
  48. [ `mount |grep $DEV |wc -l` -eq 1 ] && MDEV=OK || MDEV=NG
  49. if [ $MDEV = "OK" ];then
  50. [ ! -e $MDIR ] && mkdir -p $MDIR
  51. MFIL=`ls -tr $DIR`
  52. for MM in $MFIL
  53. do
  54. if [ -s $DIR/$MM ];then
  55. mv -f $DIR/$MM $MDIR
  56. fi
  57. done
  58. MFIL=`ls -tr $MDIR`
  59. MCT=`echo $MFIL | wc -w`
  60. if [ $MCT -gt $CT ];then
  61. I=`expr $MCT - $CT`
  62. for J in $MFIL
  63. do
  64. rm -f $MDIR/$J
  65. I=`expr $I - 1`
  66. [ $I -eq 0 ] && break
  67. done
  68. fi
  69. fi
  70. [ $MDEV = "OK" ] && umount $DEV