Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 31st, 2012  |  syntax: None  |  size: 4.70 KB  |  hits: 15  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #!/bin/bash
  2.  
  3. VERSION='2011/9/4 08:35:38 UTC'
  4. CMDDIR='/home/00962724/radio';
  5. OUTDIR='/home/00962724/radio/out';
  6.  
  7. YEAR='2011'
  8. ARTIST='NHK'
  9.  
  10. downfiles()
  11. {
  12. TARGET=${1}
  13. ADDURL1=${2}
  14. ADDURL2=${3}
  15. mkdir -p ${TARGET}
  16. cd ${TARGET} || exit 1
  17.  
  18. TMPFILE1="`mktemp`"
  19. TMPFILE2="`mktemp`"
  20. while read -r codeline
  21. do
  22. testline=${codeline#*code=}  # 最初のcode=より後ろを取り出す
  23. SCRAMBLECODE=${testline:1:14} # 2文字目から14文字
  24. echo ${SCRAMBLECODE} && echo
  25. URL=${BASEURL}${ADDURL1}/${SCRAMBLECODE}/${ADDURL2}
  26.  
  27. ${WGET} -O "${TMPFILE1}" ${URL}
  28. if test $? -eq 0; then
  29. grep \.${TARGETEXT} "${TMPFILE1}">"${TMPFILE2}"
  30. while read -r line
  31. do
  32. echo "${line}"
  33. line=${line#*title=*}  # 最初のtitleより後ろの文字列
  34. line=${line#*\"*}  # 最初の"より後ろの文字列を取り出す
  35. title=${line%%\"*}  # 最初の"より前の文字列を取り出す  
  36. echo "${title}"
  37. line=${line#*hdate=*}  # 最初のhdateより後ろの文字列
  38. line=${line#*\"*}  # 最初の"より後ろの文字列を取り出す
  39. hdate=${line%%\"*}  # 最初の"より前の文字列を取り出す  
  40. if [[ $hdate == 10* ]]; then
  41. echo "${hdate}"
  42. line=${line#*file=*}  # 最初のfileより後ろの文字列
  43. line=${line#*\"*}  # 最初の"より後ろの文字列を取り出す
  44. file=${line%%\"*}  # 最初の"より前の文字列を取り出す  
  45. file=${file%*\.${TARGETEXT}}  # 指定拡張子の切取をおこなう
  46. echo "${file}"
  47. TARGETFILE="${title}_${hdate}.${TARGETEXT}"
  48. TARGETMP3="${title}_${hdate}.mp3"
  49. utf8title="`echo "${title}_${hdate}"`"
  50. utf8Atitle="`echo "${title}"`"
  51. cp932title="`echo "${utf8title}"|iconv -f UTF-8 -t CP932`"
  52. cp932Atitle="`echo "${utf8Atitle}"|iconv -f UTF-8 -t CP932`"
  53. if !(test -e "${TARGETMP3}") then
  54.         currentdir="`pwd`"
  55.         # TMPFILE3="`mktemp "${currentdir}/tmp.XXXXXXXXXX"`"
  56.         TMPFILE3="`mktemp "/cygwin/tmp/tmp.XXXXXXXXXX"`"
  57.         # TMPFILE4="`mktemp "${currentdir}/tmp.XXXXXXXXXX"`"
  58.         TMPFILE4="`mktemp "/cygwin/tmp/tmp.XXXXXXXXXX"`"
  59.         TARGETFILE="${TMPFILE3}"
  60. echo "FLV: ${FLVBASEURL}${SCRAMBLECODE}/${file}";
  61.         # ${CMDDIR}/flvstreamer.exe -o "${TARGETFILE}" -r "${FLVBASEURL}${SCRAMBLECODE}/${file}"
  62.         ${CMDDIR}/rtmpdump.exe -o "${TARGETFILE}" -r "${FLVBASEURL}${SCRAMBLECODE}/${file}"
  63.         test $? -ne 0 && test -e "${TARGETFILE}" && rm "${TARGETFILE}"
  64.         test -e "${TARGETFILE}" && ! test -s "${TARGETFILE}" && rm "${TARGETFILE}"
  65.         if test -e "${TARGETFILE}"; then
  66.                 ${CMDDIR}/ffmpeg.exe -y -i "${TARGETFILE}" -acodec copy -f mp3 "${TMPFILE4}" </dev/null
  67.                 test $? -ne 0 && test -e "${TMPFILE4}" && rm "${TMPFILE4}"
  68.                 if test -e "${TMPFILE4}"; then
  69.                         # chmod go+r "${TARGETMP3}"
  70.                         # Linux向き
  71.                         #id3v2 -g 101 -A "${utf8Atitle}" -t "${utf8title}" "${TARGETMP3}"
  72.                         # Windows向き(SJIS(CP932)変換)
  73.                         # ${CMDDIR}/id3v2.exe -g 101 -A "${cp932Atitle}" -t "${cp932title}" "${TMPFILE4}"
  74.                         # Android向き(UTF8まま)
  75.                         ${CMDDIR}/id3v2.exe -g 101 -y "${YEAR}" -a "${ARTIST}" -A "${utf8Atitle}" -t "${utf8title}" "${TMPFILE4}"
  76.                 fi
  77.                 test -e "${TMPFILE4}" &&  mv "${TMPFILE4}" "${TARGETMP3}"
  78.                 rm "${TMPFILE3}"
  79.         else
  80.                 rm "${TMPFILE4}"
  81.         fi
  82. else
  83.         echo "${TARGETMP3} already exists"
  84. fi
  85. else
  86.         echo "${hdate} is not in range"
  87. fi
  88. done<"${TMPFILE2}"
  89. fi
  90. done<"${TMPFILE6}"
  91. rm "${TMPFILE1}" "${TMPFILE2}"
  92. cd ..
  93. }
  94.  
  95. get_code()
  96. {
  97. TMPFILE5="`mktemp`"
  98. #curl -o "${TMPFILE5}" ${CODEURL}
  99. ${WGET} -U "${UAG}" -O "${TMPFILE5}" ${CODEURL}
  100. if test $? -eq 0; then
  101. TMPFILE6="`mktemp`"
  102. egrep "scramble [^\=]+\=" ${TMPFILE5}|sort -r>${TMPFILE6}
  103. #grep "scramble date=" ${TMPFILE5}>${TMPFILE6}
  104. fi
  105. rm "${TMPFILE5}"
  106. testline="$(cat ${TMPFILE6})"
  107. if test -z "${testline}"; then
  108. echo "Failed to retrieve scramble code"
  109. rm "${TMPFILE6}" && exit 1
  110. fi
  111. }
  112.  
  113. exitproc(){ rm -rf "${TMPFILE1}" "${TMPFILE2}" "${TMPFILE3}"
  114.  "${TMPFILE4}" "${TMPFILE5}" "${TMPFILE6}";}
  115. trap '
  116. exitproc
  117. exit 1
  118. ' 2 15
  119.  
  120. WGET="wget -t 1 -T 15"
  121. UAG="Mozilla/5.0 (Windows NT 5.1; rv:2.0) Gecko/20100101 Firefox/4.0"
  122.  
  123. # NHK語学講座用
  124. BASEDIR="${OUTDIR}/NHK語学講座" # 必ず絶対パス
  125. BASEURL="http://www.nhk.or.jp/gogaku/english/"
  126. SCRAMBLECODE=
  127. FLVBASEURL="rtmp://flv9.nhk.or.jp/flv9/_definst_/flv:gogaku/streaming/flv/"
  128. TARGETEXT=flv
  129. mkdir -p "${BASEDIR}"
  130. cd "${BASEDIR}" || exit 1
  131.  
  132. # NHK語学講座ダウンロード @ ウィキ - コード参照用xml
  133. CODEURL="http://www47.atwiki.jp/jakago/pub/scramble.xml"
  134. get_code
  135.  
  136. #downfiles "01_基礎英語1"             "basic1"    "listdataflv.xml"
  137. #downfiles "02_基礎英語2"             "basic2"    "listdataflv.xml"
  138. #downfiles "03_基礎英語3"             "basic3"    "listdataflv.xml"
  139. #downfiles "04_英語5分間トレーニング" "training"  "listdataflv.xml"
  140. #downfiles "05_ラジオ英会話"          "kaiwa"     "listdataflv.xml"
  141. downfiles "06_入門ビジネス英語"      "business1" "listdataflv.xml"
  142. #downfiles "07_実践ビジネス英語"      "business2" "listdataflv.xml"
  143. rm ${TMPFILE6}