Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#2301 Le 28/10/2012, à 16:38

ynad

Re : TVDownloader: télécharger les médias du net !

Re wink

   @11gjm

http://code.google.com/p/tvdownloader/source/list


la liste des correctifs, dans la dernière il y a 4h les deux nouveaux fichiers main.py (v 0.9.3) et PluzzDL.py

qui permettent le changement url

  @+

Hors ligne

#2302 Le 28/10/2012, à 16:56

11gjm

Re : TVDownloader: télécharger les médias du net !

Bonjour ,

@ynad : Merci pour taréponse .
Je vais aller voir .

Cordialement .

Hors ligne

#2303 Le 28/10/2012, à 16:58

chaoswizard

Re : TVDownloader: télécharger les médias du net !

@chaoswizard : penses à modifier , aussi , la version .exe .
A l'occasion . Merci .

Ouais, enfin, c'est encore un test : j'ai juste essayé de charger une seule vidéo ><

Dernière modification par chaoswizard (Le 28/10/2012, à 16:59)


Ubuntu ==> Debian ==> Archlinux

Hors ligne

#2304 Le 28/10/2012, à 18:16

duocore

Re : TVDownloader: télécharger les médias du net !

je ne vois pas comment utiliser la commande:

http://www.encodage.org/arte.php?http:/ … e_la_vidéo
pour la video:http://www.wat.tv/video/saison-episode-malediction-5bflx_4dfnt_.html

merci pour votre aide

ps: je suis un noob pour la ligne de commande

Hors ligne

#2305 Le 28/10/2012, à 19:46

11gjm

Re : TVDownloader: télécharger les médias du net !

Bonjour ,

@duocore : On recommence à zéro !!! Enfin presque .

La solution serait d'utiliser "flvstreamer" .  !!! POINT !!! .
( On ne va pas sur le site encodage.org , OK . Recherche de flux pour ARTE ) .

Donc , soit tu as un RTMPdump (2.5) , soit tu installes FLVStreamer (v1.9 ou supérieure) .
Ci-dessous un batch (modifié pour flv... avec LNX...) :

flvstreamer -r "rtmpte://wske.wat.tv:1935/ondemand" -a "ondemand" -f "LNX 10,2,202,243" -s "http://www.wat.tv/images/v40/PlayerWat.swf" -p "http://www.wat.tv/video/saison-episode-malediction-5bflx_4dfnt_.html" -y "mp4:vod/H264-384x288/15/25/8931525.h264?bu=wat.tv&login=Haven-nt1&i=90.28.251.251&u=4e847b52ed42048286d2adcfbb2aa526&sum=c3787fe2936c236b1981b0b3967bb275" -o 8931525.h264.flv

A+ .

Hors ligne

#2306 Le 28/10/2012, à 20:53

duocore

Re : TVDownloader: télécharger les médias du net !

j'ai lancé la commande flvstreamer -r "rtmpte://wske.wat.tv:1935/ondemand" -a "ondemand" -f "LNX 10,2,202,243" -s "http://www.wat.tv/images/v40/PlayerWat.swf" -p "http://www.wat.tv/video/saison-episode- … dfnt_.html" -y "mp4:vod/H264-384x288/15/25/8931525.h264?bu=wat.tv&login=Haven-nt1&i=90.28.251.251&u=4e847b52ed42048286d2adcfbb2aa526&sum=c3787fe2936c236b1981b0b3967bb275" -o 8931525.h264.flv

j'ai 2 erreurs
error:rtmp server sent error
error: rtmp server requested close

je ne sais pas quoi faire d'autre

Hors ligne

#2307 Le 28/10/2012, à 21:16

11gjm

Re : TVDownloader: télécharger les médias du net !

Re-... ,
> je ne sais pas quoi faire d'autre
Moi non plus ; désolé .

A+ .

Hors ligne

#2308 Le 28/10/2012, à 22:14

k3c

Re : TVDownloader: télécharger les médias du net !

Pour moi c'est ok

gg@gg-SATELLITE-L755:~$ rtmpdump -r "rtmpte://wske.wat.tv:1935/ondemand" -a "ondemand" -f "LNX 10,2,202,243" -s "http://www.wat.tv/images/v40/PlayerWat.swf" -p "http://www.wat.tv/video/saison-episode- … dfnt_.html" -y "mp4:vod/H264-384x288/15/25/8931525.h264?bu=wat.tv&login=Haven-nt1&i=90.28.251.251&u=4e847b52ed42048286d2adcfbb2aa526&sum=c3787fe2936c236b1981b0b3967bb275" -o 8931525.h264.flv
RTMPDump v2.4
(c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL
Connecting ...
WARNING: HandShake: Type mismatch: client sent 6, server answered 9
INFO: Connected...
ERROR: HandleCtrl: Ignoring SWFVerification request, use --swfVfy!
Starting download at: 0.000 kB
INFO: Metadata:
INFO:   duration              2434.90
INFO:   moovPosition          40.00
INFO:   width                 640.00
INFO:   height                360.00
INFO:   videocodecid          avc1
INFO:   audiocodecid          mp4a
INFO:   avcprofile            77.00
INFO:   avclevel              30.00
INFO:   aacaot                2.00
INFO:   videoframerate        25.00
INFO:   audiosamplerate       44100.00
INFO:   audiochannels         2.00
INFO: tags:
INFO:   ©too                 Lavf54.32.101
INFO: trackinfo:
INFO:   length                31166464.00
INFO:   timescale             12800.00
INFO:   language              eng
INFO: sampledescription:
INFO:   sampletype            avc1
INFO:   length                107379232.00
INFO:   timescale             44100.00
INFO:   language              fre
INFO: sampledescription:
INFO:   sampletype            mp4a
3963.010 kB / 49.52 sec (2.0%)^C
Caught signal: 2, cleaning up, just a second...
ERROR: RTMP_ReadPacket, failed to read RTMP packet body. len: 70017
4004.062 kB / 49.52 sec (2.0%)

Archlinux sur Xiaomi Air 13

Hors ligne

#2309 Le 28/10/2012, à 22:20

k3c

Re : TVDownloader: télécharger les médias du net !

duocore

tu devrais peut-être te démarrer une Ubuntu récente dans Qemu-kvm ou Virtual Box

Tu réserves 5 Go pour cela.
Tu télécharges l'iso qui te convient.
Tu la lances, et tu as une distrib récente.


Archlinux sur Xiaomi Air 13

Hors ligne

#2310 Le 30/10/2012, à 00:56

duocore

Re : TVDownloader: télécharger les médias du net !

j'ai installer la version 12.4 et utiliser la commande: rtmpdump -r "rtmpte://wske.wat.tv:1935/ondemand" -a "ondemand" -f "LNX 10,2,202,243" -s "http://www.wat.tv/images/v40/PlayerWat.swf" -p "http://www.wat.tv/video/saison-episode- … dfnt_.html" -y "mp4:vod/H264-384x288/15/25/8931525.h264?bu=wat.tv&login=Haven-nt1&i=90.28.251.251&u=4e847b52ed42048286d2adcfbb2aa526&sum=c3787fe2936c236b1981b0b3967bb275" -o 8931525.h264.flv
cela commence tres bien, mais une fois arrivé a 17% :
Error rtmp_readpacket, failed to read rtmp packet body. len: 72250 XX kb/XX sec(17%)
download may be incomplete (downloaded about 17%, try resuming.

et je voudrais savoir comment faites vous pour recuperer toutes les données apres rtmpdump

merci de votre aide

Hors ligne

#2311 Le 30/10/2012, à 17:13

11gjm

Re : TVDownloader: télécharger les médias du net !

Bonjour à tous ,

@duocore : Nous allons suivre une nouvelle procédure .
Le flux fourni , est coupé au bout de 20% environ (???) .

IL FAUT RELANCER LE "BATCH" ( 4 ou 5 fois ) , sans détruire ce qui a été téléchargé .
( NB: C'est à ça que sert l'instruction --resume à la fin de l'instruction ) .

Ci-dessous , il y a les nouvelles instructions pour tes commandes ( sous Linux ) .

rtmpdump -b 1000000000 -r "rtmpte://wske.wat.tv:1935/ondemand" -a "ondemand" -f "LNX 10,2,202,243" -W "http://www.wat.tv/images/v40/PlayerWat.swf?revision=4.1.80" -p "http://www.wat.tv/video/saison-episode-malediction-5bflx_4dfnt_.html" -y "mp4:vod/H264-384x288/15/25/8931525.h264?bu=wat.tv&login=Haven-nt1&i=90.28.251.251&u=4e847b52ed42048286d2adcfbb2aa526&sum=c3787fe2936c236b1981b0b3967bb275" -o 8931525.h264.flv --resume

( NB: Si , ça ne passe pas , essayer de transformer "rtmpte" en "rtmpe" ) .

Je viens d'effectuer le téléchargement ( en 5 fois ) . C'est parfait .
Mais , quelle galère !!!

======

@k3c : Il faut re-modifier le fichier "TF1 version 0.2 par k3c" .
infos indiquées à : http://forum.ubuntu-fr.org/viewtopic.ph … #p11015781

La précédente mouture indiquait de transformer "rtmpte" en "rtmpe" ,
( fonction 'replace' ) .
Il s'avère que ceci n'est plus nécessaire .

Voir exemple , ci-dessous :
-----
http://www.wat.tv/video/saison-episode- … dfnt_.html
---
rtmpte://wske.wat.tv/ondemand/mp4:vod/H264-384x288/15/25/8931525.h264
-----

Il apparaît , un autre soucis . Cela concerne la reprise du téléchargement ( interrompu ) .
Peux-tu entrer une instruction afin de relancer la capture ?

Cordialement .

Édité à 17h38mn

=== ??? ===
Je viens de tester avec "captvty" ( sous Windows ) .
J'ai obtenu "saison-2---episode-1-malédiction.flv" , sans coupure .

Peut-être , était-ce le serveur qui nous jouait des tours (???) .
===========

Dernière modification par 11gjm (Le 30/10/2012, à 18:39)

Hors ligne

#2312 Le 30/10/2012, à 19:02

k3c

Re : TVDownloader: télécharger les médias du net !

@ 11 gjm

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# TF1 version 0.3 par k3c, correction de 11gjm
import subprocess, optparse, re, sys, os, shlex
import socket
from urllib2 import Request, urlopen, URLError, HTTPError
from urllib2 import ProxyHandler, Request, urlopen, URLError, HTTPError
import time,md5,random,urllib2
import bs4 as BeautifulSoup
timeout = 90
listeUserAgents = [ 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_5; fr-fr) AppleWebKit/525.18 (KHTML, like Gecko) Version/3.1.2 Safari/525.20.1',
                                                'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.186 Safari/535.1',
                                                '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/5.0 (X11; U; Linux x86_64; en-us) AppleWebKit/528.5+ (KHTML, like Gecko, Safari/528.5+) midori',
                                                'Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.107 Safari/535.1',
                                                'Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-us) AppleWebKit/312.1 (KHTML, like Gecko) Safari/312',
                                                'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.12 Safari/535.11',
                                                'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.8 (KHTML, like Gecko) Chrome/17.0.940.0 Safari/535.8' ]

def get_wat(id):
    ID_WAT = id
    def base36encode(number):
        if not isinstance(number, (int, long)):
            raise TypeError('number must be an integer')
        if number < 0:
            raise ValueError('number must be positive')
        alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
        base36 = ''
        while number:
            number, i = divmod(number, 36)
            base36 = alphabet[i] + base36
        return base36 or alphabet[0]
    ts = base36encode(int(time.time()))
    timesec = hex(int(ts, 36))[2:]
    while(len(timesec)<8):
        timesec="0"+timesec
    token = md5.new("9b673b13fa4682ed14c3cfa5af5310274b514c4133e9b3a81e6e3aba00912564/web/"+str(ID_WAT)+""+timesec).hexdigest()
    id_url1 = "http://www.wat.tv/get/web/"+str(ID_WAT)+"?token="+token+"/"+timesec+"&getURL=1&country=FR"
    return id_url1

def main():
    # timeout en secondes
    socket.setdefaulttimeout(timeout)
    usage   = "usage: python tmc_tf1.py     [options] <url de l'emission>"
    parser  = optparse.OptionParser( usage = usage )
    parser.add_option( "--nocolor",         action = 'store_true', default = False, help = 'desactive la couleur dans le terminal' )
    parser.add_option( "-v", "--verbose",   action = "store_true", default = False, help = 'affiche les informations de debugage' )
    ( options, args ) = parser.parse_args()
    if( len( args ) > 2 or args[ 0 ] == "" ):
        parser.print_help()
        parser.exit( 1 )
    the_url = sys.argv[1] 
    html = urlopen(sys.argv[1]).read()
    nom = sys.argv[1].split('/')[-1:][0]
    no = nom.split('.')[-2:][0]
    soup = BeautifulSoup.BeautifulSoup(html)
    debut_id = str(soup.find('div', attrs={'class' : 'unique' }))
    id = [x.strip() for x in re.findall("mediaId :([^,]*)",debut_id)][0]
    id_url1 = get_wat(id)
    opener = urllib2.build_opener()
    opener.addheaders = [('User-agent', random.choice(listeUserAgents))]
    data = opener.open(id_url1).read()
    opener.close()
    if data[0:4] == 'http':
        ua = random.choice(listeUserAgents)
        arguments = 'curl "%s" -L -g -A "%s" -o "%s.mp4"' % (data, ua, no)
        process = subprocess.Popen(arguments, stdout=subprocess.PIPE, shell=True).communicate()[0]
    if data[0:4] == 'rtmp':
	host = re.search('rtmpte://(.*)/ondemand',data).group(1)
        host = host.replace('rtmpte','rtmpe')
        player = "http://www.wat.tv/images/v40/PlayerWat.swf?revision=4.0.992"
        data0 = re.search('rtmpte://(.*)h264',data).group(0)
        data1 = re.search('&u=(.*)&sum',data).group(1)
        data2 = re.search('&sum=(.*)$',data).group(1)
        data3 = data1+data2
        app = re.search('wske.wat.tv/(.*)/mp4:vod',data).group(1)
        playpath = re.search('mp4:vod(.*).h264',data).group(0)
#        cmds = "rtmpdump"+" --host "+host+" -l 0 --app "+app+" --playpath "+playpath+" --swfVfy "+player+" --port 443 -e -k 1 --flv "+str(no)+".mp4"
        cmds = 'rtmpdump -r "%s" -c 1935 -m 10 -w 40ee2a765514facfc6b1eb2745d22cdbdfaaf7f1488b17600c1a22dd3074735d -x 339543 -o "%s.mp4" " --resume"' % (data0, str(no))
        arguments = shlex.split( cmds )
        print arguments
        process = subprocess.Popen( arguments, stdout = subprocess.PIPE).communicate()[0]
if __name__ == "__main__":
    main()

J'ai téléchargé
http://videos.tmc.tv/las-vegas/saison-5 … 1-848.html
et eu une vidéo de 41 mns 5 s, comme indiqué dans mediainfo.


Archlinux sur Xiaomi Air 13

Hors ligne

#2313 Le 30/10/2012, à 21:03

duocore

Re : TVDownloader: télécharger les médias du net !

merci cela fonctionne

et je voudrais savoir comment faites vous pour recuperer toutes les données apres rtmpdump

merci de votre aide

Hors ligne

#2314 Le 30/10/2012, à 21:49

11gjm

Re : TVDownloader: télécharger les médias du net !

Bonjour ,

@k3c : Constations suites aux modifs de "tf1_03.py"

--- Écritures du batch ---
python tf1_03.py url_de_la_video
---

1) Cela fonctionne .
2) Arrêt ( n'importe quand ??? ) .
3) Relance du process => ça écrase la vidéo enregistrée .
( blocage éventuel du nouveau process => suppression manuelle de la vidéo ) .

Y-a-t'il une instruction à ajouter ?

=====
J'ai créé un batch pour Windows ; ça fonctionne , mais même problèmes .
=====

Donc ,
_ soit ma ligne n'est pas assez rapide ( 250 ko/s en DL ) .
_ soit je n'ai pas assez de mémoire vive ( 1 Mo )
_ soit le serveur est saturé

Merci , pour ton aide .

Cordialement .

Hors ligne

#2315 Le 30/10/2012, à 22:06

k3c

Re : TVDownloader: télécharger les médias du net !


Archlinux sur Xiaomi Air 13

Hors ligne

#2316 Le 30/10/2012, à 23:17

duocore

Re : TVDownloader: télécharger les médias du net !

K3c

j'ai regardé ton lien il s'agit de logiciels windows: url snopper,...

j'ai essayer de voir si il y avais des logiciels linux je n'en ai pas trouvé

Hors ligne

#2317 Le 31/10/2012, à 06:48

k3c

Re : TVDownloader: télécharger les médias du net !

@ duocore

si, il y a du Linux
flasm
openssl

tout part du player, qui est spécifique à chaque site.


Archlinux sur Xiaomi Air 13

Hors ligne

#2318 Le 31/10/2012, à 08:36

duocore

Re : TVDownloader: télécharger les médias du net !

j'ai obtenu

HMAC-SHA256(loaderexport.swf)= b18528111bda4516700df254576cd4b46061eb92ef2663ebd07da2d6240102f7

j'ai utilisé cette commande

./rtmpdump --swfhash "b18528111bda4516700df254576cd4b46061eb92ef2663ebd07da2d6240102f7" --swfsize 1927

pour cette video: http://videos.nt1.tv/haven/saison-2-epi … 1-846.html

mais ne fonctionne pas.

ensuite j'ai trouvé pyurlsnooper pour linux

Hors ligne

#2319 Le 31/10/2012, à 19:02

chaoswizard

Re : TVDownloader: télécharger les médias du net !

duocore a écrit :

j'ai obtenu

HMAC-SHA256(loaderexport.swf)= b18528111bda4516700df254576cd4b46061eb92ef2663ebd07da2d6240102f7

Eu,h, j'ai pas tout suivi mais il y a une méthode pour récupérer les clefs HMAC enfouies au fond des lecteurs flash ?!
Je veux !!! yikes


Ubuntu ==> Debian ==> Archlinux

Hors ligne

#2320 Le 31/10/2012, à 23:06

bibichouchou

Re : TVDownloader: télécharger les médias du net !

salut,

à chaoswizard : Félicitations pour la nouvelle mouture de pluzzdl (intégration des sous-titres). Ça fonctionne très bien.
à k3c, 11gjm : Merci pour le code. Pour tmc ou tf1, je dois veillir le jeton d'autentification pour que cela fonctionne : j'ai remplacé

ts = base36encode(int(time.time()))

par

ts = base36encode(int(time.time() + 60))

NB 1 : je ne peux pas faire marcher votre code tel quel mais comme ma distrib + ses paquets sont bloqués à l'époque 10.10, je pense que cela vient de moi.

NB 2 : votre code devrait marcher pour nt1 (modulo 1 modif ou 2) qui met ses vidéos chez wat.

à duocore : voilà une ligne de commande pour la viédo que tu mentionnes. Fontctionne chez moi avec rtmpdump v2.4. A utiliser rapidement. Pour la génération d'une telle ligne, voir le code de k3c/11gjm pour tf1/tmc.

rtmpdump -e -r 'rtmpte://wske.wat.tv/ondemand/mp4:vod/H264-384x288/11/23/8921123.h264?bu=&login=Haven-nt1&u=68a27801372a38cb7ddb916301c61d63&sum=1398f2768bbce391058a8db6dfabaaa8' -o Saison_2_-_Episode_2_A_chacun_sa_peur.mp4

Amicalement

Dernière modification par bibichouchou (Le 31/10/2012, à 23:57)

Hors ligne

#2321 Le 01/11/2012, à 11:09

k3c

Re : TVDownloader: télécharger les médias du net !

@ bibichouchou

Merci pour tes précisions, voici un script qui télécharge sur NT1 les deux premiers épisodes de Haven, mais pas
http://www.nt1.tv/the-walking-dead/epis … 3-846.html
faudra que je regarde pourquoi
Edit : boulet inside, ce n'est pas une video...
Ca marche pour
http://videos.nt1.tv/enquetes-impossibl … 7-846.html

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# NT1 version 0.1 par k3c, correction de bibichouchou
import subprocess, optparse, re, sys, os, shlex
import socket
from urllib2 import Request, urlopen, URLError, HTTPError
from urllib2 import ProxyHandler, Request, urlopen, URLError, HTTPError
import time,md5,random,urllib2
import bs4 as BeautifulSoup
timeout = 90
listeUserAgents = [ 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_5; fr-fr) AppleWebKit/525.18 (KHTML, like Gecko) Version/3.1.2 Safari/525.20.1',
                                                'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.186 Safari/535.1',
                                                '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/5.0 (X11; U; Linux x86_64; en-us) AppleWebKit/528.5+ (KHTML, like Gecko, Safari/528.5+) midori',
                                                'Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.107 Safari/535.1',
                                                'Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-us) AppleWebKit/312.1 (KHTML, like Gecko) Safari/312',
                                                'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.12 Safari/535.11',
                                                'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.8 (KHTML, like Gecko) Chrome/17.0.940.0 Safari/535.8' ]

def get_wat(id):
    ID_WAT = id
    def base36encode(number):
        if not isinstance(number, (int, long)):
            raise TypeError('number must be an integer')
        if number < 0:
            raise ValueError('number must be positive')
        alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
        base36 = ''
        while number:
            number, i = divmod(number, 36)
            base36 = alphabet[i] + base36
        return base36 or alphabet[0]
    ts = base36encode(int(time.time())+60)
    timesec = hex(int(ts, 36))[2:]
    while(len(timesec)<8):
        timesec="0"+timesec
    token = md5.new("9b673b13fa4682ed14c3cfa5af5310274b514c4133e9b3a81e6e3aba00912564/web/"+str(ID_WAT)+""+timesec).hexdigest()
    id_url1 = "http://www.wat.tv/get/web/"+str(ID_WAT)+"?token="+token+"/"+timesec+"&getURL=1&country=FR"
    return id_url1

def main():
    # timeout en secondes
    socket.setdefaulttimeout(timeout)
    usage   = "usage: python tmc_tf1.py     [options] <url de l'emission>"
    parser  = optparse.OptionParser( usage = usage )
    parser.add_option( "--nocolor",         action = 'store_true', default = False, help = 'desactive la couleur dans le terminal' )
    parser.add_option( "-v", "--verbose",   action = "store_true", default = False, help = 'affiche les informations de debugage' )
    ( options, args ) = parser.parse_args()
    if( len( args ) > 2 or args[ 0 ] == "" ):
        parser.print_help()
        parser.exit( 1 )
    the_url = sys.argv[1] 
    html = urlopen(sys.argv[1]).read()
    nom = sys.argv[1].split('/')[-1:][0]
    no = nom.split('.')[-2:][0]
    soup = BeautifulSoup.BeautifulSoup(html)
    debut_id = str(soup.find('section', attrs={'class' : 'player-unique' }))
    id = [x.strip() for x in re.findall("mediaId :([^,]*)",debut_id)][0]
    id_url1 = get_wat(id)
    opener = urllib2.build_opener()
    opener.addheaders = [('User-agent', random.choice(listeUserAgents))]
    data = opener.open(id_url1).read()
    opener.close()
    if data[0:4] == 'http':
        ua = random.choice(listeUserAgents)
        arguments = 'curl "%s" -L -g -A "%s" -o "%s.mp4"' % (data, ua, no)
        process = subprocess.Popen(arguments, stdout=subprocess.PIPE, shell=True).communicate()[0]
    if data[0:4] == 'rtmp':
	host = re.search('rtmpte://(.*)/ondemand',data).group(1)
        host = host.replace('rtmpte','rtmpe')
        player = "http://www.wat.tv/images/v40/PlayerWat.swf?revision=4.0.992"
        data0 = re.search('rtmpte://(.*)h264',data).group(0)
        data1 = re.search('&u=(.*)&sum',data).group(1)
        data2 = re.search('&sum=(.*)$',data).group(1)
        data3 = data1+data2
        app = re.search('wske.wat.tv/(.*)/mp4:vod',data).group(1)
        playpath = re.search('mp4:vod(.*).h264',data).group(0)
#        cmds = "rtmpdump"+" --host "+host+" -l 0 --app "+app+" --playpath "+playpath+" --swfVfy "+player+" --port 443 -e -k 1 --flv "+str(no)+".mp4"
        cmds = 'rtmpdump -r "%s" -c 1935 -m 10 -w 40ee2a765514facfc6b1eb2745d22cdbdfaaf7f1488b17600c1a22dd3074735d -x 339543 -o "%s.mp4" " --resume"' % (data0, str(no))
        arguments = shlex.split( cmds )
        print arguments
        process = subprocess.Popen( arguments, stdout = subprocess.PIPE).communicate()[0]
if __name__ == "__main__":
    main()

Dernière modification par k3c (Le 01/11/2012, à 11:16)


Archlinux sur Xiaomi Air 13

Hors ligne

#2322 Le 01/11/2012, à 13:42

k3c

Re : TVDownloader: télécharger les médias du net !

Ah au fait pour le script pour télécharger sur http://tou.tv, une personne sur neo-net a fait une remarque pertinente, que le format téléchargé était du flv et pas du mp4.

Mediainfo le confirme.

Il faut donc remplacer .mp4 par .flv dans le script, quand on crée la commande.


Archlinux sur Xiaomi Air 13

Hors ligne

#2323 Le 01/11/2012, à 21:30

11gjm

Re : TVDownloader: télécharger les médias du net !

Bonjour à tous ,

@k3c :

=====
http://www.nt1.tv/the-walking-dead/epis … 3-846.html
----
C'est normal , la diffusion n'est prévue que pour le 2 Nov.  .
=====

=====
http://videos.nt1.tv/enquetes-impossibl … 7-846.html
---
ok , aussi pour captvty
---
Ne fonctionne pas avec RTMPExploreX .
J'ai pu récupérer les commandes :

rtmpdump -e -r "rtmpe://wske.wat.tv:1935/ondemand" -a "ondemand" -f "WIN 11,4,402,265" -W "http://www.wat.tv/images/v40/PlayerWat.swf?revision=4.1.81" -p "http://videos.nt1.tv/enquetes-impossibles/emission-du-31-octobre-rediffusion-7613577-846.html" -y "mp4:vod/H264-384x288/63/11/8936311.h264?bu=nt1.tv&login=nt1-enquetes-impossibles&i=90.28.251.160&u=4e847b52ed42048286d2adcfbb2aa526&sum=b17cded51c339f983c9a4b80eb4ce4b4" -o 8936311.mp4

Les modifs effectuées dans le batch :
_ ajouté "-e"
_ ajouté "?revision=4.1.81" pour le player
_ modifié le fichier final "8936311.mp4" au lieu de "8936311.h264.flv"
=====

Je reviendrai pour expliquer mes PB , avec les fichiers tf1_03.py et nt1_01.py ,
qui ne fonctionnent plus ( pb de librairies ) .

A+ .

Hors ligne

#2324 Le 01/11/2012, à 22:45

11gjm

Re : TVDownloader: télécharger les médias du net !

Bonjour ,

1er essai avec tf1_02x.py (fonction replace existante)
et player "?revision=4.0.992"
======
Ligne 59
id = [x.strip() for x in re.findall("mediaId sad[^,]*)",debut_id)][0]

IndexError : list index out of range
======
======
Ligne 84
in module <main> , main()
======


2ième essai avec tf1_03.py (fonction replace supprimée)
et player "?revision=4.0.992"
======
Même constat
======


3ième essai avec tf1_03_Pl.py (fonction replace supprimée)
et player "?revision=4.1.181"
======
Même constat
======

A+ .

Hors ligne

#2325 Le 02/11/2012, à 10:24

k3c

Re : TVDownloader: télécharger les médias du net !

@11gjm

Bizarre, à ce niveau-là, on fait juste du bête parsing HTML

Peux-tu faire
python
>>> from urllib2 import urlopen
>>> import bs4 as BeautifulSoup
>>> a = urlopen('http://videos.nt1.tv/haven/saison-2-episode-2-a-chacun-sa-peur-7598701-846.html').read()
>>> soup = BeautifulSoup.BeautifulSoup(a)
>>> ! la ligne suivante est valable uniquement pour NT1
>>> soup.find('section', attrs={'class' : 'player-unique' })
<section class="player-unique"><article> <meta content="Flash" itemprop="playerType"/> <meta content="PT2413S" itemprop="duration"/><meta content="2012-10-22T19:18:00+0200" itemprop="uploadDate"/><meta content="2012-11-02T22:15:00+0100" itemprop="expires"/><link content="/haven/saison-2-episode-2-a-chacun-sa-peur-7598701-846.html" itemprop="url"/><link content="/mmdia/i/56/2/les-mysteres-de-haven-saison-2-les-photos-de-l-episode-2-10794562sryxr.jpg?v=2" itemprop="thumbnailUrl"/> <meta content="628" itemprop="width"/><meta content="353" itemprop="height"/> <div id="FlashPlayer" style="background:#FFF; width:100%; height:353px"><div id="FlashPlayer2"></div></div><script charset="utf-8" src="http://s.wat.fr/js/v2.5/swfobject.js" type="text/javascript"></script><script charset="utf-8" src="http://s.wat.fr/js/v2.5/WATPlayer.js" type="text/javascript"></script><script type="text/javascript">if (!typeof(PWpreroll)) {var PWpreroll = '';}if ( typeof( sitepage ) != "undefined" ) {WATPlayer.showSyndicated({previewMedia : "http://s.nt1.tv/mmdia/i/48/0/10791480uosbb.jpg",mediaId : 8921123,isStartAd : true,ad20 : 1,modeWatMedia : true,autoStart : 1,recoTf1 : "http://www.nt1.tv/js/video/poursuite/0, … 1351242045",unvId : "846",conId : "4471687",chaId : "3427061",setVolume : "10",playlistIdCustom : "8806145",baseURL : "http://www.wat.tv",url : "http://www.wat.tv/swfnt1/239910nIc0K118921123",width : "100%",height : "100%",container : "FlashPlayer2", oasTag : sitepage, PWpreroll : PWpreroll});}else{WATPlayer.showSyndicated({previewMedia : "http://s.nt1.tv/mmdia/i/48/0/10791480uosbb.jpg",mediaId : 8921123,isStartAd : true,ad20 : 1,modeWatMedia : true,autoStart : 1,recoTf1 : "http://www.nt1.tv/js/video/poursuite/0, … 1351242045",unvId : "846",conId : "4471687",chaId : "3427061",setVolume : "10",playlistIdCustom : "8806145",baseURL : "http://www.wat.tv",url : "http://www.wat.tv/swfnt1/239910nIc0K118921123",width : "100%",height : "100%",container : "FlashPlayer2", PWpreroll : PWpreroll});}</script><script type="text/javascript">var permalinkWat = document.location.href;WATPlayer.setPermalink(permalinkWat);</script> </article></section>
>>> 'mediaId' in str(soup.find('section', attrs={'class' : 'player-unique' }))
True

>>> ! avec tmc
>>> a = urlopen('http://videos.tmc.tv/las-vegas/las-vegas-episode-6-saison-1-devoirs-de-vacances-7613614-848.html').read()
>>> soup = BeautifulSoup.BeautifulSoup(a)
>>> soup.find('div', attrs={'class' : 'unique'})
<div class="unique"> <meta content="Flash" itemprop="playerType"/><meta content="640" itemprop="width"/><meta content="360" itemprop="height"/> <div id="FlashPlayer" style="background:#FFF; width:100%; height:360px"><div id="FlashPlayer2"></div></div><script charset="utf-8" src="http://s.wat.fr/js/v2.5/swfobject.js" type="text/javascript"></script><script charset="utf-8" src="http://s.wat.fr/js/v2.5/WATPlayer.js" type="text/javascript"></script><script type="text/javascript">if (!typeof(PWpreroll)) {var PWpreroll = '';}if ( typeof( sitepage ) != "undefined" ) {WATPlayer.showSyndicated({previewMedia : "http://s.tmc.tv/mmdia/i/77/4/10794774emmvg.jpg",mediaId : 8936403,isStartAd : true,ad20 : 1,modeWatMedia : true,autoStart : 1,recoTf1 : "http://www.tmc.tv/js/video/poursuite/0, … 1351512528",unvId : "848",conId : "4481392",chaId : "3465098",setVolume : "10",playlistIdCustom : "5473071",baseURL : "http://www.wat.tv",url : "http://www.wat.tv/swftmc/243996nIc0K118936403",width : "100%",height : "100%",container : "FlashPlayer2", oasTag : sitepage, PWpreroll : PWpreroll});}else{WATPlayer.showSyndicated({previewMedia : "http://s.tmc.tv/mmdia/i/77/4/10794774emmvg.jpg",mediaId : 8936403,isStartAd : true,ad20 : 1,modeWatMedia : true,autoStart : 1,recoTf1 : "http://www.tmc.tv/js/video/poursuite/0, … 1351512528",unvId : "848",conId : "4481392",chaId : "3465098",setVolume : "10",playlistIdCustom : "5473071",baseURL : "http://www.wat.tv",url : "http://www.wat.tv/swftmc/243996nIc0K118936403",width : "100%",height : "100%",container : "FlashPlayer2", PWpreroll : PWpreroll});}</script><script type="text/javascript">var permalinkWat = document.location.href;WATPlayer.setPermalink(permalinkWat);</script> </div>
>>> 'mediaId' in str(soup.find('div', attrs={'class' : 'unique'}))
True

Dernière modification par k3c (Le 02/11/2012, à 10:29)


Archlinux sur Xiaomi Air 13

Hors ligne