VB .NET - Acessando e executando vídeos do YouTube com a API YouTube SDK


 Neste artigo eu vou mostrar como podemos acessar localmente ou remotamente vídeos do YouTube, e, executá-los usando a API YouTube SDK em uma aplicação Windows Forms com a linguagem VB .NET.


Para poder acessar vídeos do YouTube
eu vou usar a API Youtube SDK. Será necessário também possuir uma chave de desenvolvedor do YouTube.

 

Acompanhe o artigo e veja passo a passo como acessar exibir vídeos do YouTube usando VB .NET.

Recursos usados:

Preparando o ambiente

Antes de iniciar o projeto no Visual Studio vamos preparar o ambiente disponibilizando os recursos necessários para o desenvolvimento da aplicação.

A primeira coisa que você deve fazer é baixar a API YouTube SDK ( Software Development Kit ) neste link: https://code.google.com/p/google-gdata/downloads/list

Ao acessar a página selecione a versão mais atual : YouTube_SDK_2.2.0.0.msi

Após baixar, ao executar a instalação você verá a seguinte janela:

Apenas confirme e prossiga até o final, lembrando do local onde os arquivos foram instalados, pois teremos que referenciá-los em nosso projeto.

Nota: Para se familiarizar com a API acesse a documentação no link: https://developers.google.com/youtube/2.0/developers_guide_protocol?csw=1

Após essa etapa teremos que obter uma chave de desenvolvedor para o Youtube, e, fazemos isso acessando esse link: http://code.google.com/apis/youtube/dashboard/gwt/index.html

Você verá a janela abaixo onde deverá informar os seus dados e efetuar o registro:

A seguir defina o nome da aplicação que irá criar para obter a chave do desenvolvedor:

Após encerrar essa etapa copie a sua chave de desenvolvedor para poder usá-la mais adiante na aplicação.

Criando o projeto no Visual Studio 2013 Express for windows desktop

Abra o VS 2013 Express for windows desktop e clique em New Project;

Selecione a linguagem Visual Basic e o template Windows Forms Application;

Informe o nome Videos_YouTube e clique no botão OK;

Antes de prosseguir vamos incluir um outro formulário no projeto chamado frmProcurar que será usado para o usuário definir o critério para buscar o vídeo.

No menu PROJECT clique em Add Windows Forms e informe o nome frmProcurar. A seguir inclua os seguintes controles no formulário:

Disponha os controles conforme o leiaute da figura abaixo:

No evento Click do botão OK inclua o código abaixo:

Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click
        Me.DialogResult = DialogResult.OK
        Me.Hide()
End Sub

No evento Click do botão Cancelar inclua o código abaixo:

Private Sub btnCancelar_Click(sender As Object, e As EventArgs) Handles btnCancelar.Click
        Me.DialogResult = DialogResult.Cancel
        Me.Hide()
End Sub

Pronto ! É tudo que precisamos nesse formulário.

Vamos agora incluir uma referência ao componente Flash Player -> AxShockwaveFlash no projeto.

Clique com o botão direito sobre TOOLBOX e a seguir clique em Choose Items;

Na janela Choose Toolbox Items localize o componente AxShockwaveFlash (se não localizar você deverá instalar o Flash Player no seu computador)

A seguir vamos referenciar os arquivos da API YouTube SDK no projeto.

No menu PROJECT clique em Add Reference;

A seguir clique na guia Browse, e, localize onde você instalou os arquivos do YouTube SDK;

Selecione os arquivos na pasta Samples conforme abaixo e clique no botão Add;

Agora vamos continuar com o nosso projeto selecionando o formulário form1.vb e incluindo a partir da TOOLBOX os seguintes controles:

Disponha os controles conforme o leiaute da figura abaixo:

Agora vamos definir o código do formulário  form1.vb iniciando com a declaração dos namespaces antes do início do formulário:

'Imports Necessarios para o Youtube e Google Libraries
Imports
Google.YouTube
Imports
Google.GData.YouTube
Imports
Google.GData.Client
Imports
Google.GData.Extensions.MediaRss

A seguir no início do formulário (após a declaração Public Class Form1) vamos declarar as variáveis abaixo que iremos usar no projeto:

'Cria um novo objeto YouTubeRequestSettings para armazenar a App e a Key

Private strSettings As YouTubeRequestSettings

'Novo objeto YouTubeRequest para armazenar as configurações do objeto

Private strRequest As YouTubeRequest

'Array para manipuar os IDs dos Vídeos

Private arrVideoIDs() As String

'Nome aplicação

Const strAppName = "Videos_Youtube"

'Seu código de desenvolvedor Key

Const strKey = "AI39si6DBFpn0wMAE informe a sua chave M4LIoMAv_muycqIV2U71DlwFwAwrPFKzw"

No evento Load do formulário form1.vb inclua o código abaixo que cria um novo requeste baseado nos detalhes definidos no objeto YouTubeRequestSettings usando o nome da sua aplicação e a sua chave de desenvolvedor do YouTube:

 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Try
            'Armazenar detalhes e nome da APP
            strSettings = New YouTubeRequestSettings(strAppName, "Vídeos Youtube", strKey)
            'Cria um novo request baseado em meu Detalhes acima
            strRequest = New YouTubeRequest(strSettings)
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

 

No link Click do menu Procurar no YouTube inclua o código abaixo que irá procurar o vídeo no YouTube:

  Private Sub ProcurarNoYouTubeToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ProcurarNoYouTubeToolStripMenuItem.Click
        'limpa o listbox
        lbResultados.Items.Clear()
        'Inicializa a formulário para procurar vídeos no youtube
        Dim frmProc As New frmProcurar
        'Se a procura foi valida então obtem a string inforamda no formulário
        If frmProc.ShowDialog = DialogResult.OK Then
            'Texto de critério do formulário frmProcurar
            Dim strQuery As String = frmProc.txtProcurar.Text
            'Cria um serviço YouTube
            Dim ytsService As YouTubeService = New YouTubeService(strAppName, strKey)
            'Procura no Youtube
            Dim urlEntryUrl As Uri = New Uri("http://gdata.youtube.com/feeds/api/videos?q=" + strQuery)
            'Obtem os resultados
            Dim fqResults As FeedQuery = New FeedQuery()
            Try
                fqResults.Uri = urlEntryUrl
                'Obtem a lista de vídeos
                Dim vidFeed As Feed(Of Video) = New Feed(Of Video)(ytsService, fqResults)
                'contador
                Dim intCounter As Integer
                'Para cada vídeo encontrado
                For Each vidEntry As Video In vidFeed.Entries
                    'exibe o titulo na listbox
                    lbResultados.Items.Add(vidEntry.Title.ToString)
                    'armazena no array
                    ReDim Preserve arrVideoIDs(intCounter)
                    'pega o ID do vídeo
                    arrVideoIDs(intCounter) = vidEntry.Id.ToString
                    'Extrai somente o ID do vídeo
                    arrVideoIDs(intCounter) = arrVideoIDs(intCounter).Substring(arrVideoIDs(intCounter).LastIndexOf(":") + 1)
                    intCounter += 1
                Next
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
        End If
    End Sub

Nesse código estamos realizando uma busca no YouTube, anexando o nosso texto informando no formulário frmProcurar na caixa de texto txtProcurar na URL http://gdata.youtube.com/feeds/api/videos?q=.

Teremos assim um conjunto de resultados, que precisamos percorrer extrair cada item obtendo o nome do vídeo e exibindo na listbox- lbResultados.

No link Click do menu Procurar Localmente - PC inclua o código abaixo que irá procurar o vídeo no seu computador:

 Private Sub ProcurarLocalmentePCToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ProcurarLocalmentePCToolStripMenuItem.Click
        'nome do arquivo
        Dim strFileName As String 'FileName
        'Filtro para o OpenFileDialog (ofd1)
        ofd1.Filter = "FLA Files|*.fla|ShockWave Files|*.swf|All Files|*.*"
        Try
            'Procura no PC pelos arquivos
            strFileName = ofd1.FileName
            If ofd1.ShowDialog = Windows.Forms.DialogResult.OK Then 'se encontrou
                flashmedia.LoadMovie(0, strFileName) 'Load
                flashmedia.Play() 'Play
                ExecutarToolStripMenuItem.Text = "Pausar" 'Altera 'Play' para 'Pause'
            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

 

Agora no evento SelectedIndexChanged do controle ListBox defina o código abaixo que irá obter o ID do vídeo selecionado:

 Private Sub lbResultados_SelectedIndexChanged(sender As Object, e As EventArgs) Handles lbResultados.SelectedIndexChanged
        'Obtem o´vídeo selecionado
        Try
            Dim videoID As String = "http://www.youtube.com/watch?v=" & arrVideoIDs(lbResultados.SelectedIndex)
            videoID = videoID.Replace("/watch?v=", "/v/")
            flashmedia.Movie = videoID
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

A grande sacada é identificar o vídeo. A URL completa de um vídeo do YouTube se parece com algo como:  http://www.youtube.com/watch?v=tGWVVdVbnJc.

Agora, o último texto após v= é o ID do vídeo. O ID é o que precisamos para executar o vídeo, daí a nossa manipulação de seqüência de nossa matriz.

Uma vez que temos IDs próprios e os nomes listados, podemos reproduzir o vídeo.

No evento Click da opção do menu Vídeo-> Executar defina o código para alterar o texto quando executa a mídia:

 Private Sub ExecutarToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ExecutarToolStripMenuItem.Click
        Try
            If ExecutarToolStripMenuItem.Text = "Executar" Then 'Tocar
                flashmedia.Play()
                ExecutarToolStripMenuItem.Text = "Pausar" 'Pausar
            Else
                ExecutarToolStripMenuItem.Text = "Executar" 'Tocar
            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

Executando o projeto e clicando na opção Procurar no YouTube:

Teremos o formulário frmPrincipal exibido para informar o critério de busca na caixa de texto txtProcurar:

Informando um critério e clicando no botão OK será feita uma busca no Youtube e os resultados serão exibidos no ListBox conforme abaixo:

Basta selecionar o vídeo e executar.

Pegue o projeto completo aqui:  Videos_Youtube.zip

Na palavra da verdade, no poder de Deus, pelas armas da justiça, à direita e à esquerda,
Por honra e por desonra, por infâmia e por boa fama; como enganadores, e sendo verdadeiros;
Como desconhecidos, mas sendo bem conhecidos; como morrendo, e eis que vivemos; como castigados, e não mortos;
Como contristados, mas sempre alegres; como pobres, mas enriquecendo a muitos; como nada tendo, e possuindo tudo.

2 Coríntios 6:7-10

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 ?

  Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

Referências:


José Carlos Macoratti