Code : Tout sélectionner
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.8.1
Author: blacksoul305
Script Function:
Permet d'avoir le titre d'une vidéo et le nom de l'utilisateur qui l'a posté sur Youtube, sans pour autant la regarder.
#ce ----------------------------------------------------------------------------
#include <IE.au3>
#include <Process.au3>
#include <Array.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
;~ Création de la GUI qui servira à analyser la vidéo. Elle est invisible
$Form = GUICreate("Youtube video finder",500,500)
$IE = _IECreateEmbedded()
GUICtrlCreateObj($IE,4,20)
;~ Création de la GUI qui permettra à l'utilisateur d'utiliser le programme
$Form1 = GUICreate("Youtube's videos finder - blacksoul305", 552, 163, 225, 221)
$Input1 = GUICtrlCreateInput('"Paste the complete youtube URL"', 16, 48, 193, 21)
$Group1 = GUICtrlCreateGroup("About the video...", 240, 16, 297, 129)
$Label1 = GUICtrlCreateLabel('Title : "UNKNOWN"', 256, 48, 268, 17)
$Button1 = GUICtrlCreateButton("Play the video", 320, 112, 153, 25)
$Label2 = GUICtrlCreateLabel('Author : "UNKNOWN"', 256, 80, 268, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button2 = GUICtrlCreateButton("->", 192, 136, 25, 17)
$Progress1 = GUICtrlCreateProgress(16, 88, 193, 33)
$Label3 = GUICtrlCreateLabel("Step :", 16, 136, 164, 17)
GUISetState(@SW_SHOW)
$url = ""
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
If Not $url = "" Then _RunDos("start " & $url) ; si un URL est déjà entré on peut lancer la vidéo
Case $Button2
GUICtrlSetData($Progress1,0)
$url = GUICtrlRead($Input1)
If Not $url = "" Then
GUICtrlSetData($Label3,"Step : Following the URL...")
_IENavigate($IE,$url) ; on va à l'URL
_IELoadWait($IE) ; on attend que la page soit chargée correctement
GUICtrlSetData($Progress1,20)
$body = _IEBodyReadHTML($IE) ; on récupère le code HTML de la page
GUICtrlSetData($Label3,"Step : Collecting HTML informations...")
GUICtrlSetData($Progress1,60)
$title = StringRegExp($body,'<META content=(.*?)itemprop="name">',3) ; on extrait le titre
$author = StringRegExp($body,'<DIV itemtype="http://schema.org/Person" itemscope itemprop="author"><LINK href="http://www.youtube.com/user/(.*?)" itemprop="url"></DIV>',3) ; on extrait la chaîne Youtube
GUICtrlSetData($Label3,"Step : processing datas")
GUICtrlSetData($Progress1,80)
GUICtrlSetData($Label1,"Title : " & $title[0]) ; on met à jour le titre
GUICtrlSetData($Label2,"Channel : " & $author[0]) ; on met à jour la chaîne
GUICtrlSetData($Label3,"Step : Finished")
GUICtrlSetData($Progress1,100)
EndIf
EndSwitch
WEnd