et attends, essayes-tu le script que j'ai posté il y a trente minutes ? si oui, c'est normal que ça ne marche pas, c'est pour canal+.
tu dois aller chercher le script ici
tu dois aller chercher le script ici
./dCplus.sh -d /vidéos/dPluzz http://www.canalplus.fr/c-divertissement/pid3350-c-salut-les-terriens.html?vid=1068115
le JSON n'est pas récupéré. J'ai essayé en modifiant ascii2uni par uni2ascii, pareil. python
>>> import stat
>>> import os.path
(Ctrl-D pour quitter python)Encore plus bizarre car dans la version 0.5.1, à aucun moment il y a ce message "annulation du téléchargement" dans les scripts...En fait il y a eu un message "annulation du téléchargement" juste avant les 100% '→à 80%),
guillaume@guillaume-m2n:~/.dPluzz$ ./dCplus.sh -d /vidéos/dPluzz http://www.canalplus.fr/c-divertissement/pid3350-c-salut-les-terriens.html?vid=1068115
DEBUT DU TRAITEMENT
-->RECUPERATION DU JSON
Total input characters 514
Characters converted to escapes 0
Characters replaced with ASCII 0
Characters deleted 0
-->TRAITEMENT DU JSON
-->RECUPERATION DU FICHIER VIDEO
avconv version 10.1, Copyright (c) 2000-2014 the Libav developers
built on May 19 2014 18:22:22 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
: No such file or directory
FIN DU TRAITEMENT
Votre Fichier Final Est :
/vidéos/dPluzz/_068115
068115
1068115.mkv
ARRÊT DU PROGRAMME
-> essai en enlevant "?vid=1068115" de l'adresse:
guillaume@guillaume-m2n:~/.dPluzz$ ./dCplus.sh -d /vidéos/dPluzz http://www.canalplus.fr/c-divertissement/pid3350-c-salut-les-terriens.html
DEBUT DU TRAITEMENT
-->RECUPERATION DU JSON
Total input characters 1829
Characters converted to escapes 0
Characters replaced with ASCII 0
Characters deleted 0
-->TRAITEMENT DU JSON
-->RECUPERATION DU FICHIER VIDEO
avconv version 10.1, Copyright (c) 2000-2014 the Libav developers
built on May 19 2014 18:22:22 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
[h264 @ 0x3433740] non-existing SPS 0 referenced in buffering period
Last message repeated 1 times
[mpegts @ 0x3432780] max_analyze_duration reached
[mpegts @ 0x3432780] Estimating duration from bitrate, this may be inaccurate
[h264 @ 0x354ab40] non-existing SPS 0 referenced in buffering period
[hls,applehttp @ 0x3417080] max_analyze_duration reached
Input #0, hls,applehttp, from 'http://us-cplus-aka.canal-plus.com/i/1405/SALUT_LES_TERRIENS_EMISSION_140510_AUTO_24424_169_video_,MOB,L,H,HD,.mp4.csmil/index_3_av.m3u8':
Duration: 00:13:06.50, start: 0.100511, bitrate: 0 kb/s
Program 0
Metadata:
variant_bitrate : 0
Stream #0.0: Video: h264 (High), yuv420p, 640x360 [PAR 90:90 DAR 16:9], 25 fps, 90k tbn, 50 tbc
Stream #0.1: Audio: aac, 44100 Hz, stereo, fltp, 116 kb/s
Stream #0.2: Data: [21][0][0][0] / 0x0015
/vidéos/dPluzz/Salut_Les_Terriens_du_10_05_14_1068098.mkv: No such file or directory
FIN DU TRAITEMENT
Votre Fichier Final Est :
/vidéos/dPluzz/Salut_Les_Terriens_du_10_05_14_1068098.mkv
ARRÊT DU PROGRAMME
Mais pas de fichier .mkv dans le répertoire.guillaume@guillaume-m2n:~/.dPluzz$ ./dCplus.sh http://www.canalplus.fr/c-divertissement/pid3350-c-salut-les-terriens.html
DEBUT DU TRAITEMENT
-->RECUPERATION DU JSON
Total input characters 1829
Characters converted to escapes 0
Characters replaced with ASCII 0
Characters deleted 0
-->TRAITEMENT DU JSON
-->RECUPERATION DU FICHIER VIDEO
avconv version 10.1, Copyright (c) 2000-2014 the Libav developers
built on May 19 2014 18:22:22 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
[h264 @ 0x2aaa740] non-existing SPS 0 referenced in buffering period
Last message repeated 1 times
[mpegts @ 0x2aa9780] max_analyze_duration reached
[mpegts @ 0x2aa9780] Estimating duration from bitrate, this may be inaccurate
[h264 @ 0x2bc1b40] non-existing SPS 0 referenced in buffering period
[hls,applehttp @ 0x2a8e080] max_analyze_duration reached
Input #0, hls,applehttp, from 'http://us-cplus-aka.canal-plus.com/i/1405/SALUT_LES_TERRIENS_EMISSION_140510_AUTO_24424_169_video_,MOB,L,H,HD,.mp4.csmil/index_3_av.m3u8':
Duration: 00:13:06.50, start: 0.100511, bitrate: 0 kb/s
Program 0
Metadata:
variant_bitrate : 0
Stream #0.0: Video: h264 (High), yuv420p, 640x360 [PAR 90:90 DAR 16:9], 25 fps, 90k tbn, 50 tbc
Stream #0.1: Audio: aac, 44100 Hz, stereo, fltp, 116 kb/s
Stream #0.2: Data: [21][0][0][0] / 0x0015
Output #0, matroska, to '/home/guillaume/Salut_Les_Terriens_du_10_05_14_1068098.mkv':
Metadata:
encoder : Lavf55.12.0
Stream #0.0: Video: H264 / 0x34363248, yuv420p, 640x360 [PAR 90:90 DAR 16:9], q=2-31, 1k tbn, 90k tbc
Stream #0.1: Audio: aac, 44100 Hz, stereo, 116 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
Press ctrl-c to stop encoding
frame=19662 fps= 22 q=-1.0 Lsize= 142276kB time=786.44 bitrate=1482.0kbits/s
video:129571kB audio:12297kB global headers:0kB muxing overhead 0.287203%
FIN DU TRAITEMENT
Votre Fichier Final Est :
/home/guillaume/Salut_Les_Terriens_du_10_05_14_1068098.mkv
ARRÊT DU PROGRAMME
Le fichier est bien dans la racine du home.python
Python 2.7.3 (default, Feb 27 2014, 19:58:35)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import stat
>>> import os.path
>>>
gksudo gedit /usr/share/dPluzz/dPluzz.py
2) Commente (ajouter #) la ligne 345
self.v.connect ("child-exited", lambda term: self.verif(self, a))
devient
# self.v.connect ("child-exited", lambda term: self.verif(self, a))
3)Enregistre, ferme gedit, et relance dPluzz.os.remove(emission)
devient
#os.remove(emission)
Tu auras quand même le message "Annulé" si ça coupe, car si le fichier n'est pas complet et que cette fonction est appelée, elle vérifie si c'est à 100%# self.v.connect ("child-exited", lambda term: self.verif(self, a))
ou
#os.remove(emission)
j'ai bien la vidéo téléchargée à 100% et qui fonctionne.dPluzz
Erreur de segmentation
j'ai refait le test avec ffmpeg et cela donne la même chose.ffmpeg -sameq -i vidéo_d'entrée.mkv -f flv vidéo_sortie.flv
sinon, un conflit entre ffmpeg et avconv?#!/bin/bash
kill_jobs()
{
pkill -TERM -P "$BASHPID"
echo "ARRÊT DU PROGRAMME"
}
trap kill_jobs EXIT
usage()
{
cat << EOF
usage: $(basename $0) [OPTIONS] URL
OPTIONS:
-f utilise ffmpeg au lieu de avconv
-d DIR dossier de destination
-u URL adresse de la vidéo
-h affiche cette aide
EOF
}
if [[ $# == 0 ]]
then
usage
exit 1
fi
IsFFMPEG="False"
while getopts "fd:hvu:" opt; do
case $opt in
"f")
IsFFMPEG="True"
;;
"d")
Directory="${OPTARG%%/}"
;;
"h")
usage
exit 1
;;
"u")
URL="${OPTARG}"
;;
"v")
set -x
;;
"?")
echo "Invalid option: -$OPTARG"
usage
exit 1
;;
esac
done
shift $(($OPTIND-1))
if [[ -z "${URL}" ]]
then
URL="${1}"
fi
if [[ "x${Directory}" == "x" ]]
then
Directory="${HOME}"
fi
#COULEUR
VERT="\\033[0;32m"
ROUGE="\\033[7;0;31m"
ROSE="\\033[0;35m"
BLEU="\\033[1;34m"
JAUNE="\\033[0;33m"
NORMAL="\\033[0;39m"
echo -e "$VERT""DEBUT DU TRAITEMENT""$NORMAL"
#Recuperation de l' ID de l' emission
UserAgent='Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:19.0) Gecko/20100101 Firefox/19.0'
ID=$(wget -q -U "${UserAgent}" "${URL}" -O - | grep -E "videoId=.*CanalPlayerEmbarque" | sed 's+.*videoId=.\([0-9]*\).*+\1+g')
#wget du json conteant les infos
echo -e "$ROSE""-->RECUPERATION DU JSON""$NORMAL"
JSON="$(wget -q -U "${UserAgent}" "http://service.canal-plus.com/video/rest/getVideos/cplus/${ID}?format=json" -O - | sed 's+\\/+/+g' | ascii2uni -q -a "U")"
#Recuperation des infos
echo -e "$ROSE""-->TRAITEMENT DU JSON""$NORMAL"
DATE="$(echo "${JSON}" | sed 's+.*DATE..\"\([^\"]*\)\".*+\1+g')"
PROG="$(echo "${JSON}" | sed 's+.*\"TITRE..\"\([^\"]*\)\".*+\1+g' | iconv -f utf8 -t ascii//TRANSLIT//IGNORE | sed -e 's/[^A-Za-z0-9._-]/_/g')"
M3U="$(echo "${JSON}" | sed 's+.*HLS..\"\([^\"]*m3u8\)\".*+\1+g')"
#Recuperation du master M3U et traitement
echo -e "$BLEU""-->RECUPERATION DU FICHIER VIDEO""$NORMAL"
M3U2="$(wget -q -U "${UserAgent}" "${M3U}" -O - | grep m3u8 | tail -1)"
if [[ "${IsFFMPEG}" == "False" ]]
then
avconv -i "${M3U2}" -vcodec copy -acodec copy "${Directory}/${PROG}_${ID}.mkv"
else
ffmpeg -i "${M3U2}" -vcodec copy -acodec copy "${Directory}/${PROG}_${ID}.mkv"
fi
echo -e "$ROUGE""FIN DU TRAITEMENT""$NORMAL"
echo -e "$JAUNE""Votre Fichier Final Est :""$NORMAL"
echo -e "$VERT""${Directory}/${PROG}_${ID}.mkv""$NORMAL"
exit 0
/usr/share/dPluzz$ ./dPluzz-cli.sh -u http://pluzz.francetv.fr/videos/image_du_jour_roland_garros_,102812610.html -f
DEBUT DU TRAITEMENT
-->RECUPERATION DU JSON
-->TRAITEMENT DU JSON
-->RECUPERATION DU FICHIER VIDEO
ffmpeg version 0.8.10-4:0.8.10-0ubuntu0.12.04.1, Copyright (c) 2000-2013 the Libav developers
built on Feb 6 2014 20:56:59 with gcc 4.6.3
*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.
[applehttp @ 0x18ee9c0] max_analyze_duration reached
[applehttp @ 0x18ee9c0] Estimating duration from bitrate, this may be inaccurate
Input #0, applehttp, from 'http://ftvodhdsecz-f.akamaihd.net/i/streaming-adaptatif_france-dom-tom/2014/S22/J1/102812610-20140526-,398,632,934,k.mp4.csmil/index_2_av.m3u8?null=':
Duration: 00:00:49.00, start: 10.106000, bitrate: N/A
Stream #0.0: Video: h264 (Main), yuv420p, 704x396 [PAR 1:1 DAR 16:9], 25 tbr, 90k tbn, 50 tbc
Stream #0.1: Audio: aac, 48000 Hz, stereo, s16
Stream #0.2: Data: [21][0][0][0] / 0x0015
Output #0, matroska, to '/home/fred/image_du_jour_roland_garros_102812610.mkv':
Metadata:
encoder : Lavf53.21.1
Stream #0.0: Video: libx264, yuv420p, 704x396 [PAR 1:1 DAR 16:9], q=2-31, 1k tbn, 25 tbc
Stream #0.1: Audio: libvo_aacenc, 48000 Hz, stereo
Stream mapping:
Stream #0.0 -> #0.0
Stream #0.1 -> #0.1
Press ctrl-c to stop encoding
frame= 983 fps=180 q=-1.0 Lsize= 4300kB time=39.31 bitrate= 896.1kbits/s
video:3960kB audio:320kB global headers:0kB muxing overhead 0.481008%
FIN DU TRAITEMENT
Votre Fichier Final Est :
/home/Pluzz/image_du_jour_roland_garros_102812610.mkv
/usr/share/dPluzz$ ./dPluzz-cli.sh -u http://pluzz.francetv.fr/videos/image_du_jour_roland_garros_,102812610.html
gksudo gedit /usr/share/dPluzz/dPluzz.py
-> ligne 63 à modifier:
self.child_pid = self.v.fork_command(None, ['/bin/bash', 'dPluzz-cli', '-f', dest, '-u', adresse])
à changer par: (c'est un exemple, car ici je ne change pas la position de "dest") -> a toi de voir ou c'est mieux de le placer. J'ai seulement mis '-f' à la fin
self.child_pid = self.v.fork_command(None, ['/bin/bash', 'dPluzz-cli', '-d ', dest, '-u', adresse, '-f'])
-> et la ligne 65 à modifier aussi:
self.child_pid = self.v.fork_command(None, ['/bin/bash', 'dPluzz-cli', dest, '-u', adresse])
ici, je ne change rien, c'est à toi de voir où placer dest (dest est une variable, donc sans ' ')
self.child_pid = self.v.fork_command(None, ['/bin/bash', 'dPluzz-cli', '-d ', dest, '-u', adresse])
Edit: Ajout de l'argument '-d ' (ne pas oublier l'espace)./script.sh -f -d /dossier -u http://adresse.html
ou
./script.sh -u http://adresse.html -d /dossier -f
devrait donner la même chose./script.sh http://adresse.html -d /dossier
téléchargera bien la vidéo mais ça ne sera pas dans le dossier demandé.