YouTube: Link vom ersten gefundenen Video finden (RegEx)

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Nofear23m.

    YouTube: Link vom ersten gefundenen Video finden (RegEx)

    Hallo,

    habe gelesen dass man den Link vom ersten gefundenen YouTube-Video mithilfe von RegEx finden kann,
    habe das aber nicht so richtig verstanden. Die URL von der Sucheseite von YouTube habe ich schon.

    Am Ende benötige ich dann nur den Link.

    Danke im Vorraus ;)
    Ich denke du hast so eine URL: youtube.com/results?search_query=Tagesschau
    Du kannst dir mittels eines WebClients schnell den Source von dieser Seite holen:

    VB.NET-Quellcode

    1. Dim webClient As New WebClient
    2. Dim result As String = webClient.DownloadString(source)

    Und dann kannst du den ja mal untersuchen und findest da solche Teile:

    HTML-Quellcode

    1. <a id="video-title" class="yt-simple-endpoint style-scope ytd-video-renderer" aria-label="tagesschau 20:00 Uhr, 05.10.2017 von tagesschau vor 3 Stunden 17 Minuten 464 Aufrufe" href="/watch?v=W1BxCMFaIZ0" title="tagesschau 20:00 Uhr, 05.10.2017">
    2. tagesschau 20:00 Uhr, 05.10.2017
    3. </a>

    Du kannst nun versuchen aus dem Source alle Zeilen zu holen, die mit <a id="video-title" anfangen. Dann musst du das Attribut href auslesen für den Video-Link. Das kannst du entweder mit einer Schleife machen, die jede Zeile durchgeht und mit .StartsWith("") oder .Contains("") prüft, ob die Zeile den gesuchten Content beinhaltet. Oder eben mit RegEx, hier mal ein Tutorial zum selber Basteln: RegEx Tutorial - Blutige Anfänger und Fortgeschrittene

    Oder mal ein Beispiel (habe schon lang nicht mehr damit gearbeitet, kann nicht versichern, dass es klappt):

    VB.NET-Quellcode

    1. Dim results As New List(Of String)
    2. Dim matches As MatchCollection = Regex.Matches(text, "<a id=""video-title"".*?href=""(.*?)""")
    3. For Each m As Match In matches
    4. results.Add(m.Value)
    5. Next


    Oder du packst deinen Source in einen WebBrowser und machst mit Document.GetElementByID("video-title") und holst dir so das erste Element.

    Viele Grüße
    Frank
    Hallo

    Warum nicht richtig und die API verwenden? Hier ein Tut: hummelwalker.de/2010/02/24/tut…e-sdk-for-net-mit-vb-net/
    Ich finde es immer schöner mit APIs zu Arbeiten. Wenn sich die Seite ändert kommt es immer zu Problemen. Nervig.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##