6P by neo 2023-08-15 | favorite | 댓글 1개
  • YouTube의 비디오 다운로드 속도 제한 우회 방법에 대한 기사
  • YouTube의 광고 조회수로부터 수익을 창출하며, 비공식 클라이언트에서 비디오를 시청하거나 다운로드하는 것을 방지하기 위한 제한 조치
  • 속도 제한 우회의 첫 단계는 YouTube API와 통신하여 비디오 파일이 포함된 실제 URL 찾기
  • YouTube는 파일 URL 대부분에서 'n'이라는 특정 파라미터를 사용하며, 이는 base.js 파일에 위치한 JavaScript 알고리즘을 사용하여 변환해야 함. 이 파라미터는 다운로드가 "공식" 클라이언트에서 시작되었는지 확인하는 도전 과제 역할
  • JavaScript 알고리즘은 난독화되어 있고 자주 변경되므로, 이를 이해하기 위해 역공학을 시도하는 것은 비현실적. 해결책은 JavaScript 파일을 다운로드하고, 알고리즘 코드를 추출하여 'n' 파라미터를 전달하여 실행하는 것
  • YouTube는 여전히 비디오의 크기와 길이에 기반한 가변 다운로드 속도 제한 규칙을 적용. 이 제한을 우회하기 위해, 다운로드는 HTTP Range 헤더를 사용하여 여러 작은 부분으로 나눌 수 있음
  • YouTube는 비디오와 오디오 채널을 두 개의 별도 파일로 배포. 마지막 단계는 이 두 채널을 하나의 파일로 결합하는 것으로, 이는 ffmpeg를 사용하여 수행 가능
  • 현재 많은 프로젝트들이 YouTube의 비디오 다운로드를 방지하기 위해 설정된 제한을 우회하기 위해 이러한 기법을 사용. 가장 인기 있는 것은 Python으로 프로그래밍된 yt-dlp (youtube-dl의 포크)이지만, 이는 'n' 파라미터를 변환하기 위한 자체 사용자 정의 JavaScript 해석기를 포함
  • 기사는 과정을 설명하고 코드 스니펫을 제공하여, 초급 소프트웨어 엔지니어들에게 접근 가능하게 함
Hacker News 의견
  • YouTube의 비디오 다운로드 제한을 우회하는 방법에 대한 기사: HTTP Range 헤더를 사용해 다운로드를 작은 부분으로 분할
  • HTTP Range 헤더: 요청할 때마다 다운로드하려는 파일의 어느 부분을 지정할 수 있음
  • 일부 사용자들: 범위 쿼리 매개변수 추가로 제한을 우회하고 전송 속도를 복구할 수 있음
  • YouTube의 제한 해제 보고: 일부 사용자들은 여전히 제한 문제를 겪고 있음
  • YouTube의 작은 변경 사항들: 플랫폼에서 MP4 파일을 다운로드해야 하는 도구에 문제를 일으킴
  • 일부 사용자들의 비디오 품질 차이 발견: YouTube가 압축 아티팩트를 부드럽게 만드는 미묘한 필터를 적용할 수 있음을 제안
  • YouTube의 비디오 배포: 인터넷 연결이 불량한 지역에서도 부드러움을 칭찬받음
  • YouTube의 제한 우회에 대한 윤리적 함의에 대한 논의: 일부는 일반 브라우저 속도를 최적화하는 것이 타당하다고 주장하며, 다른 일부는 YouTube의 자원을 더 사용하는 것이 불공정하다고 느낌
  • 기사에서 언급한 yt-dlp: youtube-dl의 Python 기반 포크로, 매개변수를 변환하기 위한 사용자 정의 JavaScript 해석기를 포함