Youtube API

    • VB.NET

    Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von misbe2010.

      Ich hatte etwas Langeweile und da mich schon immer interessiert hat wie Youtube seine Videos verwaltet und wie man deren API Zugriffe nutzen kann
      habe ich mich an die Arbeit gemacht und eine kleine API Klasse dafür geschrieben, dazu hab ich noch ein Beispiel beigefügt, die Informationen lassen sich leicht über die
      Variablen abrufen.

      VB.NET-Quellcode

      1. Public Class youtubeAPI
      2. Public Username As String
      3. Public Likes As String
      4. Public Dislikes As String
      5. Public Description As String
      6. Public Title As String
      7. Public CacheLink As String
      8. Public tCacheLink As String
      9. Public VideoStream As String
      10. Public Rating As Single
      11. Public Tumbnail As String
      12. Public VideoID As String
      13. Public Tags() As String
      14. Public Länge As String ' HH:MM:SS
      15. Public Tumbnail_client As Net.WebClient
      16. Public RatingAllowed As Boolean
      17. Public Sub New(ByVal youtubelink As String)
      18. Dim parseText As String = DownloadWebpage(youtubelink)
      19. Likes = getContent(parseText, "class=""likes"">", "<")
      20. If Not IsNumeric(Likes) Then Likes = "0"
      21. If Not IsNumeric(Dislikes) Or Dislikes = "" Then Dislikes = "0"
      22. Dislikes = getContent(parseText, "class=""dislikes"">", "<")
      23. Description = getContent(parseText, "<p id=""eow-description"" >", "</p>")
      24. Description = Replace(Description, "<br />", vbNewLine)
      25. Dim sls() As String
      26. Dim ID_LINK As String
      27. If InStr(youtubelink, "&") Then
      28. sls = Split(youtubelink, "&")
      29. ID_LINK = sls(0).Substring(sls(0).LastIndexOf("=") + 1)
      30. Else
      31. ID_LINK = youtubelink.Substring(youtubelink.LastIndexOf("=") + 1)
      32. End If
      33. VideoID = ID_LINK
      34. Dim rqt As System.Net.WebRequest _
      35. = System.Net.WebRequest.Create("http://www.youtube.com/get_video_info?video_id=" & ID_LINK)
      36. Dim streamread As IO.StreamReader
      37. Dim io_streamer As IO.Stream
      38. io_streamer = rqt.GetResponse.GetResponseStream
      39. streamread = New IO.StreamReader(io_streamer)
      40. tCacheLink = URLDecode(streamread.ReadToEnd)
      41. tCacheLink = tCacheLink & "&"
      42. Title = getContent(tCacheLink, "&title=", "&")
      43. Username = getContent(tCacheLink, "&author=", "&")
      44. RatingAllowed = CBool(CInt(getContent(tCacheLink, "&allow_ratings=", "&")))
      45. Tumbnail = getContent(tCacheLink, "&thumbnail_url=", "&")
      46. CacheLink = getContent(tCacheLink, "&fmt_stream_map=", "||")
      47. Tags = getContent(tCacheLink, "&keywords=", "&").Split(",")
      48. Dim secLen As Integer = CInt(getContent(tCacheLink, "&length_seconds=", "&"))
      49. Dim Minuten As Integer = 0, Stunden As Integer = 0
      50. Do While (secLen - 60) > -1
      51. secLen -= 60
      52. Minuten += 1
      53. If Minuten = 60 Then
      54. Minuten -= 60
      55. Stunden += 1
      56. End If
      57. Loop
      58. Dim skstring(2) As String
      59. If secLen < 10 Then skstring(0) = "0" & secLen Else skstring(0) = skstring(0) & secLen
      60. If Minuten < 10 Then skstring(1) = "0" & Minuten Else skstring(1) = skstring(1) & Minuten
      61. If Stunden < 10 Then skstring(2) = "0" & Stunden Else skstring(2) = skstring(2) & Stunden
      62. Länge = skstring(2) & ":" & skstring(1) & ":" & skstring(0)
      63. Dim srs() As String = Split(CacheLink, "|")
      64. CacheLink = srs(1)
      65. VideoStream = srs(0)
      66. Rating = CDbl(Replace(Mid(getContent(tCacheLink, "avg_rating=", "&"), 1, 3), ".", ","))
      67. End Sub
      68. Public Function DownloadTumbnail(ByVal Destinationpath As String) As Boolean
      69. Try
      70. Tumbnail_client = New Net.WebClient
      71. Tumbnail_client.DownloadFileAsync(New Uri(Tumbnail), Destinationpath)
      72. Return True
      73. Catch ex As Exception
      74. Tumbnail_client = Nothing
      75. Return False
      76. End Try
      77. End Function
      78. Private Function URLDecode(ByVal StringToDecode As String) As String
      79. Dim TempAns As String = ""
      80. Dim CurChr As Integer
      81. CurChr = 1
      82. Do Until CurChr - 1 = Len(StringToDecode)
      83. Select Case Mid$(StringToDecode, CurChr, 1)
      84. Case "+"
      85. TempAns = TempAns & " "
      86. Case "%"
      87. TempAns = TempAns & Chr(Val("&h" & _
      88. Mid$(StringToDecode, CurChr + 1, 2)))
      89. CurChr = CurChr + 2
      90. Case Else
      91. TempAns = TempAns & Mid$(StringToDecode, CurChr, 1)
      92. End Select
      93. CurChr = CurChr + 1
      94. Loop
      95. URLDecode = TempAns
      96. End Function
      97. Private Function getContent(ByVal gettext As String, ByVal getit As String, _
      98. Optional ByVal xchar As String = Chr(34)) As String
      99. Dim retval As String = ""
      100. Dim tit_le As Integer = gettext.IndexOf(getit)
      101. tit_le += Len(getit) + 1
      102. Do While Not Mid(gettext, tit_le, Len(xchar)) = xchar
      103. retval = retval & Mid(gettext, tit_le, 1)
      104. tit_le += 1
      105. Loop
      106. Return retval
      107. End Function
      108. Private Function DownloadWebpage(ByVal URL As String) As String
      109. Dim IoStream As System.IO.Stream = Nothing
      110. Dim StrRead As System.IO.StreamReader = Nothing
      111. Try
      112. Dim Request As System.Net.WebRequest _
      113. = System.Net.WebRequest.Create(URL)
      114. IoStream = Request.GetResponse.GetResponseStream
      115. StrRead = New System.IO.StreamReader(IoStream)
      116. Return StrRead.ReadToEnd
      117. Catch ex As Exception
      118. Return vbNullString
      119. Finally
      120. StrRead.Close()
      121. IoStream.Close()
      122. End Try
      123. End Function
      124. End Class
      Dateien
      • youtubeAPI.zip

        (167,71 kB, 513 mal heruntergeladen, zuletzt: )
      Ich finde es gut aber ein paar Kommentare mehr als nur
      'HH:MM:SS
      hätten es doch übersichtlicher gemacht...
      Ich Antworte nach bestem Wissen und Gewissen. Ich übernehme keine Garantie für die Richtigkeit oder Fehlerfreiheit meiner Texte.


      Ich konnte dir helfen?
      - Das ist schön :) Ich würde mich über ein "Hilfreich" freuen ^^