Youtube Titel auslesen aus YT-Url

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von slice.

    Youtube Titel auslesen aus YT-Url

    Hi,

    ich versuche im moment ein paar YT-Suchresultate in einer Konsole anzuzeigen. Die URL's bekomme ich, jedoch habe ich ein paar schwierigkeiten, um den YT-Namen zu bekommen :(

    Ich verwende einen Code aus dem Sourcecode-Austausch:

    VB.NET-Quellcode

    1. Imports System.Web
    2. Imports Google.GData.Client
    3. Imports Google.GData.Extensions
    4. Module Module1
    5. Sub Main()
    6. A: Console.WriteLine("Schreiben sie ihr Suchwort")
    7. Dim x As String = Console.ReadLine
    8. If x = Nothing Then GoTo A
    9. Dim zahl As Integer = 0
    10. Dim searchTerm As String = x.ToString 'enthält das Suchwort
    11. Dim searchUri As String = HttpUtility.UrlEncode(searchTerm) 'encodiert das Suchwort
    12. Dim url As String = "http://gdata.youtube.com/feeds/videos?q=" + searchUri 'das ist die Such-Url
    13. Dim query As FeedQuery = New FeedQuery("")
    14. Dim service As Service = New Service("sample", "sample") 'hier muss der Service und der Application-Name übergeben werde; hat jedoch keine Bedeutung
    15. query.Uri = New Uri(url)
    16. query.StartIndex = 0
    17. query.NumberToRetrieve = 5 'Anzahl der Resultate, 20 ist die maximale Anzahl pro Anfrage
    18. Dim resultfeed As AtomFeed = service.Query(query) 'hier wird die Suchanfrage gesendet
    19. Dim entry As AtomEntry
    20. For Each entry In resultfeed.Entries
    21. zahl = zahl + 1
    22. Dim youtubeUrl As String = entry.AlternateUri.Content
    23. Dim URLfinal As String
    24. URLfinal = youtubeUrl.Replace("&feature=youtube_gdata", "") 'entfernt das "&feature=youtube_gdata" aus dem Link, sodass nur noch der Youtube-Link eingetragen wird
    25. Console.WriteLine(zahl.ToString & ": " & getTitle(URLfinal) & " - " & URLfinal)
    26. Next
    27. Console.ReadLine()
    28. End Sub
    29. Public Function getTitle(ByVal HTML As String)
    30. Dim Title() As String
    31. Try
    32. start: Dim Titel As String = Text.RegularExpressions.Regex.Match(HTML, "<title>([^<]+)").Groups(1).Value
    33. Title = Split(Titel, "- Youtube", -1, CompareMethod.Text)
    34. Return Title(0)
    35. Catch
    36. GoTo start
    37. End Try
    38. End Function
    39. End Module


    Das Ziel (eher später) wird es sein, alle YT-Suchresultate anzuzeigen und bei bedarf als .mp4 runterzuladen.

    mfg

    gfc
    Bin vielleicht ein bisschen eingerostet was RegEx angeht aber:

    VB.NET-Quellcode

    1. Private Function getTitle(ByVal HTML As String) As String
    2. Return Regex.Matches(HTML, "<\w+.\w+=""eow-title"".*?title=""(?<title>.*?)"">")(0).Groups("title").Value
    3. End Function


    sollte so funktionieren.
    bekomme einen Error:
    Das angegebene Argument liegt außerhalb des gültigen Wertebereichs.
    Parametername: i

    :(
    mein tipp: developers.google.com/youtube/2.0/developers_guide_dotnet
    APIs sind da um benutzt zu werden!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „slice“ ()