TELECHARGEUR DE VIDEO (YOUTUBE)

econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 - 14 mai 2007 à 15:44
Saros Messages postés 921 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 23 septembre 2010 - 11 août 2008 à 01:31
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/42685-telechargeur-de-video-youtube

Saros Messages postés 921 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 23 septembre 2010
11 août 2008 à 01:31
VLC lit très bien les flv, pas besoin de changer d'extension.

Et je confirme pour la ligne 28, on peut récupérer les infos via le lien fullscreen
ehadrien Messages postés 1 Date d'inscription mercredi 1 novembre 2000 Statut Membre Dernière intervention 10 mars 2008
10 mars 2008 à 12:04
Bonjour,

Tout d'abord, un petit pb de forme. Python n'aime pas le "à" ligne 48
Ligne 28, il faut remplacer 'var fo ' par "var fullscreenUrl "

Enfin, pour les utilisateurs de Linux, pour lequel il n'y a pas, à ma connaissance, de lecteur fvl, on peut remplacer fvl ligne 54 par swf, et utiliser vlc pour lire le fichier

Et j'apprécie beaucoup ce script, très utile. Merci.
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
10 févr. 2008 à 21:48
oui je n'ai pas encore eut le courage de faire la maj
ca marchais sur youtube
dailymotion je n'ai jamais fais la portabilite
skone007 Messages postés 166 Date d'inscription mercredi 24 avril 2002 Statut Membre Dernière intervention 23 juin 2009
10 févr. 2008 à 21:10
Il y a eu une MAJ sur DailyMotion et ca ne marche plus :(
V4mp Messages postés 21 Date d'inscription samedi 22 septembre 2007 Statut Membre Dernière intervention 30 septembre 2007
26 sept. 2007 à 11:39
ok ok j'attend avec impatience mais ton code est bien et l'utilisté aussi !

je noterais aprés :)!
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
26 sept. 2007 à 10:43
avec le nouvelle version de youtube mon programme ne marche pas
j'ai pas encore eut le temps de le mettre a jour

je pense que d'ici dimanche ca sera fait
V4mp Messages postés 21 Date d'inscription samedi 22 septembre 2007 Statut Membre Dernière intervention 30 septembre 2007
25 sept. 2007 à 21:36
Le programme bug chez moi... .
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
7 sept. 2007 à 01:15
sympa merci bcp je my penche des que je peux ^^
aera group Messages postés 382 Date d'inscription mercredi 23 août 2006 Statut Membre Dernière intervention 8 novembre 2010 18
5 sept. 2007 à 18:07
J'ai fait quelques recherche. J'ai déja trouvé deux modifications :

"indsvid = var.index("video_id=");" ==> indsvid = var.index("video_id:");
"indst = var.index("t=");" ==> indst = var.index("t:");

Dans les deux cas, la variable est suivi de deux points (":") et non un égale ("=")
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
5 sept. 2007 à 18:03
merci je m'en occupe des que j'ai le temps

je me doutais bien que ca arriverais lol
Zaltez Messages postés 48 Date d'inscription mardi 23 novembre 2004 Statut Membre Dernière intervention 20 décembre 2009 1
4 sept. 2007 à 17:19
Salut,
je pense que le code ne marche plus car la page html de youtube a été restructurée.
Et étant donné que le code parse du html sa ne marche plus.

A modifier juste la fonction def getVariable()
Début de modification a effectuer : a partir de la ligne 28
remplacer vs src.find('var fo ') par var vs = src.find('swfArgs = ')

Après il faut simplement récuperer la chaine en changeant les paramètres de découpe de la chaine.
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
2 sept. 2007 à 15:36
salut,

arf çà m'aurait bien intéressé çà....


j'ai également une erreur :(


ton code placé dans "C:\TEST\youtube.py"
le batch dans le même rep contenant :
C:\TEST\youtube.py http://www.youtube.com/watch?v=ms_9iuGxyQA
Pause


la connexion se fait bien mais hop =>


C:\TEST>C:\TEST\youtube.py http://www.youtube.com/watch?v=ms_9iuGxyQA
sys:1: DeprecationWarning: Non-ASCII character '\xe0' in file C:\TEST\youtube.py
on line 48, but no encoding declared; see http://www.python.org/peps/pep-0263.h
tml for details
telechargement de la video a l'adresse : http://www.youtube.com/watch?v=ms_9iuGx
yQA
telechargement de : YouTube - kung fu
Traceback (most recent call last):
File "C:\TEST\youtube.py", line 80, in ?
getVariable()
File "C:\TEST\youtube.py", line 33, in getVariable
indsvid = var.index("video_id=");
ValueError: substring not found

C:\TEST>Pause
Appuyez sur une touche pour continuer...



une idée sheorogath?
(ligne 48 et 80 ?)
++ ;)
aera group Messages postés 382 Date d'inscription mercredi 23 août 2006 Statut Membre Dernière intervention 8 novembre 2010 18
2 sept. 2007 à 12:22
J'ai oublier de te demander si tu utilisé Python 2.5 (moi je suis encore à Python 2.4).
Merci de tes réponses
aera group Messages postés 382 Date d'inscription mercredi 23 août 2006 Statut Membre Dernière intervention 8 novembre 2010 18
2 sept. 2007 à 12:21
Bonjour :

il y a un bug ; Qaund j'excécute ton script à l'aide d'un fichier bat contenant

**************************
"C:\Python24\Python.exe" "C:\Python24\main.py" "http://www.youtube.com/watch?v=ms_9iuGxyQA"
Pause
**************************

(Pause permet de garder la fenêtre DOS ouverte)
j'obtien cette erreur :

**************************
File "C:\Python24\main.py", line 33 in getVariable
indsvid = var.index("video_id=");
ValueError: substring not found
**************************

Il semblerait que "video_id=" ne soit pas la bonne variable. De plus, pourquoi à tu mis un point-virgule ";" à la fin de la ligne ?
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
15 août 2007 à 22:10
nan ^^
tu fais un bat avec ca dedans :

cmd

ensuite tu place le bat dans a cote de main.py

ensuite tu le demarre
dans la fenetre noire tu entre: python Main.py http://www.youtube.com/watch?v=ms_9iuGxyQA
lvga31 Messages postés 1 Date d'inscription vendredi 18 mars 2005 Statut Membre Dernière intervention 15 août 2007
15 août 2007 à 21:29
Help pour un néophyte qui découvre python.

bon j'ai python version 2.5 sous un pc sous xp et j'utilise IDLE(python GUI)

je charge le fichier Main.py , je lance le programme en cliquant sur "Run" puis "run module"

comment lancer la commande Main.py http:www.youtube.com/watch?v=ms_9iuGxyQA ?


j'ai pensé la taper après >>>

Après avoir lancer Main.py
voila ce que j'obtiens:
>>> RESTART
>>>
usage:
python Main.py url

url : l'adresse de la video
>>> Main.py http://www.youtube.com/watch?v=ms_9iuGxyQA (que je tape)

SyntaxError: invalid syntax (message que j'obtiens!!)
>>>



J'obtiens systematiquement le message "SyntaxError: invalid syntax"
Pouvez vous m'expliquer comment il faut s'y prendre pour lancer ce programme avec son argument
krusty24 Messages postés 19 Date d'inscription vendredi 15 septembre 2006 Statut Membre Dernière intervention 15 novembre 2011
12 juin 2007 à 21:01
je ne sais plus, mais j ai essayé avec d'autre video et sa a marché sans probleme. Tu as fait du bon boulot continue comme sa
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
12 juin 2007 à 18:48
krusty quel est l'url de la video que tu as essaye de telecharger ?
Zaltez Messages postés 48 Date d'inscription mardi 23 novembre 2004 Statut Membre Dernière intervention 20 décembre 2009 1
28 mai 2007 à 22:16
J'ai teste, le programme marche nikel sous windows le plus simple est de creer un fichier .bat et d'ecrire ceci : D:\Main.py http://www.youtube.com/watch?v=ms_9iuGxyQA
D:\Main.py (le chemin d'acces du fichier Main.py)
suivie de : http://www.youtube.com/watch?v=ms_9iuGxyQA (l'argument de la fonction ici l'url de la video)
krusty24 Messages postés 19 Date d'inscription vendredi 15 septembre 2006 Statut Membre Dernière intervention 15 novembre 2011
21 mai 2007 à 11:14
J'ai testé ton programme avec une video choisie au hasard sur youtube. Le résultat est que je me retrouve avec un fichier portant le nom de la video ayant une taille de 0KB. Est-ce nomal? Si oui, que dois-je faire avec se fichier?

Je suis desoler de t'embarraser avec mais question mais il c'est parce que ton programme me semble trés intéressant.
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
20 mai 2007 à 18:02
exmple avec la video a l'adresse : http://www.youtube.com/watch?v=ms_9iuGxyQA

dans un shell : python Main.py http://www.youtube.com/watch?v=ms_9iuGxyQA

tu remplace Main.py par le nom de fichier ou tu as mis mon script
aera group Messages postés 382 Date d'inscription mercredi 23 août 2006 Statut Membre Dernière intervention 8 novembre 2010 18
20 mai 2007 à 16:59
Peux tu mêtre un exemple d'utilisation, je n'ai pas très bien compris comment fonctionne le script
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
16 mai 2007 à 13:47
Ce que je voulais dire, c'est que si quelqu'un met 6 arguments dans la ligne de commande (va savoir pourquoi !), tu ne l'avertis pas de l'erreur de format puisque, de toutes façons, tu ne downloaderas que argv[1].

Avec
if len(sys.argv) == 1:

tu ne traiteras QUE les commandes bien formatées. Ceux qui mettront 6 arguments devront se résoudre à n'en passer qu'un seul.
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
15 mai 2007 à 20:37
merci pour ce commentaire

heu je comprend pas trop pour les arguments si je recupere le second agument sachant que sys.argv[0] represente le nom de fichier ... non ?

le header serviras a gerer l'avancement du telechargement

sinon encore merci pour ton commentaire !
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
14 mai 2007 à 15:44
Difficile d'être plus clair. Code et commentaires sont limpides.
Puisque tu récupéres le header 'content-length', pourquoi n'en ferais-tu pas quelque chose ? Un p'tit print ?

Sur cette ligne, j'aurai plutôt testé l'égalité avec 1
if len(sys.argv) > 1:

car celui qui rentrerait 2 arguments verrait le code s'exécuter avec comme source le 1er argument. Si cet argument est une URL YouTube => OK, sinon, il va avoir des soucis et ne comprendra pas ce qui se passe.
Rejoignez-nous