- Artigo sobre como contornar a limitação de velocidade de download de vídeos do YouTube
- O YouTube monetiza por meio de visualizações de anúncios e aplica medidas de restrição para impedir que vídeos sejam assistidos ou baixados por clientes não oficiais
- O primeiro passo para contornar a limitação de velocidade de download é se comunicar com a API do YouTube para encontrar a URL real que contém o arquivo de vídeo
- O YouTube usa um parâmetro específico chamado
n na maioria das URLs de arquivo, que precisa ser transformado usando um algoritmo JavaScript localizado no arquivo base.js. Esse parâmetro funciona como um desafio para verificar se o download foi iniciado por um cliente "oficial"
- Como o algoritmo JavaScript é ofuscado e muda com frequência, tentar entendê-lo por engenharia reversa é impraticável. A solução é baixar o arquivo JavaScript, extrair o código do algoritmo e executá-lo passando o parâmetro
n
- O YouTube ainda aplica regras variáveis de limitação de velocidade de download com base no tamanho e na duração do vídeo. Para contornar essa limitação, o download pode ser dividido em várias partes pequenas usando o cabeçalho HTTP Range
- O YouTube distribui os canais de vídeo e áudio em dois arquivos separados. A etapa final é combinar esses dois canais em um único arquivo, o que pode ser feito com
ffmpeg
- Atualmente, muitos projetos usam essas técnicas para contornar as restrições configuradas para impedir o download de vídeos do YouTube. O mais popular é o
yt-dlp (um fork do youtube-dl programado em Python), mas ele inclui seu próprio interpretador JavaScript personalizado para transformar o parâmetro n
- O artigo explica o processo e fornece trechos de código, tornando-o acessível para engenheiros de software iniciantes
1 comentários
Comentários do Hacker News
yt-dlpmencionado no artigo: fork em Python doyoutube-dl, incluindo um interpretador JavaScript personalizado para transformar parâmetros