- Offizieller Beitrag
Hallo!
Vorab: die Idee ist nicht von mir sondern von Eusebio! Ich habe es in eine GUI geschrieben, und ein bisschen praktischer gemacht!
Den beitrag im englischen forum findet ihr hier
Und hier nun das skript:
Spoiler anzeigen
;######################
;By GtaSpider & Eusebio
;######################
#include <GUIConstants.au3>
#include <inet.au3>
#Region ### START Koda GUI section ### Form=
GUICreate("You Tube", 223, 114, 193, 121, -1, BitOR($WS_EX_TOOLWINDOW,$WS_EX_WINDOWEDGE))
$DwnInput = GUICtrlCreateInput("http://www.youtube.com/watch?v=R4kFmMD3M0A", 8, 24, 201, 21)
GUICtrlCreateLabel("You Tube Download Link:", 8, 8, 198, 15)
$start = GUICtrlCreateButton("&Start", 8, 48, 99, 25, 0)
$Progress = GUICtrlCreateProgress(8, 80, 202, 16)
$abb = GUICtrlCreateButton("A&bort", 112, 48, 99, 25, 0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $start
GUICtrlSetState($start,$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 SWF","","Flash(*.swf)",-1,$s_v)
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
;By GtaSpider
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 = $abb Then
If MsgBox(4,"","Abort?") = 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 & ") Kb has been Downloaded.")
Else
GUICtrlSetData($prog,$Prozent)
EndIf
Until @InetGetActive = 0
If $prog = 0 Then ProgressOff ()
Return $punkt
EndFunc
Mfg Spider