un logiciel qui permet de télécharger des video sur youtube Le principe de l'écriture du fichier binaire a été récupéré sur une source de ce site.
Source / Exemple :
#coding:utf-8
# Téléchargeur de video sur youtube qui permet de télécharger une video qui provient de youtbe.
# Il utilise un Thread pour le téléchargement se qui fait que l'on peut visionner la video
# pendant les téléchargement
# C'est le principe du streaming
from Tkinter import *
from threading import Thread
import urllib2
import sys
import re
class Interface_App(Frame):
def __init__(self):
global entree1, entree2, entree3
Frame.__init__(self)
self.master.title("TY")
self.master.geometry("390x80")
self.label1=Label(self,text="URL")
self.label2=Label(self,text="Nom")
self.label00=Label(self,text="")
self.entree1=Entry(self,width=50)
self.entree2=Entry(self,width=50)
self.entree3=Entry(self, width=70)
self.boutton1=Button(self,text="Télécharger",command=self.Telechar)
self.boutton2=Button(self,text="Quitter",command=self.master.destroy)
self.label1.grid(row=0,column=0)
self.label2.grid(row=1,column=0)
self.label00.grid(row=3,column=0)
self.entree1.grid(row=0,column=1)
self.entree2.grid(row=1,column=1)
self.entree3.place(x=0,y=60)
self.boutton1.grid(row=2,column=0)
self.boutton2.grid(row=2,column=1)
self.grid()
def Telechar(self):
global url, titre, Erreur
url=self.entree1.get()
titre=self.entree2.get()
Erreur="Erreur de téléchargement."
t1=Thread_telecharge()
try:
t1.start()
self.entree3.insert(END,"Début du téléchargement...")
except:
self.entree3.insert(END,"Erreur de téléchargement.")
class Thread_telecharge(Thread):
def __init__(self):
Thread.__init__(self)
def run(self):
print "Début du téléchargement"
# Fonction qui va permettre de lire la source de la page
Source=urllib2.urlopen(url, None).read()
# Video_ID
# on cherche dans la source 'video_id' pour avoir l'id de la video
DV=Source.index('video_id=') # Debut de l'id
FV=Source.index('&',DV) # fin de l'id
# On découpe l'id de la video qui se situe entre DV et FV
VideoID=Source[DV:FV]
#on affiche l'id de la video
# t=
#On cherche qqch que j'ai nommer indice temps
# même proceder qu'avec l'idée de la video
indicetemp=Source.index('t=')
indicetemp2=Source.index("&",indicetemp)
Temps=Source[indicetemp:indicetemp2]
print "URL de la video\n"
# Nouvelle url avec la video incorporé dedans
# écrite grace a l'id, l'indecetemps et une injection javascript dans l'url
# injection javascript : "get_video"
URL_video="http://www.youtube.com/get_video?"+VideoID+"&"+Temps
print URL_video
try:
#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(URL_video, None, headers)
vid = urllib2.urlopen(req)
#on cree le file fichier en mode ajout et pour des donnees de type binaire
file = open("C:/Users/valerie/Desktop/"+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 soit 4 Ko
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()
print "le fichier a bien été télécharger."
print "La video ce trouve, C:/Users/valerie/Desktop/",titre
except:
print "Erreur de téléchargement."
if __name__=='__main__':
App=Interface_App()
App.mainloop()
Conclusion :
merci deja d'avoir lu ma source
si vous aver quoi que ce quoit a me dire ou des conseil faite le !
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.