Youtube-Suche+Resultate in Listview

    • VB.NET

    Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von zn-gong.

      Youtube-Suche+Resultate in Listview

      Hallo Community,
      da ich für meinen youtube-Manager u.a. eine Suchfunktion integriert habe, dachte ich, dass es für einige bestimmt interessant wäre zu wissen, wie das ganze funktioniert ;) Alles was man dazu braucht, ist die youtube-api. Hier ist der Link.
      Bevor es losgeht, müsst ihr noch System.Web als Referenz eintragen.

      Ihr braucht eine Textbox (dort wird das Suchwort eingegeben) und einen Button (startet die Suche) und eine Listview (enthält die Resultate)


      'Damit wir eine Suche starten können, müssen wir erstmal ein paar .dll's importieren

      VB.NET-Quellcode

      1. Imports System.Web
      2. Imports Google.GData.Client
      3. Imports Google.GData.Extensions
      4. 'Video-Suche starten
      5. Dim searchTerm As String = TextBox.Text.ToString 'enthält das Suchwort
      6. Dim searchUri As String = HttpUtility.UrlEncode(searchTerm) 'encodiert das Suchwort
      7. Dim url As String = "http://gdata.youtube.com/feeds/videos?q=" + searchUri 'das ist die Such-Url
      8. Dim query As FeedQuery = New FeedQuery("")
      9. Dim service As Service = New Service("sample", "sample") 'hier muss der Service und der Application-Name übergeben werde; hat jedoch keine Bedeutung
      10. query.Uri = New Uri(url)
      11. query.StartIndex = 0
      12. query.NumberToRetrieve = 20 'Anzahl der Resultate, 20 ist die maximale Anzahl pro Anfrage
      13. Dim resultfeed As AtomFeed = service.Query(query) 'hier wird die Suchanfrage gesendet
      14. Dim entry As AtomEntry
      15. 'Listview leeren
      16. ListView.Items.Clear()
      17. 'Ergebnisse in Listview eintragen
      18. For Each entry In resultfeed.Entries
      19. Dim youtubeUrl As String = entry.AlternateUri.Content
      20. URLfinal = youtubeUrl.Replace("&feature=youtube_gdata", "") 'entfernt das "&feature=youtube_gdata" aus dem Link, sodass nur noch der Youtube-Link eingetragen wird
      21. With ListView2.Items.Add(URLfinal)
      22. .SubItems.Add(entry.Title.Text)
      23. End With
      24. Next



      Ich hoffe, es hat einigen geholfen ;)

      Reinster Müll

      dieser koode ist so Falsch wie die Pornos in internet, hier Fehlen erstens die Prozeduren und die Klasse, den imports steht nie und nimmer in der klasse und man kan nichts Ausführen wen es nicht in einer Function oder Sub anweisung drinen ist!
      das ist vielleicht auch kein reinster C&P Code? Bei disem Code finde ich gut, dass man noch überlegen muss...er hat keine Klasse definiert, somit kannst du nicht sagen, dass die Imports Anweisungen in der Klasse sind...Und wenn du das weißt, dann kannst du es ja alles sicher entsprechend einsetzen...
      Ich wollte auch mal ne total überflüssige Signatur:
      ---Leer---
      gibt es hir auch noch was für net4
      die blöse httputilitty classe konte nicht gefunden werden und die GOOGLE api ist nicht für net4 verfügbar :cursing:
      /facepalm

      Stell dein Projekt runter auf .NET 2.0???
      Das muss gar nicht für .NET 4.0 verfügbar sein, du musst das nur vernünftig importieren, und die Verweise korrekt setzen.
      Und beherrsch dich bitte, mach weiter in dem Tonfall, und keiner wird mehr Lust haben, dir zu helfen.

      Edit: Find ich übrigens gut, dass du genau weißt, dass die Pornos im Internet alle falsch sind ^^
      danke schön, ich versuche den Coode mit einen Plug-in in net2 geschrieben zu laden :)
      ich habe nur Visualstudio 2010 mit net4 :)

      Rätzelspaß

      jvbsl schrieb:

      das ist vielleicht auch kein reinster C&P Code? Bei disem Code finde ich gut, dass man noch überlegen muss...er hat keine Klasse definiert, somit kannst du nicht sagen, dass die Imports Anweisungen in der Klasse sind...Und wenn du das weißt, dann kannst du es ja alles sicher entsprechend einsetzen...
      Also, dieser koode ist sehr Falsch, aber denoch mag ist es (wen es nich zu schwer ist) den koode wieder in Ordnung zu bringen, die System.Web mus zum Project hinzugefügt werden und weitere sachen wie Text und Listboxen müßen neu eingesetzt werden!
      PS:Hir noch mahl den C&P Coode

      C&P
      Spoiler anzeigen

      VB.NET-Quellcode

      1. Imports System.WebImports Google.GData.ClientImports Google.GData.ExtensionsPublic Class ListVievToolset Dim URLfinal As String Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'Video-Suche starten Dim searchTerm As String = TextBox1.Text.ToString 'enthält das Suchwort Dim searchUri As String = HttpUtility.UrlEncode(searchTerm) 'encodiert das Suchwort Dim url As String = "http://gdata.youtube.com/feeds/videos?q=" + searchUri 'das ist die Such-Url Dim query As FeedQuery = New FeedQuery("") Dim service As Service = New Service("sample", "sample") 'hier muss der Service und der Application-Name übergeben werde; hat jedoch keine Bedeutung query.Uri = New Uri(url) query.StartIndex = 0 query.NumberToRetrieve = 20 'Anzahl der Resultate, 20 ist die maximale Anzahl pro Anfrage Dim resultfeed As AtomFeed = service.Query(query) 'hier wird die Suchanfrage gesendet Dim entry As AtomEntry
      2. 'Listview leeren ListView1.Items.Clear()
      3. 'Ergebnisse in Listview eintragen For Each entry In resultfeed.Entries Dim youtubeUrl As String = entry.AlternateUri.Content URLfinal = youtubeUrl.Replace("&feature=youtube_gdata", "") 'entfernt das "&feature=youtube_gdata" aus dem Link, sodass nur noch der Youtube-Link eingetragen wird With ListView1.Items.Add(URLfinal) .SubItems.Add(entry.Title.Text) End With Next End SubEnd Class

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „zn-gong“ () aus folgendem Grund: C&P Koode kommt hinzu

      Achte bitte auf deine Rechtschreibung.

      Außerdem sind wir nicht deine Bimbos :pinch:
      Wenn du etwas nicht verstehst, lerne, bis du es verstehst, ansonsten lass es bleiben.

      Edit: Wenn du den Code in eine Zeile packst, kann der auch nicht funktionieren xD
      sry, ich kan nicht wircklich de, und ich übersehe nichts, den bei mir Funktioniert der Coode nach 2 Minuten Perfect, mal ne Andere Frage: ich habe dass Flash Control gefunden und jetzt intressiert mich wie ich dass Einbettungs URL Finden kan und dass Video aus den ListViev dierect in dass FlashControl laden kan damit man es sich auch dierect ansehen kan??
      ich wiß nicht wie der VB-Coode text Functioniert, es ist natürich nicht alles in einer Zeile
      und desweiteren intressiert mich noch wie ich an den Einbettungscoode comme, ich habe Folgendes Probiert

      VB.NET-Quellcode

      1. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim i As Integer = 0 REM:Dass hir ist nuhr si Try REM:Die Error behebung Me.AxShockwaveFlash1.LoadMovie(1, Me.ListView1.SelectedItems.ToString) REM:Dass laden des Videos (Geht nicht) Catch ex As Exception When i = 0 REM:Der Fall fals ein Fehler auftrit MsgBox("Error") REM:Der Fehler Meldungsdialog End Try REM:Die Anweisung wird beendet End Sub


      Samus Aran schrieb:

      Achte bitte auf deine Rechtschreibung.

      Außerdem sind wir nicht deine Bimbos :pinch:
      Wenn du etwas nicht verstehst, lerne, bis du es verstehst, ansonsten lass es bleiben.

      Edit: Wenn du den Code in eine Zeile packst, kann der auch nicht funktionieren xD
      [Mein Aktueller Versuch]
      ich versuche jetzt den String so lange zu teilen bis ich die Video ID Rausbekomme und setze sie dan mit der load merhode in dass Flash Control ein

      VB.NET-Quellcode

      1. Dim i As Integer = 0 REM:Dass hir ist nuhr si Try REM:Die Error behebung Dim emailparts() As String Dim user As String Dim provider As String emailparts = "http://www.youtube.com/watch?v=Om4uhGz9HOY&feature=grec_index".Split("=".ToCharArray, 2) If emailparts.Length > 2 Then user = emailparts(0) provider = emailparts(1) Me.xxxx = (provider) SyncLock Me Dim emailparts1() As String Dim user1 As String Dim provider1 As String emailparts1 = Me.xxxx.Split("&".ToCharArray, 2) If emailparts.Length = 2 Then user1 = emailparts(0) provider1 = emailparts(1) Me.bisender = (user1) Else ' Email address is not valid. The expected format is user@provider.* user1 = String.Empty provider1 = String.Empty End If End SyncLock Else ' Email address is not valid. The expected format is user@provider.* user = String.Empty provider = String.Empty End If Me.AxShockwaveFlash1.Movie = ("http://www.youtube.com/v/" & Me.bisender & "&hl=de_DE") Debug.WriteLine("Prozedure Complete", "InitWarpar") Catch ex As Exception When i = 0 REM:Der Fall fals ein Fehler auftrit MsgBox("Error") REM:Der Fehler Meldungsdialog End Try REM:Die Anweisung wird beendet

      PS:Der Coode ist in Oreginal nicht in einer Zeile

      [/expander]

      PS:wie kan man den Expander einen Titek geben????

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „zn-gong“ ()

      hi, kan ich mir mahl den SurceCoode deinens Youtube Programms ansehen

      mein coode siht in Moment so aus (Functioniert leider nicht so ganz!!!! :cursing: :cursing: :cursing: :cursing: :cursing: :cursing: :cursing: :cursing: :cursing: :cursing: :cursing: :cursing: :cursing: :cursing: :cursing: :cursing: :cursing: :cursing: :cursing: )

      VB.NET-Quellcode

      1. Imports System.WebImports Google.GData.ClientImports Google.GData.ExtensionsPublic Class ListVievToolset Dim URLfinal As String Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'Video-Suche starten Dim searchTerm As String = TextBox1.Text.ToString 'enthält das Suchwort Dim searchUri As String = HttpUtility.UrlEncode(searchTerm) 'encodiert das Suchwort Dim url As String = "http://gdata.youtube.com/feeds/videos?q=" + searchUri 'das ist die Such-Url Dim query As FeedQuery = New FeedQuery("") Dim service As Service = New Service("sample", "sample") 'hier muss der Service und der Application-Name übergeben werde; hat jedoch keine Bedeutung query.Uri = New Uri(url) query.StartIndex = 0 query.NumberToRetrieve = 20 'Anzahl der Resultate, 20 ist die maximale Anzahl pro Anfrage Dim resultfeed As AtomFeed = service.Query(query) 'hier wird die Suchanfrage gesendet Dim entry As AtomEntry
      2. 'Listview leeren ListView1.Items.Clear()
      3. 'Ergebnisse in Listview eintragen For Each entry In resultfeed.Entries Dim youtubeUrl As String = entry.AlternateUri.Content URLfinal = youtubeUrl.Replace("&feature=youtube_gdata", "") 'entfernt das "&feature=youtube_gdata" aus dem Link, sodass nur noch der Youtube-Link eingetragen wird With ListView1.Items.Add(URLfinal) .SubItems.Add(entry.Title.Text) End With Next End Sub Dim xxxx As String Dim bisender As String Sub Thrading1() Dim i As Integer = 0 REM:Dass hir ist nuhr si Try REM:Die Error behebung Dim emailparts() As String Dim user As String Dim provider As String emailparts = "http://www.youtube.com/watch?v=Om4uhGz9HOY&feature=grec_index".Split("=".ToCharArray, 2) If emailparts.Length > 2 Then user = emailparts(0) provider = emailparts(1) Me.xxxx = (provider) SyncLock Me Dim emailparts1() As String Dim user1 As String Dim provider1 As String emailparts1 = Me.xxxx.Split("&".ToCharArray, 2) If emailparts.Length = 2 Then user1 = emailparts(0) provider1 = emailparts(1) Me.bisender = (user1) Else ' Email address is not valid. The expected format is user@provider.* user1 = String.Empty provider1 = String.Empty End If End SyncLock Else ' Email address is not valid. The expected format is user@provider.* user = String.Empty provider = String.Empty End If Me.AxShockwaveFlash1.Movie = ("http://www.youtube.com/v/" & Me.bisender & "&hl=de_DE") Debug.WriteLine("Prozedure Complete", "InitWarpar") Catch ex As Exception When i = 0 REM:Der Fall fals ein Fehler auftrit MsgBox("Error") REM:Der Fehler Meldungsdialog End Try REM:Die Anweisung wird beendet End Sub Dim t As New System.Threading.Thread(AddressOf Me.Thrading1) Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Try SyncLock t If t.IsAlive = True Then Debug.WriteLine("Threadh in Runtime", "Threading System") Else Me.t.Start() End If End SyncLock
      4. Catch ex As Exception Debug.WriteLine(ex.Message) Me.Thrading1() Debug.WriteLine("Threading Function wird Manuell ausgeführt", "Thredhing System") Finally Debug.WriteLine("Finally") End Try End SubEnd Class
      ich will aus den ListViev1 dass Aktuell Ausgewälte video analysieren, um dan die Video ID Herauszubekommen, geht dass?