#!/bin/bash
## dailycopy par cr@bman 2011
##script qui permet de télécharger ou visualiser une vidéo sur le site dailymotion en renseignant l'url de la page.
#lecteur vidéo à utiliser pour lire la vidéo. "vlc" ,"mplayer".
PLAYER="vlc"
DEST="/tmp/lapage"
## dossier ou la vidéo sera téléchargée.
COPY_FOLDER="${HOME}/Bureau/copie"
if [[ -d "${COPY_FOLDER}" ]]; then
echo "dossier ... ok"
else
echo "dossier ... inexistant"
mkdir -p "${COPY_FOLDER}"
echo "dossier ... crée"
fi
## fonction qui tue wget si on annule la fenetre zenity pendant le téléchargement.
function stopwget(){
sleep 2
while [ $(pgrep "wget") ] ; do
PID_ZENITY=$(pgrep "zenity")
if [[ ! "$PID_ZENITY" ]];then
pkill wget
echo " téléchargement annulé"
break
fi
sleep 2;
done
}
NAME=$(zenity --entry --height="100" --width="400" --title="dailycopy" --text="url de la page dailymotion" --entry-text "")
if [ ! "${NAME}" ]; then
exit 0
elif [[ "$NAME" == "http://www.dailymotion.com"* ]]; then
wget "${NAME}" -O "${DEST}"
if [[ ! -f "${DEST}" ]]; then
echo "impossible de copie l'url"
exit 1
fi
else
zenity --error --height="100" --width="250" --title="dailycopy" --text="vous avez entrez une mauvaise url."
exit 1
fi
NOM_VIDEO=$(basename "${NAME}")
echo "nom de la video: ${NOM_VIDEO}"
### décodage de l'url###
# %5C%2F ==> /
# %3F ==> ?
# %3D ==> =
# %3A ==> :
#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 )
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 )
echo "url de la video: ${URL_VIDEO}"
if [[ ! "$URL_VIDEO" ]];then
zenity --error --height="100" --width="250" --title="dailycopy" --text="vous avez entrez une mauvaise url\nou le codage de la page a changé."
exit 1
fi
### efface la page ###
rm -f "${DEST}"
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}")
if [[ "${ACTION}" == "A" ]]; then
### téléchargement de la vidéo ###
stopwget &
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
elif [[ "${ACTION}" == "B" ]]; then
## lecture de la vidéo
${PLAYER} "${URL_VIDEO}"
else
echo "pas de choix"
fi
exit 0