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.

Reproduzindo vídeos do Youtube com C#
Gunnar Correa
Gunnar Correa
29/09/2020 4 minutos

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

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

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).

Visual Studio 2013 Choose Items

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

Visual Studio 2013 COM Components

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.

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:

plaintext
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

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:

plaintext
 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:

plaintext
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

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

Até a próxima!

Nossos cursos

Nossos cursos
Gunnar Correa
Gunnar Correa

Deixe um comentário

Para deixar um comentário, é necessário estar autenticado. Crie uma conta gratuita na SatellaSoft.

Entrar ou Registrar-se