revisando el foro de autit encontre este codigo
pero no logro hacer que funcione,aqui se los dejo
include <GUIConstants.au3>
include <inet.au3>
GUICreate("YouTube Downloader", 223, 114, 193, 121, -1)
$DwnInput = GUICtrlCreateInput("", 8, 24, 201, 21)
GUICtrlCreateLabel("Video Link:", 8, 8, 198, 15)
$download = GUICtrlCreateButton("Download", 8, 48, 99, 25, 0)
$Progress = GUICtrlCreateProgress(8, 80, 202, 16)
$cancel = GUICtrlCreateButton("Cancel", 112, 48, 99, 25, 0)
$about = GUICtrlCreateLabel ("Made by: Arturo",65,100,240,21)
$filename = "Saime"
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $download
GUICtrlSetState($download,$GUI_DISABLE)
$dwnlink = GUICtrlRead($DwnInput)
$sCode=_INetGetSource ($dwnlink)
$s_t=StringRegExp($sCode, "&t=(.*?)&", 3)
$s_v=stringmid($dwnlink,stringinstr($dwnlink,"v=")+2)
$save = FileSaveDialog("Save File ...","","FLV(*.flv)",-1, $filename)
If StringRight($save,4) <> ".swf" Then $save&=".swf"
_Download("http://youtube.com/get_video?video_id=" & $s_v & "&t=" & $s_t[0],$save,$Progress)
GUIDelete()
MsgBox(0,"","Done!")
Exit
EndSwitch
WEnd
Func _Download($site,$punkt,$prog=0)
$orisize = InetGetSize($site)
InetGet($site,$punkt,1,1)
If $prog = 0 Then ProgressOn("Download","")
Do
$msg = GUIGetMsg()
If $msg = $cancel Then
If MsgBox(4,"","Cancel Download (?)") = 6 Then Exit
EndIf
$size1 = FileGetSize($punkt)
$MBsize1 = FileGetSize($punkt)
$inetget = @InetGetBytesRead
$Prozent = (100 * $inetget ) / $orisize
$decimalplace = Round ($Prozent)
$decimalplaceMBsize1 = Round (@InetGetBytesRead / 1024)
If $prog = 0 Then
ProgressSet ($Prozent, $decimalplace & "% " & "(" & $decimalplaceMBsize1 & ") Downloaded In Total ...")
Else
GUICtrlSetData($prog,$Prozent)
EndIf
Until @InetGetActive = 0
If $prog = 0 Then ProgressOff ()
Return $punkt
EndFunc