Reproduzindo vídeos do Youtube com C#

Neste artigo você confere passo a passo de como criar um Player de vídeos do Youtube usando o Visual Studio.

Publicado em

Neste artigo será criado uma aplicação no Visual Studio 2013 utilizando a linguagem C# com .NET Framework 4.0, que tem por objetivo reproduzir vídeos do Youtube sem a necessidade de um navegador de Internet.

Para reproduzir o vídeo do Youtube será necessário apenas do componente Shockwave Flash Object e que o vídeo a ser reproduzido permita acesso externo do Youtube. Mas antes de começar desenvolver o projeto, é importante entender como tudo isto basicamente funciona.

Quando o usuário acessa o Youtube.com e abre um vídeo, o servidor devolve apenar alguns pacotes de informações para o navegador, que por sua vez utiliza de uma aplicação externa para poder interpretar e apresentar os pacotes recebidos, neste caso a aplicação é o Shockwave Flash. O Shockwave nada mais é do que um complemento que favorece a reprodução de conteúdo de multimídia, tais como: Jogos, Vídeos, Muitos entre outros.

Para saber mais sobre o Shockwave Flash acesse: http://www.techtudo.com.br/noticias/noticia/2014/08/o-que-e-shockwave-flash.html

 

Troca de pacotes servidor e navegador/shockwave
Troca de pacotes servidor e navegador/shockwave

 

Agora que já entendemos como nossa aplicação vai se comportar, crie um novo projeto no Visual Studio, utilizando a linguagem C#, Windows Form Application, escolha o .NET Framework 4.0 e atribua o nome de sua preferência.

Visual Studio 2013 novo projeto
Visual Studio 2013 novo projeto

Após a criar o projeto, será necessário adicionar o componente Shockwave Flash Object aos itens da Toolbox. Para adicionar o novo componente clica com o botão direito do mouse sobre qualquer parte da Toolbox, em seguida clique em ChooseItems... (encontrar itens).

Visual Studio 2013 Choose Items
Visual Studio 2013 Choose Items

 

Na janela que abrirá, clique na aba COMComponents, marque a opção ShockwaveFlashObject e clique em OK.

Visual Studio 2013 COM Components
Visual Studio 2013 COM Components

Após adicionar o componente ele estará na Toolbox. Arraste um Button, Textbox e o novo componente ShockwaveFlashObject para o formulário. Personalize o formulário a seu gosto, para o nosso exemplo ele ficou organizado conforme mostra a imagem abaixo.

Visual Studio 2013 Organizar componentes
Visual Studio 2013 Organizar componentes

Altere as propriedades dos componentes conforme mostra abaixo.

Componente

Name

Text

Shockwave Flash Object

sfoPlayer

 

Textbox

txtEndereco

 

Button

btnCarregar

Carregar

 

Com o formulário configurado vamos começar a criar nossos códigos, mas antes disso vamos fazer um pequeno teste, e nele você poderá perceber um problema que devemos tratar.

De um duplo clique no botão btnCarregar para abrir o método Click e insira o código abaixo, note que ele acompanha uma URL do youtube, mas perceba bem, está URL não tem o watch?v, isto porque o Player necessita apenas do caminho do vídeo e não da página correspondente ao vídeo.

Note o vídeo original: https://www.youtube.com/watch?v=Dqt20hTlTO8

Agora o vídeo adaptado: https://www.youtube.com/v/Dqt20hTlTO8

Abra os dois Links no seu navegador para entender melhor como o player necessita carregar. O último parâmetro autoplay=1 informa que o vídeo deve iniciar assim que o vídeo for aberto.

Código 01:

private void btnCarregar_Click(object sender, EventArgs e)
{
	sfoPlayer.Movie = "https://www.youtube.com/v/Dqt20hTlTO8&;autoplay=1";
}

Rodando a aplicação o vídeo é carregado e já é iniciado no controle do Shockwave.

Visual Studio 2013 Teste reprodução 1
Visual Studio 2013 Teste reprodução 1

Basicamente só necessitamos passar a URL para a propriedade Movie do controle. A propriedade Movie é a responsável por carregar os meta-dados ao Player, porém como dito anteriormente, vídeos que não permitem reprodução fora do Youtube vão falhar.

Agora crie um método como mostra o código abaixo, leia atentamente os comentários para entender como ele foi construído e seu comportamento. Não há segredo algum, basicamente remover e inserimos string.

Código 02:

 private string RetornarURL(string URL)
{
	/*
	Verificamos se exite a string watch?, caso exista irá retornar 1
	*/
	if (URL.IndexOf("watch?") > 0)
	{

		 URL = URL.Replace("watch?", ""); //Trocamos 'watch?' por nada (vázio/string.empty)
               	 URL = URL.Replace("=", "/"); //Trocamos '=' por '/', isto é uma regra do Youtube, estamos apenas seguindo
                	URL = URL + "&autoplay=1"; //Para que o vídeo inicie automaticamente, adicionamos '&autoplay=1'.
	}
	return URL;
}

Para finalizar volte ao método Click do btnCarregar e insira o código abaixo, veja que ele utiliza o método criado acima.

Código 03:

private void btnCarregar_Click(object sender, EventArgs e){
      string URL = "";
      URL = RetornarURL(txtEndereco.Text); //Passamos o valor do txtEndereco para o médodo.

      sfoPlayer.Movie = URL; //Passamos para a propriedade o valor da nova URL.

}

Rode sua aplicação e insira a URL de um vídeo de sua preferência, para este teste foi utilizado: https://www.youtube.com/watch?v=C9slkeFXogU.

Visual Studio 2013 teste reprodução 2
Visual Studio 2013 teste reprodução 2

E assim finalizamos o nosso artigo, ao som de Jack Ü, caso houver dúvidas deixem nos comentários..

Até a próxima!

 

Gunnar Correa
Gunnar Correa

Autodidata, Graduado em Desenvolvimento Web, Especialista em Tecnologias na Educação e Pós-graduando em Segurança da Informação. Começou seus estudos na área de programação quando era criança, e atualmente, está estudando desenvolvimento de jogos. Fundador da SatellaSoft, criado em 2009 com o intuito de compartilhar conhecimento de forma gratuita e inédita.

Todos os nossos cursos em promoção
Todos os nossos cursos em promoção

Webstories

Todos os nossos cursos em promoção


Deixe um comentário
Aguarde...
Todos os nossos cursos em promoção