#1376 Le 24/02/2012, à 11:58
- k3c
Re : TVDownloader: télécharger les médias du net !
Dans Navigateur.py, j'ai remplacé la ligne commençant par cookie.value += par ce qui suit
cookie.value += "; PV-IDENT=exp=1330166750~acl=%2f*~hmac=bd21ab1744354fdd05372dae1700c7af86bf005f4d350ad70bf9211fcb92b762"
et je suis en train de télécharger "plus belle la vie"
Oui, bricolage, tout ça...
Edit : téléchargement terminé, 24 mns 10 sec
Dernière modification par k3c (Le 24/02/2012, à 12:02)
Debian 12 sur Thinkpad reconditionné
Hors ligne
#1377 Le 24/02/2012, à 20:22
- chaoswizard
Re : TVDownloader: télécharger les médias du net !
J'ai pi être une idée !
exp = expire
et la valeur = timestamp
Ça a l'air cohérent : 1330166750 <-> Sat, 25 Feb 2012 10:45:50 GMT
Reste plus qu'a trouvé comment avoir le hmac
EDIT : Il suffit peut être de prendre le exp d'une page au hasard avec le hmac qui correspond...
Ouais, je ne sais pas, je regarde ça demain !
Dernière modification par chaoswizard (Le 24/02/2012, à 20:25)
Ubuntu ==> Debian ==> Archlinux
Hors ligne
#1378 Le 24/02/2012, à 20:35
- LeSylV
Re : TVDownloader: télécharger les médias du net !
Bonjour. Désolé, mais mon post est celui d'un nul en script. Et depuis le passage à Oneiric, je galère car plus rien ne fonctionne. Bon, mon problème : je voudrais récupérer
http://www.pluzz.fr/vaccins-le-virus-du-doute.html
(docu sur France 5)
mais
python main.py http://www.pluzz.fr/vaccins-le-virus-du-doute.html
me renvoie :
python: can't open file 'main.py': [Errno 2] No such file or directory
Ai-je fais une mauvaise manip ?
La route est longue pour ceux qui veulent accéder à la liberté !
Hors ligne
#1379 Le 24/02/2012, à 20:42
- czed
Re : TVDownloader: télécharger les médias du net !
Oui je confirme pour la valeur exp, mais le hmac a l'air un peu plus compliqué
czed a écrit :Dans les traces on voit apparaitre ce cookie sans trop savoir d'où il vient (le lecteur Flash peut être ?)
Petite précision, je n'ai pas flash d'installé ^^
Donc ça ne devrait pas avoir de rapport avec.Flo
Je ne voulais pas dire qu'il fallait avoir Flash pour télécharger la vidéo avec PluzzDL, mais plutôt qu'il fallait lancer la vidéo avec le lecteur Flash pour trouver le cookie dans les traces (PV-IDENT=exp=1330166750~acl=%2f*~hmac=bd21... par exemple)
@LeSylV : malheureusement PluzzDL ne marche plus pour l'instant, une solution serait de modifier une ligne de Navigateur.py avec cette valeur
cookie.value += "; PV-IDENT=exp=1330166750~acl=%2f*~hmac=bd21ab1744354fdd05372dae1700c7af86bf005f4d350ad70bf9211fcb92b762"
PS: Sous Windows Captvty remarche et si je ne me trompe la solution que son auteur a trouvé, c'est de publier manuellement le fameux cookie sur son site. Cookie que Captvty récupère ensuite et utilise pour télécharger les vidéos
Dernière modification par czed (Le 24/02/2012, à 20:47)
Hors ligne
#1380 Le 24/02/2012, à 21:11
- LeSylV
Re : TVDownloader: télécharger les médias du net !
Merci czed. Mais je suis vraiment pas doué.
@LeSylV : malheureusement PluzzDL ne marche plus pour l'instant, une solution serait de modifier une ligne de Navigateur.py avec cette valeur
Comment faire concrètement pour modifier Navigateur.py ?
La route est longue pour ceux qui veulent accéder à la liberté !
Hors ligne
#1381 Le 24/02/2012, à 21:49
- LeSylV
Re : TVDownloader: télécharger les médias du net !
C'est bon, je l'ai trouvé et édité. Je rajoute juste la ligne ? En effet, aucune ligne commençant par cookie.value +=
Voici ce que me donne : user/share/tvdoawloader/navigateur.py :
#!/usr/bin/env python
# -*- coding:Utf-8 -*-
#########################################
# Licence : GPL2 ; voir fichier COPYING #
#########################################
# Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes de la Licence Publique Générale GNU publiée par la Free Software Foundation (version 2 ou bien toute autre version ultérieure choisie par vous).
# Ce programme est distribué car potentiellement utile, mais SANS AUCUNE GARANTIE, ni explicite ni implicite, y compris les garanties de commercialisation ou d'adaptation dans un but spécifique. Reportez-vous à la Licence Publique Générale GNU pour plus de détails.
# Vous devez avoir reçu une copie de la Licence Publique Générale GNU en même temps que ce programme ; si ce n'est pas le cas, écrivez à la Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, États-Unis.
###########
# Modules #
###########
import urllib
import urllib2
import mechanize
import random
import re
import threading
import time
import logging
logger = logging.getLogger( __name__ )
#
# Liste d'user agent
#
listeUserAgents = [ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1',
'Mozilla/5.0 (Windows; U; Windows NT 6.0; fr; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1',
'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; fr; rv:1.9.0.3) Gecko/2008092414 Firefox/3.0.3',
'Mozilla/5.0 (Windows; U; Windows NT 6.1; fr; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6',
'Mozilla/5.0 (Windows; U; Windows NT 6.1; fr; rv:1.9.1b2) Gecko/20081201 Firefox/3.1b2',
'Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1',
'Mozilla/5.0 (Windows; U; Windows NT 6.1; fr; rv:1.9.2) Gecko/20100115 Firefox/3.6',
'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13',
'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)',
'Mozilla/5.0 (X11; U; Linux x86_64; en-us) AppleWebKit/528.5+ (KHTML, like Gecko, Safari/528.5+) midori',
'Opera/8.50 (Windows NT 5.1; U; en)',
'Opera/9.80 (X11; Linux x86_64; U; fr) Presto/2.2.15 Version/10.00',
'Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-us) AppleWebKit/312.1 (KHTML, like Gecko) Safari/312' ]
##########
# Classe #
##########
## Classe Navigateur pour charger les pages web
class Navigateur( object ):
timeOut = 5
maxThread = 10
## Constructeur
def __init__( self ):
# Navigateur
self.navigateur = mechanize.Browser()
#
# Options du Navigateur
#
# User Agent
self.navigateur.addheaders = [ ('User-agent', random.choice( listeUserAgents ) ) ]
#
self.navigateur.set_handle_equiv( True )
# Active compression gzip
#~ self.navigateur.set_handle_gzip( True )
#
self.navigateur.set_handle_redirect( True )
# N'ajoute pas le referer a l'en-tete
self.navigateur.set_handle_referer( False )
# Ne prend pas en compte les robots.txt
self.navigateur.set_handle_robots( False )
# Ne doit pas gerer les cookies
self.navigateur.set_cookiejar( None )
## Methode pour recuperer une page web
# @param URLPage URL de la page web a charger
# @return Code de la page
def getPage( self, URLPage ):
logger.info( "acces a la page %s" %( URLPage ) )
try:
# Page a charger
page = self.navigateur.open( URLPage, timeout = self.timeOut )
# Si le fichier est un XML
if( URLPage[ -4 : ] == ".xml" ):
# On la page telle quelle, sans aucun traitement
return page.read()
else: # Sinon, on va cherche a determiner son encodage
# Donnees de la page
donnees = self.unescape( page.read() )
# On recupere si possible l'encodage de la page
contentType = page.info()[ "Content-type" ]
# Type d'encodage de la page
encodagePage = ""
# On extrait l'encodage
res = re.findall( "charset=(.+)", contentType )
if( len( res ) != 0 ):
encodagePage = res[ 0 ].lower()
# Si on a trouve un encodage et qui n'est pas de l'utf-8
if( encodagePage != "" and encodagePage != "utf-8" ):
# On retourne la page dans le bon encodage
return unicode( donnees, encodagePage ).encode( 'utf-8', 'replace' )
else:
return donnees
except urllib2.URLError, erreur:
try:
logger.error( erreur.reason )
except :
pass
return ""
except:
return ""
## Methode pour recuperer plusieurs pages web
# @param listeURL Liste des URLs des pages web a charger
# @return La liste (dictionnaire) des pages web recuperees { URLPage : Page }
def getPages( self, listeURL ):
## Sous methode qui gere le telechargement d'une page (thread)
# @param URLPage URL de la page a charger
def ajoutPage( self, URLPage ):
# On a un thread lance de plus
self.lock.acquire()
self.nbThreadLances += 1
self.lock.release()
# On recupere la page web
try:
page = self.getPage( URLPage )
except:
page = ""
#~ print "DL de %s fini" %( URLPage )
# On ajoute la page a la liste et on a un thread lance de moins
self.lock.acquire()
self.listePage[ URLPage ] = page
self.nbThreadLances -= 1
self.lock.release()
self.listePage = {}
self.nbThreadLances = 0
indiceActuelListe = 0
tailleListe = len( listeURL )
self.lock = threading.Lock()
# Boucle pour lancer les threads
self.lock.acquire()
while( indiceActuelListe < tailleListe ): # Tant qu'on a pas fini de parcourir la liste
if( self.nbThreadLances < self.maxThread ): # Si on peut encore lance des threads
#~ print "Indice = %d" %( indiceActuelListe )
self.lock.release()
# On en lance un
threading.Thread( target = ajoutPage,
args = ( self, listeURL[ indiceActuelListe ] )
).start()
indiceActuelListe += 1
#~ self.lock.release()
#~ time.sleep( 0.01 ) # Legere attente pour que le thread ait le temps d'incrementer le nombre de threads lances
else: # Sinon,
# On attend un peu avant de reessayer
self.lock.release()
time.sleep( 0.1 )
#~ print self.nbThreadLances
self.lock.acquire()
self.lock.release()
# Boucle pour attendre la fin de tous les threads
self.lock.acquire()
while( self.nbThreadLances > 0 ): # Si des threads ne sont pas finis
#~ print self.nbThreadLances
# On attend un peu
self.lock.release()
time.sleep( 0.1 )
self.lock.acquire()
self.lock.release()
return self.listePage
## Methode pour recuperer une image
# @param URLPicture URL de l'image a charger
# @return Image
def getPicture( self, URLPicture ):
try:
# Image a charger
page = self.navigateur.open( URLPicture, timeout = self.timeOut )
# Donnees de l'image
donnees = page.read()
return donnees
except urllib2.URLError, erreur:
try:
logger.error( erreur.reason )
except :
pass
return ""
def unescape( self, texte ):
def ent2chr( m ):
code = m.group( 1 )
if( code.isdigit() ):
code = int( code )
else:
code = int( code[ 1 : ], 16 )
if( code < 256 ):
return chr( code )
else:
return '?'
texte = texte.replace( "<", "<" )
texte = texte.replace( ">", ">" )
texte = texte.replace( "&", "&" )
texte = re.sub( r'\&\#(x?[0-9a-fA-F]+);', ent2chr, texte )
return texte
#~ n = Navigateur()
#~
#~ print n.getPages( [ "[url]http://effbot.org/zone/thread-synchronization.htm[/url]",
#~ "http://www.google.fr/" ] )
Dernière modification par LeSylV (Le 24/02/2012, à 22:30)
La route est longue pour ceux qui veulent accéder à la liberté !
Hors ligne
#1382 Le 24/02/2012, à 23:30
- ub821
Re : TVDownloader: télécharger les médias du net !
Oui je confirme pour la valeur exp, mais le hmac a l'air un peu plus compliqué
...
Flo
Je ne voulais pas dire qu'il fallait avoir Flash pour télécharger la vidéo avec PluzzDL, mais plutôt qu'il fallait lancer la vidéo avec le lecteur Flash pour trouver le cookie dans les traces (PV-IDENT=exp=1330166750~acl=%2f*~hmac=bd21... par exemple)...
Oh, purée... c'te manip qu'"ils" vous forcent à faire... ah, sont coquins, les p'tits gars...
Tout çà pour abonder avec czed, car tant que l'on ne lance pas le démarrage, en faisant "inspection de l'élément" sur la page concernée, rien ne s'affiche, puis au lancement de la vidéo, il y a pas mal d'informations (que je suis incapable de lire et d'interpréter... ) qui s'affichent !
toujours cela avec chromium !
Firefox fait de même ?
Cordialement
Bernard
Ubuntu 24 / HP-8300SFF, Intel I7-2600, 3.4GHz, Ram 32Go, SSD 1To
Le Blog des bonnes questions à se poser, et comment se les poser...
Hors ligne
#1383 Le 25/02/2012, à 08:56
- k3c
Re : TVDownloader: télécharger les médias du net !
Un cookie tout neuf
PV-IDENT exp=1330242849~acl=%2f*~hmac=d9c05bf4bb3d3b2bfe41bd75e961a4fc8f1cdb5596eea842320aec0400aa241b
Dernière modification par k3c (Le 25/02/2012, à 08:56)
Debian 12 sur Thinkpad reconditionné
Hors ligne
#1384 Le 25/02/2012, à 08:56
- grandtoubab
Re : TVDownloader: télécharger les médias du net !
salut,
Par Opera aussi c'est possible
Clic droit sur la video en flash -> inspecter l'élément
onglet reseau
@ubuntu-desktop:~/Linux/new_pluzz$ python main.py http://www.pluzz.fr/jt-reunion-.html
[INFO ] PluzzDL.py Début du téléchargement des fragments
[CRITICAL] PluzzDL.py Impossible de charger la vidéo
Petite modif du code:
@ubuntu-desktop:~/Linux/new_pluzz$ sudo gedit Navigateur.py
[sudo] password for xxx:
# Modif à la con du cookie >< !
for cookie in self.cookiejar:
if( cookie.name == "hdntl" and cookie.value.find( "PV-IDENT" ) == -1 ):
cookie.value += "; PV-IDENT=exp=1330242038~acl=%2f*~hmac=2cfbd2251bf4ce6b0a0162f53fe95c13dc7206caf189f2a6cc2c6de33255001f"
J'ai récupéré les infos de la fenetre Opera en les sélectionnant puis par Ctrl + C et coller Ctrl +V
ça ma l'air de bien télécharger j'ai un fichier jt-reunion-.flv qui se remplit
@ubuntu-desktop:~/Linux/new_pluzz$ python main.py http://www.pluzz.fr/jt-reunion-.html
[INFO ] PluzzDL.py Début du téléchargement des fragments
Nickel
@ubuntu-desktop:~/Linux/new_pluzz$ python main.py http://www.pluzz.fr/jt-reunion-.html
[INFO ] PluzzDL.py Début du téléchargement des fragments
[INFO ] PluzzDL.py Fin du téléchargement
@ubuntu-desktop:~/Linux/new_pluzz$
42 minutes d'infos sur les émeutes ça change de tf1
Dernière modification par grandtoubab (Le 25/02/2012, à 09:02)
Linux tout seul sur HP Pavilion DV7 et Acer Aspire T650, Canon MG3650 en wifi
Debian 11 Bullseye Gnome/Xorg, Gnome/Wayland avec SDDM
https://bidouilledebian.wordpress.com/
ON M'A VU DANS LE VERCORS, SAUTER A L'ELASTIQUE..... J'AI DANS LES BOTTES DES MONTAGNES DE QUESTIONS....
Hors ligne
#1385 Le 25/02/2012, à 11:06
- LesH
Re : TVDownloader: télécharger les médias du net !
Bonjour à tous. Le fameux cookie est obtenu lors du chargement du manifest. A ce stade il est incomplet. Après lecture de la pub, il y a un get http://ftvodhdsecz-f.akamaihd.net/crossdomain.xml qui le met à jour en y ajoutant PV-IDENT=exp=.... Cela ressemble à un truc du genre : si tu n'as pas regardé la pub, pas de vidéo. Vive la pub !!! A+
Hors ligne
#1386 Le 25/02/2012, à 17:49
- czed
Re : TVDownloader: télécharger les médias du net !
Pour info une nouvelle révision est disponible : http://tvdownloader.googlecode.com/hg-h … Pluzz/src/
Merci chaoswizard
Hors ligne
#1387 Le 25/02/2012, à 18:40
- chaoswizard
Re : TVDownloader: télécharger les médias du net !
Oui, comme je n'ai pas trouvé pour l'instant, on va faire la méthode sale : une page web qui contient le cookie a utiliser.
S'il y avait 1 ou 2 volontaires pour m'aider à mettre à jour ce cookie, ça serait bien.
Solution provisoire en attendant...
Ubuntu ==> Debian ==> Archlinux
Hors ligne
#1388 Le 25/02/2012, à 19:10
- k3c
Re : TVDownloader: télécharger les médias du net !
@chaoswizard
Oui je pensais à cela, je suis volontaire pour mettre à jour la page.
Par contre comment va se faire l'authentification ?
Dernière modification par k3c (Le 25/02/2012, à 19:11)
Debian 12 sur Thinkpad reconditionné
Hors ligne
#1389 Le 25/02/2012, à 19:12
- chaoswizard
Re : TVDownloader: télécharger les médias du net !
J'ai crée "un site" sur un hébergeur gratuit.
Ce n'est pas très compliqué du coup !
Ubuntu ==> Debian ==> Archlinux
Hors ligne
#1390 Le 25/02/2012, à 21:41
- Hizoka
Re : TVDownloader: télécharger les médias du net !
ca m'a l'air de passer
merci
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#1391 Le 25/02/2012, à 22:10
- ub821
Re : TVDownloader: télécharger les médias du net !
Oui, comme je n'ai pas trouvé pour l'instant, on va faire la méthode sale : une page web qui contient le cookie a utiliser.
S'il y avait 1 ou 2 volontaires pour m'aider à mettre à jour ce cookie, ça serait bien.Solution provisoire en attendant...
J'ai crée "un site" sur un hébergeur gratuit.
Ce n'est pas très compliqué du coup !
Indiques ce que tu souhaites chaoswizard que j'aide un ch'tit peu...
Cordialement
Bernard
Ubuntu 24 / HP-8300SFF, Intel I7-2600, 3.4GHz, Ram 32Go, SSD 1To
Le Blog des bonnes questions à se poser, et comment se les poser...
Hors ligne
#1392 Le 25/02/2012, à 22:38
- chaoswizard
Re : TVDownloader: télécharger les médias du net !
Ben en gros, aller mettre à jour le cookie de temps en temps (il doit dure 1 jour normalement).
Ubuntu ==> Debian ==> Archlinux
Hors ligne
#1393 Le 25/02/2012, à 22:40
- k3c
Re : TVDownloader: télécharger les médias du net !
Je viens de mettre un nouveau cookie, que j'ai testé avec succès.
Debian 12 sur Thinkpad reconditionné
Hors ligne
#1394 Le 25/02/2012, à 22:58
- Hizoka
Re : TVDownloader: télécharger les médias du net !
bon ba ca passe plus...
je pige pas grand chose ....
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#1395 Le 25/02/2012, à 23:01
- k3c
Re : TVDownloader: télécharger les médias du net !
Ca doit être mon cookie qui est pas bon, je regarde...
Debian 12 sur Thinkpad reconditionné
Hors ligne
#1396 Le 25/02/2012, à 23:17
- k3c
Re : TVDownloader: télécharger les médias du net !
C'est bizarre, le cookie dans l'ancienne version de Navigateur.py permet de télécharger, mais le même sur le site web de Chaoswizard ne le permet pas...
Il doit y avoir un problème de format...
Edit : dans l'ancienne version de Navigateur.py, ce qui suit marche
grep PV Navigateur.py
if( cookie.name == "hdntl" and cookie.value.find( "PV-IDENT" ) == -1 ):
cookie.value += "; PV-IDENT=exp=1330285713~acl=%2f*~hmac=d3a3ccd7aedf647bd81135f6d3f37e05a6aff8444b5c159a261e1f0d5483a385"
Dernière modification par k3c (Le 25/02/2012, à 23:20)
Debian 12 sur Thinkpad reconditionné
Hors ligne
#1397 Le 25/02/2012, à 23:25
- chaoswizard
Re : TVDownloader: télécharger les médias du net !
Euh, le format dans le fichier doit être de la forme :
PV-IDENT=exp=1330285713~acl=%2f*~hmac=d3a3ccd7aedf647bd81135f6d3f37e05a6aff8444b5c159a261e1f0d5483a385
sans le " à la fin !
Ubuntu ==> Debian ==> Archlinux
Hors ligne
#1398 Le 25/02/2012, à 23:31
- k3c
Re : TVDownloader: télécharger les médias du net !
Ok c'est noté, désolé pour la boulette.
Edit : j'ai modifié sur le site comme indiqué, mais ça ne passe toujours pas...
Edit2 : encore modifié, avec
PV-IDENT=exp=1330293698~acl=%2f*~hmac=e52a897c752d02f0188fa92eb65ee49cd9abc48c2fa9dbf9cacfeca0a280d96e
mais pas mieux.
Il faut le
PV-IDENT au début de la ligne ?
Edit3 : ça remarche suite à une modif de Chaoswizard, mais je cherche laquelle !
Dernière modification par k3c (Le 26/02/2012, à 00:05)
Debian 12 sur Thinkpad reconditionné
Hors ligne
#1399 Le 25/02/2012, à 23:57
- chaoswizard
Re : TVDownloader: télécharger les médias du net !
Il me semble que oui.
Je vais voir.
Ubuntu ==> Debian ==> Archlinux
Hors ligne
#1400 Le 26/02/2012, à 00:24
- ub821
Re : TVDownloader: télécharger les médias du net !
Ben en gros, aller mettre à jour le cookie de temps en temps (il doit dure 1 jour normalement).
J'dois être bouché... sur quelle page aller mettre le cookie... ?
Cordialement
Bernard
Ubuntu 24 / HP-8300SFF, Intel I7-2600, 3.4GHz, Ram 32Go, SSD 1To
Le Blog des bonnes questions à se poser, et comment se les poser...
Hors ligne