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.
Version imprimable
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.
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:
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"
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).