Skip to content

dudrt/Youtube_API

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 

Repository files navigation

Youtube API

Código em python utilizando Flask de uma API que permite o download de musicas do Youtube.
Esta API tem como objetivo a fácil integração em aplicativos e sites, possuindo funções simples capazes de se adaptar a diferentes casos.

Caso você esteja a procura de uma API já pronta para o uso em projetos próprios que não necessitam de velocidade de resposta, sinta-se livre para utilizar a minha.
If you are looking for an API ready for use in your own projects that do not require speed of response, feel free to use my.

https://apiyoutube.eduardoroth1.repl.co

  • Suas funcionalidades estarão listadas a baixo.

NÃO ESTÁ MAIS FUNCIONANDO!

A API estava hospedada no RepliIt ,porém a partir do dia 1/1/2024 ela parou de aceitar hospedagem de Bots e APIs, estou procurando outro local para hospeda-la, porém sem data definida de voltar.

Explicações iniciais

Até o presente momento (11/10/2023), a API está funcionando, ela pode apresentar erros devido a futuras atualizações da biblioteca utilizada.
A API disponibilizada a cima está livre para o uso, porém a única função que possui bloqueio para terceiros é a Parâmetros de pesquisa. por motivos que a API oficial do Youtube possui limite diário de 100 requests.

O objetivo desta API é ser uma aplicação simples e de fácil integração em diferentes cenários. Tem também como objetivo a fácil manutenção e modificação de acordo com as necessidades.

A ideia principal é a hospedagem da API no Replit, caso você deseje hospedar sua própria API no Replit, esteja ciente de que encontrará algumas dificuldades, veja a seção Hospedagem da API. A hospedagem da mesma é possivel em diferentes sites, não se esqueça de fazer as modificações necessárias.

Funcionalidades

Os tópicos abordados serão:

Instalação das ferramentas

Este projeto necessita de algumas bibliotecas para funcionar, elas são:

Todas as bibliotecas citadas possuem documentação nos links disponibilizados.
É possivel que problemas ocorram com a biblioteca Pytube, principalmente se o projeto estiver sendo feito no Replit, caso isso aconteça, vá na seção Hospedagem da API, lá poderá ser encontrado mais detalhes.

Remoção de audios baixados

Toda vez que a API é iniciada, a função delete_audio() é chamada para excluir a pasta que contém os arquivos de audio. Esta função é necessária para que não acabe o espaço disponível. Não é necessária a criação da pasta novamente, a mesma é recriada quando o primeiro arquivo for baixado.

Parâmetros de pesquisa

A função buscar_parametros() não é necessária para o download dos arquivos, mas é um sistema de pesquisa integrado na API. Esta função tem como objetivo mandar uma request para a API oficial do Youtube com o algo que o usuário deseja pesquisar, seja o nome do vídeo, canal, palavras chaves, etc. Logo após, ela faz o tratamento desses dados e devolve como resposta da requisição inicial, um JSON com informações dos 10 primeiros vídeos encontrados, contendo:

  • O link com qualidade média das Thumbnails.
  • Nome do Canal.
  • Titulo do Vídeo.
  • ID do vídeo.

Duvidas podem ser geradas quanto a definição de "ID do vídeo", esta informação é a sequência de caracteres que correspondem ao vídeo e que ficam localizadas no final de toda URL de vídeos, após a rota /watch seguido de ?v= e então o ID, exemplo:

Para a utilização desta função, é necessário o cadastro no site da API do Youtube duas keys são necessárias, a primeira vai nas configurações da API, onde está escrito developer_key coloque sua developer key.

A segunda key vai na URL para a request, local que está escrito key coloque a sua request key.

Exemplo de requisição e resposta

Requisição:

  • https://sua_url_aqui/old town road

Resposta:


Niveis de qualidade

A função getids() tem como objetivo retornar um JSON contendo:

  • Qualidade do audio em kbps.
  • ID.
    A informação ID deve ser utilizada na próxima função. Audios com qualidades mais altas necessitam de um maior tempo para o download e envio.
    Para Utilizar esta função, deve-se escrever a rota /getids após a URL principal e então adicionar ? no final para que o código conseguida fazer o tratamento dos dados, após isso deve ser passado o link inteiro do vídeo desejado, note que é possível fazer modificações básicas para que o código aceite apenas o ID do vídeo:

Exemplo de requisição e resposta

Requisição

Resposta


Download por ID

Esta funcionalidade necessita que você passe dois parametros,primeiramente você passa a rota /down e então em seguida vem os parametros, o primeiro é o ID da qualidade desejada que você encontra em Niveis de qualidade e o segundo é o link do vídeo que você deseja baixar.

Exemplo de requisição e resposta

Requisição:

Resposta:

  • Arquivo MP3 que contém o audio do video escolhido.

Download qualidade alta

Esta funcionalida serve para fazer o download com a maior qualidade disponivel, em alguns poucos videos, a qualidade mais alta, 128kbps, não está disponivel, neste caso, o código mostra no console um aviso e tenta baixar na menor qualidade possivel,pois todos os videos possuem esta opção de download.
Basta colocar a URL principal, a rota /downalto seguido de ? e então o link completo do vídeo.

Exemplo de requisição e resposta

Requisição:

Resposta:

  • Arquivo MP3 que contém o audio do video escolhido.

Download qualidade media

Esta funcionalida serve para fazer o download com a qualidade média, em alguns poucos videos, a qualidade média, 70kbps, não está disponivel, neste caso, o código mostra no console um aviso e tenta baixar na menor qualidade possivel,pois todos os videos possuem esta opção de download.
Basta colocar a URL principal, a rota /downmedio seguido de ? e então o link completo do vídeo.

Exemplo de requisição e resposta

Requisição:

Resposta:

  • Arquivo MP3 que contém o audio do video escolhido.

Download qualidade baixa

Esta funcionalida serve para você fazer o download com a menor qualidade disponivel 48kbps, Basta colocar a URL principal, a rota /downbaixo seguido de ? e então o link completo do vídeo.

Exemplo de requisição e resposta

Requisição:

Resposta:

  • Arquivo MP3 que contém o audio do video escolhido.

Hospedagem da API

A biblioteca Pytube foi feita para fazer o download de vídeos do Youtube, porém devido a constantes atualizações de código do Youtube esta prática acaba ficando mais dificil, então é possivel que ao fazer o download padrão da biblioteca não funcione, segue a baixo uma maneira de tentar solucionar o problema.



Replit

Caso o projeto esteja sendo feito no Replit, é recomendado que seja começado com o template Flask, pois ele já possui as configurações iniciais necessárias para o acesso da API remotamente por toda a internet.
Logo após, faça o passo a cima caso não funcione o download padrão e então vá em Files e clique em Show hidden files, irá aparecer novos arquivos antes escondidos.
Encontre o arquivo replit.nix e modifique o deps como está na imagem a baixo.

About

Código em python utilizando Flask de uma API que permite o download de musicas do Youtube.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages