ToutvDL 0.6 : Télécharger les vidéos de tou.tv

Logiciels (gratuits) liés au Replay, au multimédia, ...
lagomix
Messages : 23
Inscription : sam. 2 juil. 2011 14:54

Re: ToutvDL 0.5 : Télécharger les vidéos de tou.tv

Message par lagomix »

Merci aazerty pour le retour. Impossible d'ouvrir avec le bloc-note, mais pas de problème avec Notepad...nickel !!
Cependant, malgré de nombreux changement, aucun proxy ne fonctionne. Désolé.
Merci encore.
k3c
Messages : 448
Inscription : jeu. 18 août 2011 18:31

Re: ToutvDL 0.5 : Télécharger les vidéos de tou.tv

Message par k3c »

Pour éviter de triturer constamment le .py, voici une nouvelle version du script
Modifs
on peut passer en deuxième paramètre un proxy, sous la forme 1.2.3.4:80 (de plus en plus de proxys sont HS)
l'extension du fichier devient .flv, comme une personne l'avait indiqué de manière pertinente sur neo-net

Code : Tout sélectionner

# -*- coding:utf-8 -*-
# TOU.TV version 0.6 par k3c
# passage de proxy en 2 ème parametre
import subprocess, optparse, re, sys, os, shlex
import socket, random
from urllib2 import ProxyHandler, Request, urlopen, URLError, HTTPError
import bs4 as BeautifulSoup
from lxml import objectify
from lxml import etree
import urllib2
timeout = 900
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_proxy():
    opener = urllib2.build_opener()
    opener.addheaders = [('User-agent', random.choice(listeUserAgents))]
    data = opener.open('http://www.xroxy.com/proxy-country-CA.htm').read()
    opener.close()
    s = BeautifulSoup.BeautifulSoup(data)
    hrefs = s.find_all(attrs={'href' : re.compile("host=\d")})
    href = random.choice(hrefs)
    mastr =  href.attrs['href']
    m = re.search('host=(([0-9\.])+)?.*port=(([0-9\.])+)?',str(mastr))
    port = m.group(3)
    host = m.group(1)
    return host, port

def main():
    # timeout en secondes
    socket.setdefaulttimeout(timeout)
    usage   = "usage: python toutv   [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 ) == 0 or args[ 0 ] == "" ):
        parser.print_help()
        parser.exit( 1 )
    the_url = sys.argv[1] 
    html = urlopen(sys.argv[1]).read()
    nom = sys.argv[1][18:].replace('/', '_')
    soup = BeautifulSoup.BeautifulSoup(html)
    elems = [elem for elem in soup.find('div',{'class':'emissionEpisode_containerPlayer'})]
    mastr = elems[1].attrs['src']
    m = re.search('"idMedia":"([A-Za-z0-9_]*)',mastr)
    if m:
       id = m.group(1)
    head = random.choice( listeUserAgents )
    platform = 'http://release.theplatform.com/content.select?pid='
    response = urllib2.urlopen(urllib2.Request(platform+id))
    newfile = response.read()
    if len(sys.argv) > 2:
	host, port = sys.argv[2].split(":")[0], sys.argv[2].split(":")[1]
    else:
	host, port = "69.46.99.186", "80"
    if "You are not in a geographic region that has access to this content." in newfile:
        while (True):
            try:
                print 'proxy utilisé %s:%s' % (host, port)
                proxy_support = urllib2.ProxyHandler({'http': 'http://%s:%s/' % (host, port)})
                opener = urllib2.build_opener(proxy_support)
                urllib2.install_opener(opener)
                response = urllib2.urlopen(urllib2.Request(platform+id))
                newfile = response.read()
                response.close()
                break
            except KeyboardInterrupt:
                sys.exit()
            except:
                host, port = get_proxy()
    root = objectify.fromstring(newfile)
    rtmp = None
    for x in root.findall('choice'):
        if x.url.text.startswith('rtmp'):
            rtmp = x.url.text
            break
    if rtmp is None:
        print "aucun proxy valide"
        sys.exit(1)
    info_video = rtmp
    host = info_video.split('rtmp://')[1].split('/')[0]
    start = rtmp.index('ondemand')
    end = rtmp.index('<break>')
    app = rtmp[start:end]
    st = rtmp.index('<break>')+len('<break>')
    en = len(rtmp)
    playpath = rtmp[st:en]
    cmds = "rtmpdump"+" --host "+host+" --app \""+app+"\" --playpath \""+playpath+"\" -e -k 1 --flv "+str(nom)+".flv"
    arguments = shlex.split( cmds )
    process = subprocess.Popen( arguments, stdout = subprocess.PIPE).communicate()[0]
if __name__ == "__main__":
    main()
Avatar de l’utilisateur
aazerty
Messages : 2086
Inscription : sam. 10 déc. 2011 14:41

Re: ToutvDL 0.5 : Télécharger les vidéos de tou.tv

Message par aazerty »

Bonjour ,

@k3c : Merci pour cette nouvelle mouture , qui résoudra certains pb de connexions .

Cordialement .
!!! DUBITATIF !!!
lagomix
Messages : 23
Inscription : sam. 2 juil. 2011 14:54

Re: ToutvDL 0.5 : Télécharger les vidéos de tou.tv

Message par lagomix »

J'ai remplacé le proxy toutv.py 69.46.99.186:80 par 209.97.203.64:3128 et tout remarche.
Cordialement à tous et particulièrement à @k3c & aazerty
czmaster
Administrateur du site
Messages : 1438
Inscription : sam. 2 juil. 2011 10:41
Localisation : France

Re: ToutvDL 0.6 : Télécharger les vidéos de tou.tv

Message par czmaster »

Pour info j'ai mis à jour l'interface Windows pour utiliser le nouveau script de K3C : ToutvDL 0.6
Maintenant vous pourrez indiquer le proxy à utiliser (et d'autres petites modifs).

Télécharger

Image

A+
Administrateur du forum
lagomix
Messages : 23
Inscription : sam. 2 juil. 2011 14:54

Re: ToutvDL 0.6 : Télécharger les vidéos de tou.tv

Message par lagomix »

de mieux en mieux ce tou.tv
Merci czmaster
coolboygf
Messages : 1
Inscription : dim. 9 déc. 2012 07:28

Re: ToutvDL 0.6 : Télécharger les vidéos de tou.tv

Message par coolboygf »

Bonjour,
j'ai télécharger le programme il y a deux jours, tout fonctionnait bien,
mais aujourd'hui plus rien !!
J'ai un message d'erreur: ''You have'nt specified a Protocol ......stream
does not start with requested frame, ignoring data
Avant de recevoir ce message l'émission s'était téléchargée à 32% et le
message était si je me souviens bien ''skip 2''
J'ai tenté de désinstaller et de réinstaller, mais je n'ai jamais trouvé
comment le faire.
Je dois être trop nulle :)

Merci de me répondre.
(Je suis sur win 8)
Dernière modification par czmaster le dim. 9 déc. 2012 10:32, modifié 1 fois.
Raison : Message reçu par mail
czmaster
Administrateur du site
Messages : 1438
Inscription : sam. 2 juil. 2011 10:41
Localisation : France

Re: ToutvDL 0.6 : Télécharger les vidéos de tou.tv

Message par czmaster »

Salut,

Il se peut que le problème dont tu parles ne soit que temporaire et soit simplement dû au serveur tou.tv qui est un peu surchargé.
Je viens de lancer un téléchargement d'une émission au hasard et ça semble marcher ...
coolboygf a écrit :J'ai tenté de désinstaller et de réinstaller, mais je n'ai jamais trouvé
comment le faire.
Je dois être trop nulle :)
En fait il n'y a rien à installer ou à désinstaller c'est une application portable. Pour l'installer il faut copier les fichiers et pour la désinstaller supprimer ces mêmes fichiers (mais ça ne changera rien au problème ;) )

Pour l'instant je te conseil de retenter ta chance
Si ça continue tient nous au courant

A+
Administrateur du forum
k3c
Messages : 448
Inscription : jeu. 18 août 2011 18:31

Re: ToutvDL 0.6 : Télécharger les vidéos de tou.tv

Message par k3c »

Il y a un problème sur certaines vidéos, comme

le rôle de sa vie

ou celui cité plus haut

Quand je récupère les infos commençant par
rtmp://
il y a plein de manières de découper cela pour construire la commande rtmpdump qui va bien.
Ma méthode ne fonctionne pas dans tous les cas.
k3c
Messages : 448
Inscription : jeu. 18 août 2011 18:31

Re: ToutvDL 0.6 : Télécharger les vidéos de tou.tv

Message par k3c »

Je devrais sortir une version corrigée demain soir au plus tard.
Répondre