본문 바로가기
트렌드 이슈 · 토픽

YouTube 대역 제한을 무시하고 동영상을 빠르게 다운로드하는 방법은?

by 두우우부 2023. 8. 16.
반응형

 

'youtube-dl'이나 'yt-dlp' 같은 다운로드 도구를 사용하지 않고 YouTube에서 동영상을 다운로드하려고 하면 강렬한 대역 제한이 발동하여 10 분의 동영상을 다운로드하는 데 약 6 시간 반이나 걸려 버립니다. 이러한 제한을 다운로드 툴이 어떻게 돌파하고 있는지에 대해서, 해커 베다드 씨가 해설하고 있습니다. 

How They Bypass YouTube Video Download Throttling | 0x7D0

How They Bypass YouTube Video Download Throttling

Have you ever tried to download videos from YouTube? I mean manually without relying on software like youtube-dl, yt-dlp or one of “these” websites. It’s much more complicated than you might think.

blog.0x7d0.dev



동영상 다운로드의 첫 단계는 동영상에 액세스 하기 위한 실제 URL을 찾는 것입니다. 이 단계에서는 YouTube API의 엔드포인트인 "/youtubei/v1/player"에 액세스 하면 됩니다. 

제목, 상세 설명, 썸네일 외에 동영상 해상도별 URL을 얻을 수 있습니다.



다만, 여기에서 취득한 URL을 사용해 영상을 다운로드하려 하면, 아래 그림과 같이 전송 속도가 40kB/s ~ 70kB/s로 억제되어 버려, 10분의 무비를 다운로드하는데 약 6시간 반이 걸립니다. 웹상에서 시청할 때는 그렇게 많이 기다리지 않기 때문에, 어떠한 제한이 걸려 있는 것이 분명합니다.



베다드 씨에 의하면, 무비의 URL의 파라미터 중에 「n」라는 파라미터가 존재하여, YouTube는 이 「n」을 이용해 공식 클라이언트 여부를 구별하고 있다고 합니다. 공식 클라이언트인 경우 「n」을 특정 알고리즘에 따라 변환하고 매개 변수에 새로운 「n」을 설정하여 다운로드합니다. 「n」이 잘못되면 대역 제한이 발동합니다.



「n」의 변환 알고리즘은 난독화되며 자주 변경되기 때문에 해독을 시도하는 것은 현실적이지 않습니다. 하지만 클라이언트 측에서 실행되는 JavaScript의 특징상 알고리즘 코드 자체는 누구나 액세스 할 수 있습니다. 따라서, 많은 다운로드 라이브러리에서는 YouTube의 JavaScript를 다운로드해, 알고리즘 코드를 통째로 뽑아내고 「n」을 변환시키는 해결 방법이 채용되고 있다고 합니다.

이렇게 대역 제한을 해제하면 4MB/s라는 속도로 동영상을 다운로드할 수 있게 됩니다. 그러나 베다드 씨는 여기서 두 번째 대역 제한이 발생한다고 말합니다. YouTube는 스트리밍 플랫폼이기 때문에 스트리밍 하기에 충분한 속도가 되면 자동으로 대역 제한이 걸린다는 것. 일반적으로는 재생 시간의 절반 정도의 시간에 다운로드가 완료되도록 조정됩니다.



제2 대역 제한은 다운로드 개시 후 잠시 후 발생하기 때문에, HTTP 헤더의 「Range」를 이용해 다운로드를 세세하게 분할해, 항상 새로운 접속을 실시하도록 하면 된다는 것. 예를 들어 10MB씩 다운로드하도록 스크립트를 변경하면 아래 그림과 같이 60MB/s ~ 80MB/s라는 속도로 다운로드를 할 수 있습니다.



YouTube의 동영상은 영상과 음성이 다른 파일로 나뉘어 저장되어 있기 때문에, 양자를 각각 다운로드한 후, ffmpeg 등의 편집 툴을 이용하여 하나의 파일로 통합하면 다운로드가 완료됩니다. 이번에 베다드 씨가 작성한 다운로드 스크립트는 베다드 씨의 블로그에 공개되어 있습니다.
https://blog.0x7d0.dev/assets/download/how-they-bypass-youtube-video-download-throttling/youtube-download.js



그러나 역시, 다운로드 전용 툴을 사용하는 것이 가장 편리합니다.

무료로 YouTube, 인스타 등의 동영상을 한 번에 다운로드&MP3로 변환할 수 있는 「Vividl」

Vividl은 YouTube나 인스타 등 수많은 웹사이트에서 영상을 다운로드할 수 있는 앱입니다. Vividl은 수많은 다운로드 앱 중에서도 최고봉의 기능을 자랑하는 커맨드 라인 툴 "yt-dlp"를 내장하고 있어

doooob.tistory.com


반응형