IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau/Web Python Discussion :

Récupérer fichiers flv sur le web


Sujet :

Réseau/Web Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 40
    Par défaut Récupérer fichiers flv sur le web
    Bonjour à tous,
    J'aimerais savoir s'il existe un moyen en python (ou éventuellement dans un autre langage) de récupérer les fichiers flv comme sur YouTube ou DailyMotion.

  2. #2
    Membre éprouvé
    Inscrit en
    Novembre 2007
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 129
    Par défaut
    voici un script qui permet de recupérer une video sur youtube

    je l'avait recupéré et testé à la rentrée, je ne sais pas si il marche encore ... mais bon c'est un exemple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
     
    import sys
    import urllib2
    import re
     
    # fonction permettant de recuperer le contenu de la page
    def getSrcPage(url):
    	#la sourc html a une portee globale
    	global src 
    	#on y met le contenu de la page
    	src = urllib2.urlopen(url, None).read()
    #methode pour recuperer le titre de la video
    def getTitle():
        #on met le titre en global
        global titre
        #on cherche la balise <title> de l'html pour recuperer le titre
        titre = re.findall('<title>+[^\"]+</title>', src, re.IGNORECASE)
        #il n'y en a qu'un normalement donc indice 0
        titre = (titre[0])
        #on nettois les balise <title> et </title>
        titre = titre[7:len(titre)-8]
        print "telechargement de : %s" % titre
     
    #on recupere ce qui est necessaire a la recuperation de la video
    def getVariable():
        #futur adresse de la video
        global urlvideo
        #on cherche dans le code ou sont les vatiable
        vs = src.find('var fo = ')
        ve = src.find('"', vs + 30)
        #on garde que la ligne interressante
        var = src[vs:ve]
        #on r'ecupere l'id de la video
        indsvid = var.index("video_id=");
        indevid = var.index("&", indsvid);
        #on decoupe
        videoid = var[indsvid:indevid]
        #la variable t
        indst = var.index("t=");
        indet = var.index("&", indst);
        #on decoupe
        t = var[indst:indet]
        #url de telechargement
        urlvideo = "http://youtube.com/get_video?" +videoid +"&"+t
        print urlvideo
     
    #methode pour telecharger le fichier
    def getFile():
        #header pour nous faire passer comme un navigateur normal (inutile mais sait on jamaisà)
        user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
        headers = { 'User-Agent' : user_agent }
        req = urllib2.Request(urlvideo, None, headers)
        vid = urllib2.urlopen(req)
        #on cree le fichier en mode ajout et ppour des donnees de type binaire
        file = open(titre +".flv" , "a+b")
        #on recupere la taille du fichier
        lg = vid.headers.get('content-length')
        # on la converti en entier
        lg = int(lg)
        # "buffer"
        data = ''
        #tant que ...
        while True :
            #lire les 4096 octet suivant
            data = vid.read(4096)
            #... le buffer n'est pas null apres une lecture
            if not data: break
            #on ecris les donnees dans le ffichier
            file.write(data)
            #on vide le buffer
            data = None
        #histoire de finalise l'ecriture
        file.flush()
        #on ferme le fichier
        file.close()
     
    if len(sys.argv) > 1:
        print "telechargement de la video a l'adresse : %s" % sys.argv[1]
        getSrcPage(sys.argv[1])
        getTitle()
        getVariable()
        getFile()
    else:
        print "usage:\n\t\tpython Main.py url\n\n\turl : l'adresse de la video"

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 40
    Par défaut
    Merci beaucoup, mais je voyais plutôt comme un système qui permettrai de récupérer ce que le navigateur mettrait en cache s'il ouvrait cette page (mais je ne suis pas sûr que ce soit possible).

Discussions similaires

  1. Par Macro, récupérer le source d'un fichier HTM sur le WEB
    Par malabarbe dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/06/2009, 13h52
  2. Réponses: 1
    Dernier message: 10/03/2007, 15h10
  3. Récupération d'un fichier XML sur le web
    Par ZeVlad dans le forum Bibliothèques
    Réponses: 1
    Dernier message: 30/01/2007, 02h50
  4. Récupérer des infos sur le web
    Par janego dans le forum C++Builder
    Réponses: 1
    Dernier message: 21/11/2006, 22h20
  5. Fichiers .nsf sur site web, c'est quoi ?
    Par vanmouniren dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 16/10/2005, 10h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo