VGrab 웹 동영상 다운로드 확장 프로그램 블로그 의견 보내기
Chrome에 설치

게시일

VGrab이 다운로드하지 않는 동영상과 그 이유

디지털 저작권 보호(DRM)가 걸린 동영상과 YouTube 같은 사이트는 분명히 하지 않습니다. 아직 못 만든 것이 아니라, 처음부터 그어 둔 선입니다.

디지털 저작권 보호(DRM)가 걸린 것은 다운로드하지 않습니다

Widevine, FairPlay, PlayReady는 권리자가 동영상에 걸어 둔 보호 장치입니다. 이런 동영상을 만나면 VGrab은 그것을 알아보고 화면에 '이 동영상은 DRM으로 보호되어 있어 다운로드할 수 없습니다'라고 분명히 말씀드린 다음 멈춥니다.

능력이 모자라서가 아니라, 저희가 하지 않기로 한 일입니다. 이런 보호를 푸는 것은 보호 장치를 우회하는 행위이지 기술적인 숙제가 아닙니다. 그래서 확장 프로그램 안에 이와 관련된 코드는 한 줄도 없고, 앞으로도 넣지 않습니다.

YouTube는 하지 않습니다

이 부분은 인상만으로 말씀드리는 것이 아니라 실제로 한 번 들여다보았습니다. 진짜 재생 페이지에서 재생 중에 나가는 요청을 받아서 확인해 본 결론은, 성격이 서로 다른 세 가지 장벽이 있다는 것이었습니다.

  • 형식이 다릅니다. YouTube가 동영상을 전송하는 방식은 보통의 사이트와 달라서 영상과 소리를 따로 보내고, 페이지에는 m3u8이 하나도 없습니다. 이것은 작업량의 문제일 뿐이고 대결의 문제는 아닙니다.
  • 접근 제어가 있습니다. 동영상 주소에 유효 기간이 있고, 요청한 쪽의 주소에 묶여 있으며, 서명이 두 겹 붙어 있습니다. 주로 무단 링크와 남용을 막기 위한 것이고, 그 결과로 다운로드도 어려워집니다.
  • 다운로드를 겨냥한 보호 장치가 있습니다. 주소 안에 속도를 제한하는 매개변수가 하나 있어서 값을 제대로 계산하지 못하면 서버가 천천히 내보냅니다. 그 값을 계산하는 코드는 계속 바뀌는 플레이어 스크립트 안에 숨어 있어서, 쓸 수 있는 주소를 얻으려면 그 코드를 역분석해야 합니다.

세 번째가 저희가 멈추는 지점입니다. 이 프로젝트는 시작할 때 두 가지를 굳게 정해 두었습니다. 사람인지 확인하는 절차를 만나면 멈추고 알리되 사람인 척하지 않는다, 그리고 디지털 저작권 보호(DRM)에는 손대지 않는다. 다운로드를 막으려고 일부러 만들어 둔 것을 역분석하는 일도 같은 부류에 속합니다. 그래서 하지 않습니다.

현실적인 이유도 한 겹 있습니다. 애플리케이션 스토어의 개발자 정책이 애초에 확장 프로그램이 YouTube의 콘텐츠를 다운로드하는 것을 허용하지 않습니다. 같은 종류의 확장 프로그램들도 스토어 페이지에 이 조항을 적어 두고 있습니다.

사람인지 확인하는 절차를 만나도 멈춥니다

어떤 사이트는 '보안 확인을 진행하고 있습니다' 같은 페이지를 띄웁니다. VGrab은 브라우저 지문을 위조하지 않고, 자동 인식 대행 서비스를 쓰지도 않으며, 확인 절차를 우회하는 어떤 방법도 쓰지 않습니다.

올바른 방법은 하나뿐입니다. 사용자께서 직접 브라우저에서 그 페이지를 평소처럼 열고 확인 절차를 통과하시는 것입니다. 확장 프로그램이 읽는 것은 사용자께서 실제로 열어 보신 그 페이지입니다. 확장 프로그램이라는 형태 자체가 원래 이렇게 동작합니다. VGrab은 사용자를 대신해 사이트에 접속하지 않고, 이미 열려 있는 그 페이지 안에 있는 것을 정리해 드릴 뿐입니다.

그러면 무엇이 남을까요

거의 대부분이 남습니다. 보통 사이트의 스트리밍(m3u8, DASH), 파일 하나로 된 MP4 / WEBM / FLV, 영상과 소리를 두 갈래로 따로 보내는 것, 그리고 주소를 내주지 않는 플레이어와 라이브 방송(녹화로 처리합니다)입니다.

다시 말해 VGrab이 하는 일은 이미 보실 수 있는 것을 저장해 드리는 것이지, 보실 수 없는 것을 끄집어내는 것이 아닙니다. 이 선은 앞으로도 바뀌지 않습니다.

다음에 간직하고 싶은 동영상을 만나면.클릭 한 번이면 끝. 회원 가입도 필요 없습니다.
Chrome에 설치