VB .NET  -  Acessando Vídeos do YouTube (revisitado)


 Neste artigo vou mostrar como podemos acessar informações sobre vídeos do YouTube, exibí-las em um DataGridView com opção de acesso aos vídeos via hiperlink, usando a linguagem VB .NET.

Este artigo mostra mais uma (dentre as outras que já publiquei) opção de como acessar informações sobre vídeos publicados no YouTube.

Nessa abordagem vou utilizar a API YoutubeSearch via Nuget para acessar as informações em uma aplicação Windows Forms usando a linguagem VB .NET.

Vamos acessar as informações exibindo-as em um DataGridView onde iremos criar um hiperlink e definir o acesso direto ao vídeo.

Recursos Usados

Criando o projeto Windows Forms

Abra o VS 2015 Community e crie um novo projeto (File-> New Project) usando a linguagem VB .NET e o template Windows Forms Application.

No formulário padrão Form1.vb inclua os controles :

Disponha os controles conforme o leiaute da figura abaixo:

Vamos agora criar uma classe Video em nosso projeto para representar as informações que desejamos obter:

No menu Project clique em Add Class e informe o nome Video e inclua o código abaixo para esta classe:

Public Class Video
    Public Property Title() As String
    Public Property Author() As String
    Public Property Url() As String
    Public Property Thumbnail() As Image
End Class

Após isso vamos dar um Build na Solution.

Definindo o BindingSource do DataGridView

Vamos agora definir a fonte de dados que iremos vincular ao DataGridView.

Selecione o DataGridView e em DataGridView Tasks selecione Choose Data Source e clique em Add Project Data Source;

Na janela Choose a Data Source Type clique em Object e a seguir em Next>:

A seguir em Select the Data Objects expanda o item Youtube_Info, marque o item Vídeo e clique em Finish;

Será criado o BindingSource - VideoBindingSource - vinculando as informações da classe Video ao DataGridView;

Ajustando as colunas do DataGridView Definindo o hiperlink para o campo Url

Vamos agora ajustar as colunas que desejamos exibir no DataGridView.

Selecione o DataGridView e em DataGridView Tasks e clique Edit Columns;

Na lista Selected Columns mova a coluna Thumbnail para o topo e remova a coluna Author.

A seguir selecione a coluna Url e na guia da direita - Bound Column Properties - em ColumnType - selecione :DataGridViewLinkColumn;

A seguir selecione cada columa e defina a sua propriedade Width para um tamanho adequado.

Incluindo a referência à biblioteca YoutubeSearch

No menu Tools clique em Nuget Package Manager e a seguir em Manage Nuget Packages for Solution;

Acione a guia Browse e informe youtubesearch;

Selecione a referência YoutubeSearch.dll e a instale no projeto:

Definindo o código do projeto

Declare os seguintes namespaces no formulário Form1:

Imports System.IO
Imports System.Net
Imports YoutubeSearch

Agora vamos incluir o código no evento Click do botão de comando Buscar conforme abaixo:

Private Sub btnBuscar_Click(sender As Object, e As EventArgs) Handles btnBuscar.Click
        If String.IsNullOrEmpty(txtInfo.Text) Then
            MessageBox.Show("Informe o critério de busca...")
            Return
        Else
            Dim items As New VideoSearch()
            Dim lista As New List(Of Video)()
           For Each item In items.SearchQuery(txtInfo.Text, 1)
              Dim video As Video = New Video()
              video.Title = item.Title
              video.Author = item.Author
              video.Url = item.Url
              Dim imageBytes As Byte() = New WebClient().DownloadData(item.Thumbnail)
              Using ms As New MemoryStream(imageBytes)
                  video.Thumbnail = Image.FromStream(ms)
              End Using
             lista.Add(video)
           Next
          VideoBindingSource.DataSource = lista
        End If
    End Sub

Esse código define uma instância da classe VideoSearch e uma lista de objetos Vídeo e realiza uma consulta - items.SearchQuery() - usando o texto informando na formulário.

A seguir as informações obtidas preenchem a classe Video e a imagem e baixada usando o método DownloadData da classe WebClient.

A seguir as informações são adicionadas a Lista de objetos vídeos.

Vamos agora definir o código para que quando o usuário clicar no conteúdo de uma célula a url do vídeo seja acionada e o vídeo aberto.

Selecione o DataGridView e na janela de propriedades clique no ícone Events e a seguir no evento CellContentClick.

A seguir defina o código abaixo neste evento:

 Private Sub dgvVideos_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvVideos.CellContentClick
        Dim Url As String = dgvVideos.Rows(e.RowIndex).Cells(2).Value.ToString()
        Dim Info As New ProcessStartInfo(Url)
        Process.Start(Info)
    End Sub

Este código é acionando quando o usuário clica em uma célula do datagridview e ela obtém a url do vídeo que esta na terceira coluna (Cells(2)).

A seguir criamos uma instância da classe ProcessStartInfo() passando a URl e executamos o programa associado para abrir o vídeo.

Executando o projeto novamente agora teremos o seguinte resultado:

Clicando em uma célula o vídeo será aberto.

Pegue o projeto aqui : Youtube_Busca.zip (sem as referências)

(Disse Jesus) Na verdade, na verdade vos digo que quem ouve a minha palavra, e crê naquele que me enviou, tem a vida eterna, e não entrará em condenação, mas passou da morte para a vida.
João 5:24

 

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ?

 

  Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

 

Referências:


José Carlos Macoratti