Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1696to1700
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

per VBA ein Feld aus einer Internetseite abfragen

per VBA ein Feld aus einer Internetseite abfragen
16.06.2019 14:59:16
stef26
Guten Tag,
ich lasse mir in einer UserForm ein Youtube Video anzeigen.
Ich würde gerne mir die aktuelle Laufzeit des Videos in Excel einlesen.
Ich hab es versucht über Externe Daten die Seite einzulesen, allerdings wird das Feld mit der aktuellen Laufzeit nicht angezeigt.
Hat von euch einer eine Idee wie ich auf die aktuelle Spielzeit des Videos kommen kann?
Ich hoffe das Feld mit der aktuellen Spielzeit des Videos ist bei jedem Youtube Video gleich...
Liebe Grüsse
Stefan

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: per VBA ein Feld aus einer Internetseite abfragen
18.06.2019 12:41:36
Zwenn
Hallo Stefan,
man kommt über den HTML-Quellcode des YouTubePlayers an die Zeit eines Videos. Auslesen kann man es mit den Werkzeugen des DOM (Document Object Model). Du musst Dir das Ergebnis nur noch da ausgeben lassen, wo Du es brauchst und evtl. eine Schleife in das Makro einbauen, damit mehrere URLs nacheinander abgeklappert werden können:

Sub YouTubeSpielZeitHolen()
Dim browser As Object
Dim url As String
Dim knotenWurzel As Object
Dim splitArray() As String
Dim spielZeit As String
'Beliebige YouTube URL auf ein Video
url = "https://www.youtube.com/watch?v=c_x4Ta3B8uI"
'Internet Explorer initialisieren, Sichtbarkeit festlegen,
'URL aufrufen und warten bis Seite vollständig geladen wurde
Set browser = CreateObject("internetexplorer.application")
browser.Visible = False
browser.Navigate url
Do Until browser.ReadyState = 4: DoEvents: Loop
'Zeitstempel aus dem YouTubePlayer auslesen
'Das entsprechende div-Tag verwendet als einziges die Klasse "ytp-progress-bar "
'Dann folgen einige Attribute, von denen wir den Wert von aria-valuetext brauchen
'<div class="ytp-progress-bar "
'     tabindex = "0"
'     role = "slider"
'     aria-Label = "Schieberegler für Suche"
'     aria-valuemin = "0"
'     aria-valuemax = "211"
'     aria-valuenow = "1"
'     aria-valuetext = "0:00 von 3:31"
'     style="touch-action: none;" >
Set knotenWurzel = browser.document.getElementsByClassName("ytp-progress-bar ")(0)
If Not knotenWurzel Is Nothing Then
'Wurde das div-Tag gefunden, direkt das Attribut mit Zeitstempel
'über Split() in seine Bestandteile zerlegen
'Leerzeichen = Trennzeichen (Delimeter)
splitArray = Split(knotenWurzel.getAttribute("aria-valuetext"))
'Die Spielzeit des Videos steht nun im letzten Element des Arrays
spielZeit = splitArray(UBound(splitArray))
Else
spielZeit = "Keine Zeit ausgelesen"
End If
'Aufräumen
browser.Quit
Set browser = Nothing
Set knotenWurzel = Nothing
'Spielzeit ausgeben
MsgBox spielZeit
End Sub

Viele Grüße,
Zwenn
Anzeige
AW: per VBA ein Feld aus einer Internetseite abfragen
18.06.2019 13:03:57
stef26
Hallo Zwenn,
das ist genau das was ich gesucht habe. Damit komme ich weiter.
Besten Dank für deine Hilfe
LG
Stefan
AW: per VBA ein Feld aus einer Internetseite abfragen
18.06.2019 16:23:57
stef26
Hallo Zwenn,
ich hätte noch ne Frage.
Kommt man auch an die aktuell gespielte Zeit des Videos?
Über aria-valuetext bekomme ich wenn ich mir nur 0 bis Ende angezeigt.
Ich hatte gehofft, dass dort immer der aktuell schon gespielte Wert enthalten ist..
Gruß
Stefan
AW: per VBA ein Feld aus einer Internetseite abfragen
18.06.2019 17:36:46
Zwenn
Hallo Stefan,
was soll denn da auch sonst drin stehen als 0:00 für die schon gespielte Zeit? Das Makro läd die Seite, wertet sofort den String mit den Zeitangaben aus und dann wird der Browser wieder geschlossen. Wenn Du den Fortschritt dauernd abgreifen willst, musst Du den String mit den Zeiten im Sekundentakt oder was weiß ich, in einer Schleife auswerten. Aber wozu? Zumal Du in der Zeit dann nix anderes mit Excel machen könntest.
Viele Grüße,
Zwenn
Anzeige
AW: per VBA ein Feld aus einer Internetseite abfragen
18.06.2019 18:07:11
stef26
Hallo Zwenn,
danke für die Rückmeldung.
Ich öffne über ein USERFORM das Video, dann werden die Liedtexte auf deutsch und englisch eingeblendet.
Um Video und Texte zu syncronisieren, brauche ich einen einmaligen Abgleich, der in den ersten Sekunden nach dem start des Videos erfolgen soll.
https://www.herber.de/bbs/user/130462.xlsm
Bisher löse ich es noch mit einem Butten den ich dann drücken muss...
Gruß
Stefan
AW: per VBA ein Feld aus einer Internetseite abfragen
18.06.2019 18:33:12
Zwenn
Hi Stefan,
wenigstens hörst Du vernünftige Musik ;-) Ich würde noch 2nd Sun Live Acoustic in die Playlist aufnehmen.
http://www.youtube.com/watch?v=_YSxkUtWjGE
Du "missbrauchst" Excel als MediaPlayer. Du müsstest also die Zeit aus Deinem eingebetteten Video in der UF abgreifen. Das macht mein Makro nicht und ich weiß ehrlich gesagt auch nicht, wie das geht. Müsste ich mich erstmal mit beschäftigen, habe ich aber im Moment keine Zeit zu.
Ich habe keine Ahnung wozu Du das brauchst, aber mich erinnert die Vorgehensweise stark an diese Mitsingspiele auf der Playstation. Sowas gibt es auch für den PC. Da kann man die eigenen Texte auch zu den Liedern einpassen sozusagen. Das heißt UltraStar Deluxe Ich glaube aber, das geht nicht mit Videos.
http://usdx.eu/
Viele Grüße,
Zwenn
Anzeige
AW: per VBA ein Feld aus einer Internetseite abfragen
18.06.2019 20:56:23
stef26
Hallo Zwenn,
ist nicht so schlimm. Du musst auf keinen Fall noch mehr Zeit investieren.
Ich bin schon dankbar für das was du mir bisher gezeigt hast.
Drauf gekommen bin ich, da meine Kinder ihre englische Songs mit unerkennbaren Texten singen.
Und wollte ihnen was basteln, damit sie für ihre Lieblingssongs wissen was sie singen.
Hab gemerkt das es für mein Englisch auch mal wieder etwas Auffrischung gut tun würde.
Und wie geht das besser wie mit Songs die man sehr oft hört.
Die Programme kannte ich noch nicht. Werde mir mal wenn sie kostenlos sind mal runterladen.
Wenns ihnen gefällt würde ich sowieso was fürs Handy basteln müssen...
Vielen Dank nochmal und liebe Grüsse
Stefan
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige