Es geht mir konkret um 0:14, die Gesamtdauer4:19 kann ich ja mit der von dir vorgestellten Methode bereits abfragen. Dann werde ich mich wohl einlesen müssen... frustrierend, da das viel Zeit kostet. Trotzdem danke!
Beiträge von AutoSchmauto
-
-
Ich hoffe, ein Bump ist an dieser Stelle erlaubt. Hat jemand eine Idee?
-
Falls es Dir nur um die eigentlichen Daten wie Spieldauer und Titel geht, kannst Du folgendes probieren :
AutoIt
Alles anzeigen#include <Inet.au3> #include <Array.au3> #include <String.au3> Global $sUrl = "https://www.youtube.com/watch?v=QULoC1kP54M" Global $sSource = "", $sVideoID= "", $sTitle = "", $iPlaytime = 0, $aArray $sSource = _INetGetSource($sUrl, True) If @error Then ConsoleWrite("! _INetGetSource fehlgeschlagen " & @CRLF) ; VideoID ermitteln : $aArray = _StringBetween($sSource, '"videoId\":\"', '\",') If @error Then ConsoleWrite('! Suche "videoId" fehlgeschlagen ' & @CRLF) If IsArray($aArray) Then $sVideoID = $aArray[0] ; Titel ermitteln : $aArray = _StringBetween($sSource, '"title\":\"', '\",') If @error Then ConsoleWrite('! Suche "title" fehlgeschlagen ' & @CRLF) If IsArray($aArray) Then $sTitle = $aArray[0] ; Spieldauer (in Sekunden) ermitteln : $aArray = _StringBetween($sSource, '"lengthSeconds\":\"', '\",') If @error Then ConsoleWrite('! Suche "lengthSeconds" fehlgeschlagen ' & @CRLF) If IsArray($aArray) Then $iPlaytime = Number($aArray[0]) ConsoleWrite("VideoID = " & $sVideoID & @CRLF) ConsoleWrite("Titel = " & $sTitle & @CRLF) ConsoleWrite("Spieldauer = " & SecondsToTime($iPlaytime) & @CRLF) ; Hilfsfunktion : Sekunden in Std:Min:Sek umrechnen Func SecondsToTime($iTime) Local $iSec = Mod($iTime, 60) Local $iMin = Mod(Int($iTime / 60), 60) Local $iHour = Int($iTime / 60 ^ 2) Return StringFormat("%02i:%02i:%02i", $iHour, $iMin, $iSec) EndFunc ;==>SecondsToTime
EDIT : Zur Automatisierung von Chrome, siehe : webdriver-udf
Gruß Musashi
Das klappt schonmal super, die Funktion _INetGetSource ist ja echt praktisch! Jetzt möchte ich noch die aktuelle Dauer des gerade abgespielten Videos herausfinden. Dazu muss ich erstmal ein konkretes Browserfenster öffnen (ich nehme an mit WinActivate) und dann das Elements eines bestimmten XPaths auslesen (damit tue ich mich schwer).
-
Hallo Leute!
ich bin AutoIT-Anfänger und habe bisher einige Tutorials durchgearbeitet. Jetzt möchte ich gerne ein YouTube-Video mit Chrome öffnen und die Dauer des Videos auslesen. Die wird ja am unteren Rand des Videos angezeigt. Den XPath kann ich mir anzeigen lassen, aber ich weiß nicht, wie ich den Inhalt bekomme, zu dem der Pfad führt. Folgendes Testbeispiel:
Code
Alles anzeigen; Link: https://www.youtube.com/watch?v=QULoC1kP54M WinActivate(AutoIt Tutorial deutsch Teil 1, Die Grundlagen - YouTube - Google Chrome) WinWaitActive(AutoIt Tutorial deutsch Teil 1, Die Grundlagen - YouTube - Google Chrome) local $var1 = //*[@id="movie_player"]/div[23]/div[2]/div[1]/div/span[3] ; Der XPath wurde angegeben, aber wie kriege ich daraus den Inhalt? Run("notepad.exe") WinWaitActive("Unbenannt - Editor") Send(var1)
Wie mache ich das am besten? (Und falls ich dafür spezielle Include-Files brauche, wo lade ich die runter und mache die verfügbar? Ich habe nur eine AutoIT-Standardinstallation).
Vielen Dank im Voraus!