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

dailycopy

By: crabman on Jan 23rd, 2012  |  syntax: Bash  |  size: 2.96 KB  |  hits: 111  |  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. ## dailycopy par cr@bman 2011
  3. ##script qui permet de télécharger ou visualiser une vidéo sur le site dailymotion en renseignant l'url de la page.
  4.  
  5. #lecteur vidéo à utiliser pour lire la vidéo. "vlc" ,"mplayer".
  6. PLAYER="vlc"
  7. DEST="/tmp/lapage"
  8.  
  9. ## dossier ou la vidéo sera téléchargée.
  10. COPY_FOLDER="${HOME}/Bureau/copie"
  11.  
  12. if [[ -d "${COPY_FOLDER}" ]]; then
  13.         echo "dossier ... ok"
  14. else
  15.         echo "dossier ... inexistant"
  16.  mkdir -p "${COPY_FOLDER}"
  17.         echo "dossier ... crée"
  18. fi
  19.  
  20.  
  21. ## fonction qui tue wget si on annule la fenetre zenity pendant le téléchargement.
  22. function stopwget(){
  23. sleep 2
  24. while [ $(pgrep "wget") ] ; do
  25.         PID_ZENITY=$(pgrep "zenity")
  26.         if [[ ! "$PID_ZENITY" ]];then
  27.                 pkill wget
  28.                 echo " téléchargement annulé"
  29.                 break
  30.         fi
  31.         sleep 2;
  32. done
  33. }
  34.  
  35. NAME=$(zenity --entry --height="100" --width="400" --title="dailycopy" --text="url de la page dailymotion" --entry-text "")
  36.                        
  37. if [ ! "${NAME}" ]; then
  38.         exit 0
  39. elif [[ "$NAME" == "http://www.dailymotion.com"* ]]; then
  40.         wget "${NAME}" -O "${DEST}"
  41.  
  42.         if [[ ! -f "${DEST}" ]]; then
  43.         echo "impossible de copie l'url"
  44.         exit 1
  45.         fi
  46. else
  47.         zenity --error --height="100" --width="250" --title="dailycopy" --text="vous avez entrez une mauvaise url."
  48.         exit 1
  49. fi
  50.  
  51. NOM_VIDEO=$(basename "${NAME}")
  52. echo "nom de la video: ${NOM_VIDEO}"
  53.  
  54. ### décodage de l'url###
  55. #  %5C%2F  ==> /
  56. #      %3F ==> ?
  57. #      %3D ==> =
  58. #      %3A ==> :
  59.  
  60. #URL_VIDEO=$(grep allowStage "${DEST}" | sed "s/allowStage/allowStage|/" | cut -d "|" -f 1 | sed 's/\(.*\)www.dailymotion.com/\1www.dailymotion.com|/' | cut -d "|" -f 2 | sed 's/%5C%2F/\//g;s/%3F/\?/g;s/%3D/\=/g;s/%3A/\:/g' | cut -d % -f 1 )
  61.  
  62.  
  63. URL_VIDEO=$(grep allowStage "${DEST}" | sed "s/allowStage/allowStage|/" | cut -d "|" -f 1 | sed 's/\(.*\)http%3A%5C%2F%5C%2Fwww.dailymotion.com/\1|http%3A%5C%2F%5C%2Fwww.dailymotion.com/' | cut -d "|" -f 2 | sed 's/%5C%2F/\//g;s/%3F/\?/g;s/%3D/\=/g;s/%3A/\:/g' | cut -d % -f 1 )
  64.  
  65. echo "url de la video: ${URL_VIDEO}"
  66.  
  67. if [[ ! "$URL_VIDEO" ]];then
  68.         zenity --error --height="100" --width="250" --title="dailycopy" --text="vous avez entrez une mauvaise url\nou le codage de la page a changé."
  69.         exit 1
  70. fi
  71.  
  72. ### efface la page ###
  73. rm -f "${DEST}"
  74.  
  75. ACTION=$(zenity --list --radiolist --height=200 --width=250 --title="dailycopy" --text="Choisissez ce qu'il faut faire" --column="choix" --column="" --column="Actions" --hide-column=2 TRUE "A" "télécharger la video" FALSE "B" "lire avec ${PLAYER}")
  76.  
  77. if [[ "${ACTION}" == "A" ]]; then
  78.         ### téléchargement de la vidéo ###
  79.         stopwget &
  80.         wget "${URL_VIDEO}" -O "${COPY_FOLDER}/${NOM_VIDEO}.mp4" 2>&1 </dev/null | awk --re-interval ' BEGIN {duree=0; print duree; fflush();}{prog=$7;gsub(/%/,"",prog); print prog;print "#taille  -------> "$1"\\ntemps restant--> "$9"\\nvitesse -------> "$8; fflush();  }' | zenity --progress --auto-close
  81.  
  82. elif [[ "${ACTION}" == "B" ]]; then
  83.         ## lecture de la vidéo
  84.         ${PLAYER} "${URL_VIDEO}"
  85. else
  86.         echo "pas de choix"
  87. fi
  88. exit 0