본문 바로가기

컴퓨터 이야기

실시간(스트리밍) 동영상 녹화 및 저장을 위한 노력

가끔가다 영상을 저장하고 싶은데 단순하게 다운로드는 안되는 경우가 많습니다. 저작권 문제 및 유출 등 여러 불법적인 요소들 때문에 점점 동영상 플랫폼들이 다운로드 방지를 적용하는 추세지요. 개인용으로 저장하고 싶어도 이미 피해가 피해인지라 씨알도 안 먹히는 소리니 목마른 사람이 우물을 파야겠지요

너무나 유명한 유튜브 같은 경우야 이미 영상 파일을 다운로드해주는 프로그램이 있어서 손쉽게 접근이 가능합니다. 여기에서 다운로드하시면 됩니다. 그러나 이외의 여러 다양한 플랫폼의 영상들은 하나하나 방법을 찾는 수밖에는 없습니다. 프로그래밍 개발자도 아니고 그저 일반 유저 입장에서 이리저리 고민하고 시도해 본 내용을 공유해 봅니다

 

 

관건은 영상의 URL 확보


예전에는 보안 의식이 약해서 영상 파일을 단순하게 우 클릭-다른 이름으로 저장을 이용하면 되는 경우가 허다했습니다. 아주 옛날 얘기죠. 그러나 점차 저작권에 대한 문제의식이 강해져감에 따라 보안 방식도 강화되어서 이젠 일반인들도 단순한 방법으로는 어려운 상태입니다. 우 클릭 방식이 전부 막히면서 사람들은 우 클릭이 활성화 되게 끔 해제하기 위한 방법을 찾았고 이를 적용한 다양한 인터넷 확장 프로그램들이 우후죽순 많이도 생겼죠

요즘은 이제 우 클릭을 활성화시켜도 영상을 다운로드할 수 없는데 스트리밍 방식으로 변경하면서 단순 다운로드 개념이 아니게 적용되었기 때문입니다. 그나마 이 방식도 웹페이지의 소스를 뒤져가며 영상 파일의 URL을 찾아내면 다운로드할 수 있는 기회가 있었습니다. 그러다가 요즘에 이르러서는 스트리밍 방식이면서 아예 파일 자체를 잘게 쪼개서 이걸 실시간으로 이용자 PC에 전송하는 방식을 사용하더군요

이게 문제가 뭐냐면, 소스를 뒤져서 영상파일 URL을 찾았더니 몇 초 단위로 쪼개진 어마어마한 수량의 영상 파일이 계속 쏟아진다는 거죠. 영상 파일 하나 받자고 수십, 수백, 수천 개의 쪼개진 파일을 일일이 다운로드해서 이어 붙일 순 없잖아요 ㄷㄷㄷ 미친 짓이죠

 

 

가장 손쉬운 건 별도의 프로그램을 사용하는 것


일반 유저 입장에선 미친 짓을 할 능력도 시간도 안되니 누군가 만들어 준 프로그램을 이용하는 게 가장 쉬운 법입니다. 이럴 때 가장 접근이 용이한 건 아무래도 구글 크롬 브라우저죠. 인터넷 익스플로러는 이제 아직도 액티브 X가 남아 있는 뭣 같은 사이트들 빼고는 사용할 일이 적은 편이고 어지간한 사이트들도 대부분 크롬 브라우저를 권장할 정도로 환경이 바뀐 상태입니다. 한때 MS가 운영체제인 윈도 내장에 따른 선점 효과로 독점하다시피 하며 거들먹거리던 틈을 구글 크롬이 제대로 파고들었습니다

크롬 브라우저에는 별도의 외부 프로그램을 크롬에서 사용하게끔 하는 확장 프로그램 개념이 들어 있는데 이 확장 프로그램에는 어마어마하게 다양한 프로그램들이 많습니다. 우리가 목표로 하는 다운로드 관련 확장 프로그램도 많습니다. 저는 그 중에,

http://www.eagleget.com/

 

EagleGet - EG Download Accelerator, Free Universal Downloader

Accelerate download speed by up to 6 times. Supports all kinds of files, and HTTP, HTTPS, FTP, MMS, RTSP protocol. Completely free, no virus!

www.eagleget.com

요 프로그램 하나는 설치해 둔 상태입니다. 확장 프로그램은 크롬 브라우저에서 아래 그림의 앱 아이콘을 누르고 이어서 웹스토어 아이콘을 클릭하면 확장 프로그램 스토어로 이동할 수 있습니다. 거기서 위에 링크된 프로그램 이름을 검색하셔도 됩니다

 

그러나 이 프로그램을 써본 결과 최근 방식으로 적용된 사이트들은 다운로드가 안됩니다. 그러나 예전 방식을 적용한 사이트들에게서는 손쉽게 다운로드가 가능하니 기본으로는 놔둘 필요는 있습니다. 모든 사이트에서 일일이 소스 뒤져가며 찾기엔 너무 힘드니까요. 유사한 프로그램을 몇 개 더 설치해 봤는데 다 안되더군요

 

 

고난의 시작을 알리는 웹페이지 소스 파헤치기


일단 크롬 확장 프로그램으로도 안되는 곳은 각 잡고 시작해야 합니다. 가장 먼저 해볼 일은 크롬을 이용한 소스 파헤치기입니다. 모든 걸 다 뒤지는 건 아니고 특정 항목이 있습니다. 먼저 크롬에서 해당 사이트가 열린 상태에서 F12 키를 눌러줍니다. 이런 건 주로 개발자분들이나 웹디자이너 분들이 개발용으로 활용하기 위한 건데 응용하는 겁니다

 

위 그림처럼 딱 봐도 복잡해 보이는 창이 활성화됩니다. 여기서 우선적으로 볼 항목은 Network 항목입니다. 인터넷으로 전송되는 파일 형태의 항목들이 주로 나열되는 곳입니다. 이 상태로 보면 너무 목록이 많기 때문에 일부 정렬을 할 필요가 있는데, 저는 type이나 Size 탭을 눌러서 오름차순, 내림차순 형태로 정렬시켜놓고 보는 편입니다. type은 파일 형태별로 정렬시켜서 찾기 좋고, Size는 용량별로 정렬시켜서 찾기 용이합니다. 영상 파일이라면 가장 용량이 클게 뻔하기 때문이죠

이렇게 정렬시켜서 유추해 나가다 보면 이거겠다 싶은 범위로 좁혀갈 수 있습니다. 여기서 운이 좋다면 단순하게 흔한 mp4 파일 형태로 스트리밍이 진행 중일 수도 있습니다. type을 정렬해두고 찾아낼 수도 있고 용량별로 정렬시켜서 찾아낼 수도 있겠죠? 진짜 단순하게 스트리밍 중이라면 용량이 꾸준하게 증가하는 목록을 대번에 찾아낼 수 있습니다

찾았다면 그 항목을 우 클릭해서 Open in new Tab을 클릭해주면 새 탭으로 해당 미디어가 전체 화면으로 표시될 겁니다. 그럼 여기서 바로 우 클릭을 또 해주고 다른 이름으로 저장을 통해 간편하게 다운로드를 할 수 있습니다. 영상이 아니어도 이미지 파일도 같은 방식으로 찾아낼 수 있겠죠?

그러나 이 방법도 이젠 과거일 뿐입니다. 위 방식으로 찾다 보면 분명 영상파일 같은데 수십, 수백 개로 쪼개져서 계속 생성되는 현장을 목격하실 수 있을 겁니다. 단순하게는 그 파일들 일일이 다 다운로드해서 편집이든 프로그램을 쓰던 이어 붙이면 되긴 합니다(미친짓). 확장 프로그램 중에는 이렇게 잘게 쪼개져서 전송되는 걸 하나로 이어붙여 주는 것도 있던데 막상 써보니 안됩니다

 

 

다른 접근법이 필요한 순간


고민하다 보니 최근엔 mp4 스트리밍 방식이 아닌, ts 또는 m38u, webm 방식으로 적용되어 있는 걸 알게 됩니다. 이 방식을 해결하려면 2가지의 필수 조건이 필요한데, 하나는 URL을 알아내는 것과 다른 하나는 ffmpeg라는 별도의 프로그램입니다. ffmpeg 프로그램은 원래 우리가 흔히 접하는 동영상 재생 프로그램인 곰플레이어나 다음팟플레이어 등에서 기본적으로 내장되어 사용되는 영상 관련 종합 프로그램입니다. 재생이나 녹화, 변환 등 여러 기능이 골고루 들어가 있지만 사용자가 쉽게 쓸 수 있는 방식이 아닙니다

마우스 클릭질로 딸깍거리며 쓰는 게 아닌, 명령어 창 열어서 일일이 타이핑해줘가며 쓰는 무지하게 불편한 놈이죠. 파워유저나 개발자쯤이나 돼서 알고 쓰는 용도의 프로그램입니다. 대개는 이놈을 기반으로 사용자 친화적인 UI로 변화시켜서 만들어내는 편입니다. 아니면 직접 명령어 방식으로 쓰거나요 ㅡ.ㅡ;;

이 단계쯤 오면 영상의 스트리밍 URL을 알아내서 ffmpeg 프로그램으로 다운로드해야 한다는 걸 깨닫게 됩니다. ffmpeg 프로그램이 잘게 쪼개져서 전송되는 스트리밍 파일을 하나의 파일로 쏙 뽑아주거든요. 물론 그냥 하는 게 아니라 그에 맞게 명령어를 입력해 줘야 합니다

 

 


URL은 어떻게 알아낼 것인가?

 


이게 첫 번째 장벽인데, 위에서 언급된 소스를 뒤져가며 찾을 수도 있습니다. 근데 이것도 하다 보면 알겠지만 하나하나 이렇게 뒤져서 찾아내는 거 여간 화나는 일이 아닐 수 없어요. 전 이게 귀찮아서 반쯤 포기했다가 우연찮게 발견한 게 있어서 활용했습니다.

크롬이 아닌 파이어폭스라는 다른 브라우저의 확장 프로그램을 이용했는데요, 파이어폭스 설치하고 확장 프로그램을 설치하기 위해 아래로 이동한 다음에 flash video downloader를 검색하고 추가합니다. 이 프로그램은 크롬 용도 있었지만 써보니 파이어폭스에서 사용할 때와는 다르게 검출이 안됩니다. 그래서 파이어폭스를 사용하게 됩니다

https://addons.mozilla.org/ko/firefox/

 

Add-ons for Firefox (ko)

Download Firefox extensions and themes. They’re like apps for your browser. They can block annoying ads, protect passwords, change browser appearance, and more.

addons.mozilla.org

그러면 우측 상단 모서리에 확장 프로그램 아이콘이 추가되는 걸 볼 수 있습니다. 이제 원하는 사이트에 접속하고 해당 영상을 클릭해서 재생 화면을 띄워놓으면 아이콘이 활성화로 바뀌는데 그러면 URL이 검출되었다는 뜻입니다. 비활성화 상태면 아무것도 표시되지 않아요. 활성화되어서 클릭해보면 검출된 파일 목록이 표시됩니다

 

위 그림에서처럼 바로 다운로드할 수 있게 나오면 운이 좋은 겁니다. 저런 상태면 바로 다운로드 버튼 클릭해주면 끝나거든요. 그런데 저렇게 목록이 뜨더라도 다운로드가 안되는 건 다른 방법을 써야 합니다. 위 그림의 빨간색 화살표가 가리킨 아이콘을 클릭하면 검출된 URL이 복사됩니다. 그럼 이걸 이제 다운로드하기 위해 ffmpeg 프로그램을 이용해야 합니다. 여기선 알고만 있고 다음으로 넘어갑니다

 


ffmpeg 프로그램을 활용하여 다운로드하는 방법

 


만약 URL이 검출되었지만 다운로드는 안되는 상태라면 스트리밍 방식일게 분명하므로 ffmpeg로 받아야 합니다. 다행히 검출된 상태라면 다운로드 버튼이 convert로 바뀌어 있을 것입니다. 이 표시는 이 확장 프로그램이 ffmpeg를 이용해서 다운로드할 수 있도록 명령어를 대신 입력해주는 걸 지원하는 겁니다. 버튼을 눌러보면 모듈을 다운로드하라면서 설치 파일(msi형식)이 뜰 겁니다. 일단 설치를 해둡니다

처음엔 저도 '저렇게 지원해주면 간단해지겠네'라며 희망에 부풀었지만 역시나 쉽게 길을 열어주진 않더군요. 안됩니다. 그래서 결국 제가 직접 수동으로 명령어 입력을 할 수밖에 없었습니다. 이 문제를 해결하려고 찾아봤지만 파이어폭스 버전에 따라 달라질 수 있다는 단서를 보긴 했습니다. 그렇지만 수동 입력을 통한 방식을 찾은 터라 깊게 파 보진 않았습니다

여기서부터는 명령어 입력을 안 해보신 분들이라면 꽤 복잡해지실 겁니다

위에서 언급한 msi 파일을 설치한 상태라면 설치 경로가 아래와 같을 겁니다

C:\Users\윈도우사용자명\AppData\Roaming\FVD Downloader Module

잘 설치되었는지 확인해 보는데, 해당 폴더에 ffmpeg.exe 파일이 있으면 됩니다. 여기선 이제 명령어를 입력해주면 되는데 문제는 이 방법은 파일 하나 받을 때마다 같은 명령어 입력을 일일이 해야 한다는 겁니다. 일단 정상적인 입력 방법을 먼저 보도록 할게요

시작-실행-cmd를 입력하여 명령어 입력창을 띄웁니다(혹은 단축키 윈도우키+R). 그런 다음 아래와 같은 형태로 입력해 주면 됩니다


ffmpeg -i "복사된URL" -c copy 저장할경로\저장할파일명

예제는 아래와 같아요

ffmpeg -i "https://testfile.m3u8" -c copy e:\download\testfile.mp


위 명령어를 입력할 때 주의할 점은 2가지입니다

1. 명령어를 입력하는 경로가 이미 ffmpeg.exe가 설치된 경로여야 할 것(안그러면 파일이 없다는 에러 출력됨)

2. 저장할 파일명이 8자를 초과하지 말 것(초과하면 저장 단계에서 문제가 생깁니다. 이건 아주 예전 도스 시절 제한값인데..쩝)

딱 봐도 매우 귀찮게 느껴지죠? 그래서 도스 시절 써먹던 배치파일이라는 걸 써 먹었습니다(코딩은 못하니까..) 설치 경로 이동과 명령어 값을 미리 저장해 놓고 나중에 경로만 바꿔서 실행시키는 꼼수를 좀 썼습니다

 


배치파일 만들기

 


 

1. 먼저 바탕화면에 메모장파일(TXT)을 만듭니다(바탕화면에 우클릭-새로만들기-텍스트문서)

2. 생성된 파일명에서 뒷부분 확장명을 bat로 바꾸고 저장합니다(앞에 파일명은 원하는 이름 사용)

3. 파일을 우 클릭-편집을 눌러 엽니다(bat 파일은 앞으로 이렇게 열어야 합니다)

4. 안의 내용을 수정하고 저장합니다

 

첫번째줄 내용 cd C:\Users\사용자이름\AppData\Roaming\FVD Downloader Module

두번째줄 내용 ffmpeg -i "복사한 URL 입력하세요" -c copy e:\download\testfile.mp4

세번째줄 내용 puase

 

총 3줄을 입력하는데 적색으로 칠 해놓은 부분만 여러분 환경에 맞게 바꾸면 됩니다(첫번째, 두번째, 세번째 줄 표시는 넣는 거 아님) 첫번째 줄은 설치된 경로로 이동하기 위한 명령어고 두번째가 핵심 내용이죠

저장할 때는 다른 이름으로 저장으로 한 뒤 반드시 인코딩 옵션(하단에 있음)을 ANSI로 변경하고 저장하세요(안하면 파일 못 찾음) 이렇게 저장해 놨으면 이제 편집으로 열어서 URL 부분과 저장할 파일 부분만 바꿔서 저장한 뒤에 더블클릭으로 실행하면 됩니다

 

더블클릭했을 때 위 그림과 같은 화면이 나오면서 맨 하단에 저장되는 용량 표시가 나오면 성공적으로 다운로드 중입니다. 그렇지만 스트리밍 방식을 다운로드하므로 일반적인 파일을 다운로드할 때처럼 고속으로 진행되지 않음에 유의하세요. 저의 경우 아프니까 플랫폼의 경우 성공적으로 다운로드 되는 건 확인했습니다. 그 외 몇몇 군데도요

 

 

그럼에도 불구하고 안되는 곳이 아직도 있다


꽤나 복잡한 과정을 거치면서 해도 안되는 곳이 있긴 합니다. 안되는 건 다운로드가 아닌 URL 검출이 안된다고 봐야 할 것 같아요. 확장 프로그램에서도 URL을 검출하지 못하는 데가 있던데 그런 곳들의 대부분이 주로 jwplayer라는 동영상 재생용 플랫폼을 사용하는 경우더군요. 최근 업데이트 버전을 쓰는 곳이 막히는 걸로 추측됩니다. URL만 찾아내면 되지 싶은데 현재로서는 거기까지 파헤 칠 동기부여가 없군요 흠..

그리고 알아보면서 찾은 몇 군데의 사이트가 있는데 이런 데는 동영상 URL을 전송해주면 다운로드해주거나 URL을 재검출 해주거나 하는 곳이 있던데요, 테스트해보니 거기도 다 되는 건 아니더군요. 혹여나 더 확실하고 간편한 방법을 아신다면 댓글로 정보 공유좀...(굽신 굽신)

끝.