Autoit Youtube Browser kontrollieren

  • Heyho liebe Community.

    Ich möchte einen kleinen Browser, nur für Youtube schreiben, welcher komplett auf hotkeys basieren soll, heißt beispielweise F1 = Klick auf play F2 = Klick auf Like usw.
    Nun habe ich aber das Problem, dass ich nicht weiß wie ich das realisieren kann, weder als Addon für Firefox, noch als eigenständiges Programm.
    Ich habe keine Möglichkeit gefunden ohne Mouselick() in Autoit den Browser etwas bestimmtes anklicken zu lassen.

    Hoffe jemand weiß da weiter.
    MFG

  • Leider funktioniert FF.au3 absolut gar nicht bei mir selbst bei _FFStart() bekomme ich den Error hier :

    Zitat

    __FFStartProcess ==> General Error: Error reading registry entry for FireFox.
    HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox\*CurrentVersion*\Main\PathToExe
    Error from RegRead: 1
    _FFConnect: Delay: 2ms

    in der Autoit Console ausgegeben =/

  • Bis auf den Player wäre eine Umsetzung möglich. Da der Videoplayer ein kompletter Frame ist, kannst du z.B. die Playfunktion mit einem Hotkey knicken. Alles andere ist möglich.

    Als erstes würde ich sagen, dass du eine GUI mit Koda bastelst. Dort bettest du dann den IE ein.

    Dann musst du die Objekte mit _IEGetObjById auswählen und bestimmen was passieren soll. Also z.B.
    _IEAction ($Button, "click"). Per HotKeySet kannst du das dann an Hotkeys binden.

    Edit: Zum Auslesen der ID's empfehle ich Web Developer für den Feuerfuchs.

  • Leider funktioniert FF.au3 absolut gar nicht bei mir selbst bei _FFStart() bekomme ich den Error hier :

    Zitat
    __FFStartProcess ==> General Error: Error reading registry entry for FireFox.
    HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox\*CurrentVersion*\Main\PathToExe
    Error from RegRead: 1
    _FFConnect: Delay: 2ms


    in der Autoit Console ausgegeben =/


    Hast du ein 64-Bit Betriebssystem? Wenn ja das hier oben in SciTE einfügen und nochmal versuchen mit _FFStart Firefox zu starten.

    [autoit]

    #AutoIt3Wrapper_UseX64=n

    [/autoit]
  • Danke, aber die Version mit IE ist mir sowieso lieber habe allerdings auch hierbei ein kleines Problem.
    Hab mir die Hilfsdatein von den Funktionen mal angeschauen und hab jetzt wie folgt ein Browser Object erstellt :

    [autoit]


    $Browser = ObjCreate("Shell.Explorer.2")
    $BrowserObject = GUICtrlCreateObj ($Browser, 1, 255, 601, 300)
    $Browser.navigate("http://youtube.com")

    [/autoit]

    Und unten zum testen eine Funktion erstellt, nachdem ich mit "WebDeveloper" rausgefunden habe, dass das "Anmelden" Label auf Youtube die ID ".end" hat

    [autoit]


    Func __LOGIN()
    $ObjectName = _IEGetObjByName ($Browser, ".end")
    _IEAction ($oSubmit, "click")
    EndFunc

    [/autoit]

    Folgendes wird als Error ausgegeben.

    --> IE.au3 V2.4-0 Error from function _IEGetObjByName, $_IEStatus_InvalidDataType
    --> IE.au3 V2.4-0 Error from function _IEAction, $_IEStatus_InvalidDataType

    Einmal editiert, zuletzt von Kuroihana (21. April 2011 um 18:29)

  • Wenn die ID .end ist, wieso benutzt du dann _IEGetObjByName und nicht _IEGetObjById ?

    Navigiere den Browser zur Anmeldung und fülle das Formular aus. Der Anmelde button ist

    <input id="signIn" name="signIn">

    Bei dir wäre es dann _IEGetObjByName ($Browser, "signIn")

  • Wenn die ID .end ist, wieso benutzt du dann _IEGetObjByName und nicht _IEGetObjById ?

    Navigiere den Browser zur Anmeldung und fülle das Formular aus. Der Anmelde button ist

    <input id="signIn" name="signIn">

    Bei dir wäre es dann _IEGetObjByName ($Browser, "signIn")

    Weder

    [autoit]


    $ObjectName = _IEGetObjById ($Browser, ".end")
    _IEAction ($ObjectName, "click")

    [/autoit]


    Noch

    [autoit]


    $ObjectName = _IEGetObjById ($Browser, "signIn")
    _IEAction ($ObjectName, "click")

    [/autoit]


    Noch

    [autoit]

    _IEGetObjByName ($Browser, "signIn")

    [/autoit]


    Funktionieren.

    Es kommt immer der Error

    --> IE.au3 V2.4-0 Warning from function _IEGetObjById, $_IEStatus_NoMatch (.end/signIn)
    --> IE.au3 V2.4-0 Error from function _IEAction, $_IEStatus_InvalidDataType

    BTW wie kommst du auf "signIn" :O
    Hab, wie du es mir empfohlen hast mit Web Developer für Firefox nachgeschuat indem ich unter Informationen "ID und Klassendetails anzeigen" angewählt habe.
    Daraufhin stand neben dem Anmelden Button in einer gelben Box .end

  • Was genau, soll denn die eine Funktion machen? Eine einfache Anmeldung?

    [autoit]

    Func Anmeldung()

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

    $FillIn = _IEGetObjById($IE,"Email")
    _IEFormElementSetValue($FillIn, "Login") // Login = Loginname
    Sleep(1000)
    $FillIn2 = _IEGetObjById($IE,"Passwd")
    _IEFormElementSetValue($FillIn2, "passwort") //passwort = passwort passend zum login
    $Button = _IEGetObjById($IE,"signIn")
    _IEAction ($Button, "click")

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

    EndFunc

    [/autoit]

    Funktioniert einwandfrei. Vorher aber per

    [autoit]


    _IENavigate($IE, "https://www.google.com/accounts/ServiceLogin?uilel=3&service=youtube&passive=true&continue=http%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26nomobiletemp%3D1%26hl%3Dde_DE%26next%3D%252F&hl=de_DE&ltmpl=sso")

    [/autoit]

    zur Anmeldeseite navigieren.

    2 Mal editiert, zuletzt von sh0r7y (21. April 2011 um 19:06)

  • Ja es soll ganz einfach nur auf den Anmelde Button geklickt werden.
    Das gleiche Prinzip kann ich dann bei "Lik" und "Dislike" usw. verwenden.

  • Das Script über dir füllt die Felder aus und klickt auf Anmelden. Wie aber willst du die Captchas umgehen?
    Ich glaube nämlich das Youtube durch die Captchas automatische Logins unterbinden will.

  • Da der Videoplayer ein kompletter Frame ist

    manchmal wundert mich echt, was ihr alles so wisst ;D


    Zitat

    Hast du ein 64-Bit Betriebssystem? Wenn ja das hier oben in SciTE einfügen und nochmal versuchen mit _FFStart Firefox zu starten.

    [autoit]

    #AutoIt3Wrapper_UseX64=n

    [/autoit]

    ist das generell so?, also bei jedem programm?

  • manchmal wundert mich echt, was ihr alles so wisst ;D

    Was soll das heißen? :D

    Habe auch schon meine Zeit damit vergeudet, etwas zu schreiben, womit ich den Videoplayer ansteuern kann.

    @Kuroihana

    Es verstößt gegen die ToS, wenn du deine Videos und Kommentare mit eigenen Accounts bewertest. Im übrigen wirst du schneller dafür gesperrt als du gucken kannst.

  • Das Script über dir füllt die Felder aus und klickt auf Anmelden. Wie aber willst du die Captchas umgehen?
    Ich glaube nämlich das Youtube durch die Captchas automatische Logins unterbinden will.


    Youtube verlangt nur einen Captcha für den Login, wenn 3 Loginversuche fehgeschlagen sind.

    Danke hab jetzt verstanden wie es funktioniert nur gibt es noch Probleme mit dem klicken auf "Anmelden" auf der Startseite und das gleiche gilt für "Abmelden"

    </div></button><a class="end" href="#" onclick="document.logoutForm.submit(); return false;">Abmelden</a>

    Da steckt leider keine ID drin, wie löst man sowas?

    BTW ich habe nicht vor meine VIdeos zu pushen.

  • hier aus der hiffe _IEFormSubmit($oForm)


    bei dir müste es_IEFormSubmit($FillIn2)


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

    #include <IE.au3>
    $oIE = _IE_Example ("form")
    $oForm = _IEFormGetObjByName ($oIE, "ExampleForm")
    $oText = _IEFormElementGetObjByName ($oForm, "textExample")
    _IEFormElementSetValue ($oText, "Hey! Es funktioniert!")
    _IEFormSubmit ($oForm)

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