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.

 Escrevendo testes automatizados com PHPUnit

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

 

 

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.

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 Choose Items... (encontrar itens).

 

Na janela que abrirá, clique na aba COM Components, marque a opção Shockwave Flash Object e clique em OK.

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

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.

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.

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

Até a próxima!