6 pontos por GN⁺ 2023-08-15 | 1 comentários | Compartilhar no WhatsApp
  • 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

 
GN⁺ 2023-08-15
Comentários do Hacker News
  • Artigo sobre como contornar a limitação de download de vídeos do YouTube: usar o cabeçalho HTTP Range para dividir o download em pequenas partes
  • Cabeçalho HTTP Range: permite especificar qual parte do arquivo você quer baixar a cada requisição
  • Alguns usuários: adicionar parâmetros de consulta de intervalo pode contornar a limitação e recuperar a velocidade de transferência
  • Relatos de remoção da limitação no YouTube: alguns usuários ainda estão enfrentando problemas de limitação
  • Pequenas mudanças no YouTube: causam problemas para ferramentas que precisam baixar arquivos MP4 da plataforma
  • Alguns usuários notaram diferenças na qualidade do vídeo: sugerindo que o YouTube pode aplicar um filtro sutil para suavizar artefatos de compressão
  • Distribuição de vídeo do YouTube: elogiada pela fluidez até em regiões com conexão de internet ruim
  • Discussão sobre as implicações éticas de contornar a limitação do YouTube: alguns argumentam que faz sentido otimizar a velocidade normal do navegador, enquanto outros acham injusto consumir mais recursos do YouTube
  • yt-dlp mencionado no artigo: fork em Python do youtube-dl, incluindo um interpretador JavaScript personalizado para transformar parâmetros