VB .NET -  Baixando vídeos do Youtube (revisitado)


 Neste artigo eu vou mostrar como podemos baixar vídeos do Youtube em uma aplicação Windows Forms usando a linguagem VB .NET e a biblioteca VideoLibrary.

Existem muitas formas de realizar o download de arquivos da web, incluindo aí arquivos de vídeo do youtube.

Neste artigo eu vou mostrar como usar a biblioteca VideoLibrary (libvideo) de autoria de James Ko que pode ser usada para fazer download de vídeos do youtube.

Além de ser fácil de usar, leve ela é suportada em diversas plataformas como :

Para usar o recurso em seu projeto você pode referenciá-la em seu projeto via Nuget.

Install-Package VideoLibrary   (via Package Manager Console)

Recursos usados:

Nota: Baixe e use a versão Community 2015 do VS ela é grátis e é equivalente a versão Professional.

Criando o projeto no VS Community

Abra o VS Community 2015 e clique em New Project;

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

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

A partir da ToolBox inclua no formulário os seguintes controles:

Disponha os controles conforme o leiaute da figura abaixo:

A seguir no menu Tools, clique em Nuget Package Manager e a seguir em Manage Nuget Packages for Solution;

Clique em Browse e digite libvideo na caixa de busca;

Selecione o item VideoLibrary, marque o projeto e clique no botão Install:

Agora vamos declarar os seguintes namespaces no formulário form1.vb:

Imports VideoLibrary
Imports System.IO

No evento Click do Botão -Download - inclua o código abaixo:

    Private Sub btnDownload_Click(sender As Object, e As EventArgs) Handles btnDownload.Click
        If Not txtUri.Text = String.Empty Then
            If fbdlg1.ShowDialog = DialogResult.OK Then
                Try
                    lblStatus.Text = "Fazendo o download..."
                    Dim video = YouTube.Default.GetVideo(txtUri.Text)
                    File.WriteAllBytes(fbdlg1.SelectedPath & "\" & video.FullName, video.GetBytes())
                    lblStatus.Text = "Download realizado com sucesso..."
                    lbArquivo.Items.Add(fbdlg1.SelectedPath & "\" & video.FullName)
                    lblStatus.Text = ""
                    txtUri.Text = ""
                Catch ex As Exception
                    MessageBox.Show("Erro : " + ex.Message)
                    lblStatus.Text = ""
                End Try
            End If
        Else
            MessageBox.Show("Informe a URI do arquivo Youtube...")
        End If
    End Sub

O programa solicita ao usuário para copiar o link do vídeo para download e escolher a pasta de destino.

O controle FolderBrowserDialog é usado para selecionar a pasta de destino.

Em seguida criamos uma instância do vídeo a ser baixado usando o comando : YouTube.Default.GetVideo(txtUri.Text)

Após essa tarefa usamos o método WriteAllBytes para gravar os dados do arquivo em um arquivo binário. Lembrando que esse método abre o arquivo, escreve nele e depois fecha o arquivo.

Executando o projeto e iremos obter:

1-  Copiando o link do vídeo e selecionando a pasta de destino:

2- Após selecionar a pasta o download é iniciado :

3- Ao final temos a indicação teremos o caminho e nome do arquivo indicado no listbox.

Conferindo na pasta c:\dados vemos o arquivo baixado.

Creio que essa é a abordagem mais simples que podemos fazer para mostrar como baixar um arquivo do youtube usando a biblioteca VideoLibrary.

Você pode melhorar e incrementar o projeto com mais funcionalidades como abrir o arquivo baixado, fazer um download assíncrono usando asycn e await, etc.

Pegue o projeto completo aqui :    Vbnet_Youtube.zip

Não se turbe o vosso coração; credes em Deus, crede também em mim.
Na casa de meu Pai há muitas moradas; se não fosse assim, eu vo-lo teria dito. Vou preparar-vos lugar.

João 14:1,2

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