• Hallo!
    Mit meinem Multidownloader ist es möglich, Videos aus dem Netz herunterladen und diese konvertieren.
    Schon eine Weile ist's her, dass ich an meinem Multidownloader rumgeschrieben hab.
    Verschiedene Teile des Skriptes lassen wahrscheinlich darauf deuten =)

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=D:\DOWNLOADS\Download.ico
    #AutoIt3Wrapper_outfile=..\..\Fertige Programme\Multidownloader\Multidownloader.exe
    #AutoIt3Wrapper_Res_Language=1031
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <GUIConstants.au3>
    #include<Guilistview.au3>
    #include<array.au3>
    #include<Inet.au3>
    #include<string.au3>
    #include<guibutton.au3>
    #include <WindowsConstants.au3>
    #include <ComboConstants.au3>
    #include<ie.au3>
    $inireader = IniRead(@ScriptDir & "\data.ini", "default", "Ausgabeort", @DocumentsCommonDir)
    $Multidownloader_1 = GUICreate("Multidownloader", 670, 530, 208, 107)
    $ListView1 = GUICtrlCreateListView("Link|Portal|Ausgabeort|Ausgabename|Format|Qualität", 5, 50, 655, 313)
    GUICtrlSendMsg(-1, 0x101E, 0, 250)
    GUICtrlSendMsg(-1, 0x101E, 1, 50)
    GUICtrlSendMsg(-1, 0x101E, 2, 150)
    GUICtrlSendMsg(-1, 0x101E, 3, 150)
    GUICtrlSendMsg(-1, 0x101E, 4, 50)
    GUICtrlSendMsg(-1, 0x101E, 5, 100)
    $Download = GUICtrlCreateGroup("Download hinzufügen", 5, 369, 652, 122)
    $LINK = GUICtrlCreateInput("MTV.video / Youtube-Link hier eingeben", 18, 392, 421, 21)
    $Input1 = GUICtrlCreateInput("Ausgabetitel hier eingeben", 449, 392, 200, 21)
    $Ausgabeort = GUICtrlCreateButton("Ausgabeort ändern", 339, 420, 98, 29, $WS_GROUP)
    $Button1 = GUICtrlCreateButton("Download hinzufügen", 8, 458, 641, 28, $WS_GROUP)
    $Radio1 = GUICtrlCreateRadio("Mp3", 450, 414, 43, 20)
    GUICtrlSetState(-1, $GUI_CHECKED)
    $Radio2 = GUICtrlCreateRadio("Mp4", 450, 431, 46, 20)
    $Ausgabe = GUICtrlCreateInput("", 18, 424, 313, 21)
    GUICtrlSetState($Ausgabe, $gui_disable)
    If $inireader = "" Then
    GUICtrlSetData($Ausgabe, @DocumentsCommonDir)
    Else
    GUICtrlSetData($Ausgabe, $inireader)
    EndIf
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Button2 = GUICtrlCreateButton("Liste downloaden", 10, 496, 638, 25, $WS_GROUP)
    $Pic1 = GUICtrlCreatePic(@ScriptDir & "\multidownloader.jpg", 0, 0, 669, 100)
    $Label2 = GUICtrlCreateLabel("Multidownloader by 2$Billie", 3, 3, 320, 36)
    GUICtrlSetFont(-1, 20, 400, 0)
    GUICtrlSetColor(-1, 0x3D95FF)
    GUICtrlSetBkColor(-1, 0x000000)
    WinSetTrans($Multidownloader_1, "", 230)
    GUISetState(@SW_SHOW)
    GUICtrlSetState($Button2, $gui_disable)
    Global $portal = ""
    Global $sformat = True
    Global $blabla = False

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $LINK
    $linkread = GUICtrlRead($LINK)
    If $linkread = "" Then MsgBox(16, "Fehler", "Bitte gib einen Link ein")
    If StringRegExp($linkread, "^(?:http:\/\/)*www\.mtv\.de\/videos") Then $portal = "mtv"
    If StringRegExp($linkread, "(?i)(?:http\:\/\/)?www\.youtube\.\w+\/watch\?v=[\d\w-_]+(?:\s*$|&feature=\w+\s*$)") Then $portal = "youtube"
    If StringRegExp($linkread, "^(?:http:\/\/)*www\.myvideo.de/watch/") Then $portal = "Myvideo"

    [/autoit] [autoit][/autoit] [autoit]

    Case $Ausgabeort
    $OUtPUTFILE = FileSelectFolder("Ausgabeort", "Eigene Dateien", 1, "")
    If $OUtPUTFILE = "" Then
    MsgBox(16, "Fehler", "Bitte gib einen Speicherort an")
    Else
    IniWrite(@ScriptDir & "\data.ini", "default", "Ausgabeort", $OUtPUTFILE)
    $inireadb = IniRead(@ScriptDir & "\data.ini", "default", "Ausgabeort", @DocumentsCommonDir)
    GUICtrlSetData($Ausgabe, $inireadb)
    EndIf
    If $OUtPUTFILE = "arbeitsplatz" Then
    MsgBox(16, "Fehler", "Du kannst keine Datei auf dem Arbeitsplatz speichern")
    GUICtrlSetData($Ausgabe, @DocumentsCommonDir)
    Else
    GUICtrlSetState($Button1, $gui_enable)
    EndIf
    Case $Radio2
    If GUICtrlRead($Radio2) = $GUI_CHECKED Then
    $combobox = GUICtrlCreateCombo("", 504, 424, 113, 25, BitOR($CBS_DROPDOWNLIST, $CBS_AUTOHSCROLL))
    GUICtrlSetData(-1, "Pessimus|Normal|Optimus", "Optimus")

    [/autoit] [autoit][/autoit] [autoit]

    $blabla = True
    Else
    $blabla = False
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Case $Radio1
    If $blabla = True Then
    GUICtrlDelete($combobox)
    EndIf
    Case $Button1
    If $blabla = False Then
    $combobox1 = "normal"
    Else
    $combobox1 = GUICtrlRead($combobox)
    EndIf
    $ausgaberead = GUICtrlRead($Input1)
    If $portal = "Myvideo" Then $combobox1 = "Normal"
    If GUICtrlRead($Radio1) = $GUI_CHECKED Then
    $formatauswahl = "MP3"
    Else
    $formatauswahl = "MP4"
    EndIf
    If $portal = "" Or GUICtrlRead($Ausgabe) = "" Then
    MsgBox(0, "Fehler", "Gib einen gültigen Link/Ausgabeort an!")
    Else
    GUICtrlCreateListViewItem($linkread & "|" & $portal & "|" & GUICtrlRead($Ausgabe) & "|" & $ausgaberead & "|" & $formatauswahl & "|" & $combobox1, $ListView1)
    GUICtrlSetState($Button2, $gui_enable)
    GUICtrlSetData($LINK, "MTV.video / Youtube-Link hier eingeben")
    GUICtrlSetData($Input1, "Ausgabetitel hier eingeben")
    EndIf
    Case $Button2
    linkchecker()
    EndSwitch
    WEnd
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Funktionen;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    Func mtvdownload()
    $aItem = _GUICtrlListView_GetItemTextArray($ListView1, 0)
    TrayTip("Info", "Download und Konvertierung von " & $aItem[4] & ". Bitte warten", 30)
    TraySetToolTip("DL/Konv. läuft")
    $url1 = "http://de.esperanto.mtvi.com/www/xml/flv/flvgen.jhtml?vid="
    $url2 = "&hiLoPref=hi"
    $Quelltext = _INetGetSource($aItem[1])
    $sStart = 'var so = new SWFObject("http://media.mtvnservices.com/mgid:uma:video:mtv.de:'
    $sEnde = '",'
    $string = _StringBetween($Quelltext, $sStart, $sEnde)
    If IsArray($string) Then
    $adresse = $url1 & $string[0] & $url2
    $Quelltext2 = _INetGetSource($adresse)
    $string2 = _StringBetween($Quelltext2, '<src>', '</src>')
    $ausgabetitel = $aItem[4]
    $mp3zieladresse = $aItem[3]
    $tempadresse = @ScriptDir & "\video.flv"
    $zieladresse = $mp3zieladresse & "\" & $ausgabetitel & ".mp3"
    $mp4zieladresse = $mp3zieladresse & "\" & $ausgabetitel & ".mp4"
    $downloadbla = InetGet($string2[0], $tempadresse, "", 0)
    $ffmpeg = @ScriptDir & "\ffmpeg.exe"
    $sformat = $aItem[5]
    If $sformat = "MP3" Then
    RunWait('ffmpeg.exe -i "' & $tempadresse & '"' & ' -ab 320k "' & $zieladresse & '"', "", @SW_HIDE)
    EndIf
    If $sformat = "MP4" And $aItem[6] = "Pessimus" Then
    RunWait('ffmpeg.exe -i "' & $tempadresse & '"' & ' -ab 320k -b 500k -r 20 "' & $mp4zieladresse & '"', "", @SW_HIDE)
    EndIf
    If $sformat = "MP4" And $aItem[6] = "Normal" Then
    RunWait('ffmpeg.exe -i "' & $tempadresse & '"' & ' -ab 320k -b 1000k -r 30 "' & $mp4zieladresse & '"', "", @SW_HIDE)
    EndIf
    If $sformat = "MP4" And $aItem[6] = "Optimus" Then
    RunWait('ffmpeg.exe -i "' & $tempadresse & '"' & ' -ab 320k -b 15000k -r 70 "' & $mp4zieladresse & '"', "", @SW_HIDE)
    EndIf
    GUICtrlSetState($Button2, $gui_disable)
    EndIf
    _GUICtrlListView_DeleteItem($ListView1, 0)
    If _GUICtrlListView_GetItemCount($ListView1) = 0 Then
    MsgBox(0, "Tadaaa", "Der Download war erfolgreich")
    GUICtrlSetState($Button1, $gui_enable)
    GUICtrlSetState($Button2, $gui_disable)
    GUISetState(@SW_SHOW, $Multidownloader_1)
    TraySetToolTip("")
    Else
    FileDelete($tempadresse)
    linkchecker()
    EndIf
    EndFunc ;==>mtvdownload
    Func linkchecker()
    $bItem = _GUICtrlListView_GetItemTextArray($ListView1, 0)
    If $bItem[2] = "mtv" Then
    GUISetState(@SW_HIDE, $Multidownloader_1)
    mtvdownload()
    EndIf
    If $bItem[2] = "youtube" Then
    GUISetState(@SW_HIDE, $Multidownloader_1)
    youtubedownload()
    EndIf
    If $bItem[2] = "Myvideo" Then
    GUISetState(@SW_HIDE, $Multidownloader_1)
    myvideodownload()
    EndIf
    EndFunc ;==>linkchecker
    Func youtubedownload()
    $aItem = _GUICtrlListView_GetItemTextArray($ListView1, 0)
    TraySetToolTip("DL/Konv. läuft")
    TrayTip("Info", "Download und Konvertierung von " & $aItem[4] & ". Bitte warten", 30)
    $aItem = _GUICtrlListView_GetItemTextArray($ListView1, 0)
    $source2 = _INetGetSource($aItem[1])
    $linkgen = _StringBetween($source2, "img.src = '", "'")
    $downloadlink2 = StringReplace($linkgen[0], "/generate_204", "/videoplayback")
    $downloadlink2 = StringReplace($downloadlink2, "\/", "/")
    $tempadresse = @ScriptDir & "\video.flv"
    InetGet($downloadlink2, $tempadresse, "", 0)
    $mvmp3zieladresseb = $aItem[3] & "\" & $aItem[4] & ".mp3"
    $mvmp4zieladresseb = $aItem[3] & "\" & $aItem[4] & ".mp4"
    If $aItem[5] = "MP3" Then
    RunWait('ffmpeg.exe -i "' & $tempadresse & '"' & ' -ab 320k "' & $mvmp3zieladresseb & '"', "", @SW_HIDE)
    EndIf
    If $aItem[5] = "Mp4" Then
    RunWait('ffmpeg.exe -i "' & $tempadresse & '"' & ' -ab 320k -b 5000k -r 50 "' & $mvmp4zieladresseb & '"', "", @SW_HIDE)
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    _GUICtrlListView_DeleteItem($ListView1, 0)
    If _GUICtrlListView_GetItemCount($ListView1) = 0 Then
    MsgBox(0, "Tadaaa", "Der Download war erfolgreich")
    GUISetState(@SW_SHOW, $Multidownloader_1)
    GUICtrlSetState($Button1, $gui_enable)
    GUICtrlSetState($Button2, $gui_disable)
    TraySetToolTip("")
    Else

    [/autoit] [autoit][/autoit] [autoit]

    linkchecker()
    EndIf
    EndFunc ;==>youtubedownload
    Func myvideodownload()
    $aItem = _GUICtrlListView_GetItemTextArray($ListView1, 0)
    TrayTip("Info", "Download und Konvertierung von " & $aItem[4] & ". Bitte warten", 30)
    $id = _StringBetween($aItem[1], "/watch/", "/")
    $source = _INetGetSource($aItem[1])
    $string2 = _StringBetween($source, "rel='image_src' href='", "/thumbs/")
    $downloadlink = $string2[0] & "/" & $id[0] & ".flv"
    $tempadresse = @ScriptDir & "\video.flv"
    InetGet($downloadlink, $tempadresse, "", 0)
    $mvmp3zieladresse = $aItem[3] & "\" & $aItem[4] & ".mp3"
    $mvmp4zieladresse = $aItem[3] & "\" & $aItem[4] & ".mp4"
    If $aItem[5] = "MP3" Then
    RunWait('ffmpeg.exe -i "' & $tempadresse & '"' & ' -ab 320k "' & $mvmp3zieladresse & '"', "", @SW_HIDE)
    EndIf
    If $aItem[5] = "Mp4" Then
    RunWait('ffmpeg.exe -i "' & $tempadresse & '"' & ' -ab 320k -b 5000k -r 50 "' & $mvmp4zieladresse & '"', "", @SW_HIDE)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    _GUICtrlListView_DeleteItem($ListView1, 0)
    If _GUICtrlListView_GetItemCount($ListView1) = 0 Then
    MsgBox(0, "Tadaaa", "Der Download war erfolgreich")
    GUISetState(@SW_SHOW, $Multidownloader_1)
    GUICtrlSetState($Button1, $gui_enable)
    GUICtrlSetState($Button2, $gui_disable)
    TraySetToolTip("")
    Else
    linkchecker()

    [/autoit] [autoit][/autoit] [autoit]

    EndIf
    EndFunc ;==>myvideodownload

    [/autoit]


    Eine Progressbar ist leider nicht eingebaut. links mit feature/related klappen nicht(einfach den teil des links wegmachen) - den kleinen Bug werd ich demnächst mal wegzaubern :)
    Ansonsten sollte alles funktionieren.
    Hier der Downloadlink: http://www.2shared.com/file/UXqt2EtT/Multidownloader.html
    Viel Spaß beim Testen ;)

    [align=center]Meine Werke mit der Irrlicht Engine
    AutoIt Picture Viewer Dreidimensionaler Bildbetrachter
    Mr Bubble 3D Neue Interpretation des Flashklassikers Bubble trouble

    2 Mal editiert, zuletzt von Twodollarbillie (30. Januar 2011 um 13:38)

  • Zitate aus den Nutzungsbedingungen:

    Zitat

    Sie erklären sich damit einverstanden, auf Nutzerübermittlungen (wie unten definiert) oder andere auf der Webseite verfügbar gemachte Inhalte (einschließlich YouTube-Inhalte wie unten definiert) nicht über irgendwelche andere Technologien oder Mittel als die Video-Wiedergabeseiten der Webseite selbst, den YouTube-Player oder solche anderen Mittel zuzugreifen, die YouTube ausdrücklich für diesen Zweck bestimmt;

    Zitat

    Sie erklären sich damit einverstanden, Zugriff auf Nutzervideos nur in der Form des Streamings und zu keinen anderen Zwecken als der rein persönlichen, nicht-kommerziellen Nutzung, und nur in dem Rahmen zu nehmen, der durch die normale Funktionalität der Dienste vorgegeben und erlaubt ist. „Streaming“ bezeichnet eine gleichzeitige digitale Übertragung des Materials über das Internet durch YouTube auf ein nutzerbetriebenes internetfähiges Endgerät in einer Weise, bei der die Daten für eine Echtzeitansicht bestimmt sind, nicht aber für einen (permanenten oder vorübergehenden) Download, ein Kopieren, ein Speichern oder einen Weitervertrieb durch den Nutzer.


    Ich glaube, dass die Nutzungsbedingungen dagegen sprechen oder?

    Einmal editiert, zuletzt von Zeitriss (29. Januar 2011 um 20:41)

  • Hi!

    Eine Anmerkung das was hier nicht stehen darf ist das du wirbst das man von YouTube usw. die Videos laden kann.
    Das Prog kann Videos aus den Netz laden in Mp3 Wandel, die Aussage reicht aus was der Nutzer mit die Möglichkeiten anstellt ist dann nicht mehre deine Sache ‘‘ WAS GANZ WICHIG IST DIE ANLEITUNG DIE IST STRAFBAR [VORSATZ] NENNT MAN SOWAS‘‘.

    Mit der Aussage verstößt du gegen die Forenregeln u. dem Post Zeitriss .

    Bitte entferne die Anmerkung aus dein Anschreiben und deiner Signatur.


    Lg Kleiner