[Ex] Youtube downloader

Partagez vos scripts, et vos applications AutoIt.
Règles du forum
.
Répondre
coolraiman
Niveau 1
Niveau 1
Messages : 4
Enregistré le : jeu. 12 déc. 2013 04:00
Status : Hors ligne

[Ex] Youtube downloader

#1

Message par coolraiman »

alors voila j'ai decouvert autoIt aujourdhui et j'ai decider d'automatiser ma technique pour telecharger des video youtube sans avoir a utiliser ces site ou logiciel qui vous bombarde de spyware et malware.

cela peut sembler débutant mais ces ma premiere expérience avec ce genre de language. (je suis dévelopeur unity en c#)
l'important est que sa fonctionne. j'ai été a cours de temps mais demain je vais l'améliorer et y ajouter des options.
cette version fonctionne avec windows en anglais. pour en francais il suffit de changer les 2 ligne avec
WinWaitActive("VLC media player")
WinActive("VLC media player")

par
WinWaitActive("Lecteur multimédia VLC")
WinActive("Lecteur multimédia VLC")

je suis loin d'avoir lue toute la documentation mais si quelqun connai la commande pour acceder au language du system ce serais sympas.
aussi pour que le script fonctionne il vous faut vlc et firefox

Code : Tout sélectionner


#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <StaticConstants.au3>
#include < Misc.au3 >

Global $youtubeURL
Global $cacheURL
Global $browser

CreateGui()

Func CreateGui()
   Local $msg, $ButtonGo
   Local $youtubeURLButton
   Local $chrome , $firefox
   GUICreate("enter url",200,200)

   $youtubeURLButton = GUICtrlCreateEdit("",10,100,200,20)
   $ButtonGo = GUICtrlCreateButton("download",10,10,70,50)
   GUISetState(@SW_SHOW)
   Send("{END}")

   GUICtrlSetData($youtubeURLButton,"",1)

   While 1
      $msg = GUIGetMsg()
      Switch $msg
         Case $GUI_EVENT_CLOSE
            ExitLoop
         Case $ButtonGo
            $youtubeURL = GUICtrlRead($youtubeURLButton)
            Download()
      EndSwitch
   WEND
   GUIDelete()

EndFunc

Func Download()
   Run("C:\Program Files (x86)\VideoLAN\VLC\vlc.exe")
   WinWaitActive("VLC media player")
   WinActive("VLC media player")
   Send("{CTRLDOWN}")
   Send("n")
   Sleep(100)
   Send("{CTRLUP}")
   Send($youtubeURL)
   Send("{ENTER}")
   Send("{ENTER}")
   Send("{CTRLDOWN}")
   Send("j")
   Sleep(5000)
   Send("{CTRLUP}")
   Send("{TAB}")
   Send("{TAB}")
   Send("{CTRLDOWN}")
   Send("c")
   Send("{CTRLUP}")

   Run("C:\Program Files (x86)\Mozilla Firefox\firefox.exe")
   Sleep(2000)
   Send("{F6}")
   Send("{CTRLDOWN}")
   Send("v")
   Send("{CTRLUP}")
   Send("{ENTER}")
EndFunc
 
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [Ex] Youtube downloader

#2

Message par Tlem »

Bonjour coolraiman.
Pour rajouter plus de compatibilité entre version d'OS et architecture, je vous suggère d'apporter quelques modifications.

Concernant le chemin vers les Exe's, il serait plus judicieux d'aller voir dans la base de registre si les programmes sont installés ou non :

Code : Tout sélectionner

Global $VLC_EXE = RegRead("HKLM\SOFTWARE\VideoLAN\VLC", "")
Global $FF_Ver = RegRead("HKLM\SOFTWARE\Mozilla\Mozilla Firefox", "CurrentVersion")
Global $FF_EXE = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox\" & $FF_Ver & "\Main", "PathToExe")

If $VLC_EXE = "" Or $FF_EXE = "" Then
    MsgBox(16, "Erreur", "Erreur : VLC et/ou FireFox n'est pas installé sur votre système.")
    Exit
EndIf
Ensuite, concernant l'attente de l'affichage de VLC, au lieu de gérer la langue, utilisez une partie du nom de la fenêtre (VLC :roll: ) et la Class de celle-ci :

Code : Tout sélectionner

Opt("WinTitleMatchMode", 2) ;1=start, 2=subStr, 3=exact, 4=advanced, -1 to -4=Nocase

WinWaitActive("[TITLE:VLC; CLASS:QWidget]", "")
Ces modifications devraient permettre une meilleure compatibilité de votre application sur différents ordinateurs.

Ceci-dit, je reste persuadé que vous pouvez scripter VLC afin d'éviter de passer par son interface et donc afin d'éviter "les risques potentiels de problèmes". ^^
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
coolraiman
Niveau 1
Niveau 1
Messages : 4
Enregistré le : jeu. 12 déc. 2013 04:00
Status : Hors ligne

Re: [Ex] Youtube downloader

#3

Message par coolraiman »

merci beaucoup pour les conseil. comme j'ai di je commence et le langage semble etre vaste et ce nest vraiment pas le type de language que je suis habituer.

si je peut me permetre quel type de fonction permet dutiliser une application sans avoir a naviguer dans son interface?

il me faudrait juste un exemple et je pourrai apprendre par moi-meme.
je ne doit pas etre le premier a faire ce genre de youtube downloader mais jaime faire les chose par moi-meme
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [Ex] Youtube downloader

#4

Message par Tlem »

coolraiman a écrit :quel type de fonction permet dutiliser une application sans avoir a naviguer dans son interface?
VLC est totalement "scriptable", c'est à dire que vous pouvez le lancer avec des paramètres afin d'éviter à cliquer sur des tas de boutons. Vous trouverez des tas d'informations sur ce lien : https://wiki.videolan.org/Documentation:Command_line/
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre