공부하고 기록하는, 경제학과 출신 개발자의 노트

프로그래밍/이것저것_개발일지

Streamlink로 유튜브 멤버십 스트리밍 영상 다운로드하기

inspirit941 2021. 9. 27. 00:57
반응형

멤버십에 가입되어 있고, 유튜브에 로그인할 수 있는 계정이 필요하다.

 

 

Streamlink라는 오픈소스 프로젝트를 활용해서 유튜브의 멤버십 전용 스트리밍 영상을 다운로드받는 방법.

21.09.26 현재 streamlink 프로젝트의 latest 버전은 2.4.0이다.


우선 https://github.com/streamlink/streamlink/releases 로 들어가서 latest Version을 선택한다.

 

Releases · streamlink/streamlink

Streamlink is a CLI utility which pipes video streams from various services into a video player - streamlink/streamlink

github.com

스크린샷 2021-09-26 오후 1 14 20

Windows의 경우

  1. latest version에서 스크롤을 내리면 streamlink-<version>.exe 파일이 있다. 선택해서 다운로드 받는다.
    • ffmpeg와 rtmpdump 설치를 묻는 체크박스가 있다면 같이 설치한다. 둘다 영상 처리에 필요한 소프트웨어다.
  2. Python을 다운로드 받는다. www.python.org/downloads/

MacOS의 경우

해당 프로그램을 실행하는 방법은

  • 영상을 저장할 디렉토리에서 터미널 창을 연 뒤 아래의 형식으로 명령어를 입력하면 된다.
  • streamlink <유튜브-영상-url> best -o <저장할-영상-이름>.<확장자명>

유의: https://youtube.com/watch?= 형태의 링크로는 '플러그인을 찾을 수 없음' 에러가 발생할 수 있다.
이 경우 유튜브 영상 하단의 '공유하기' 버튼을 눌렀을 때 나오는 링크 (youtu.be/문자열) 를 사용하면 된다.

 

 

ex) streamlink "https://youtu.be/waRLFDHPGew" best -o "SG-Wannabe-내사람.mp4"

 

구체적인 다운로드 방법과 사용법은 아래의 포스트를 참고하면 된다.

https://meonol.tistory.com/175

 

유튜브 실시간 스트리밍 녹화 다운로드 방법(streamlink)

유튜브 라이브 스트리밍 방송(생방송)을 녹화해서 mp4, ts 동영상으로 실시간 다운로드하는 방법을 소개한다. streamlink(스트림링크) 프로그램을 이용하면 유튜브 주소링크를 통해 간단히 스트리밍

meonol.tistory.com

 


 

위의 명령어는 비로그인 사용자 자격으로 영상에 접근하는 개념이므로, 멤버십 유저 대상의 스트리밍과 영상은 접근이 불가능하다.

따라서, 로그인한 계정의 정보를 streamlink이 활용할 수 있도록 전달해야 한다.

일반적으로 사용자의 로그인 정보는 cookie에 저장해서 브라우저가 활용하므로, cookie 값을 활용한다.

 

 

크롬 기준, 멤버십 사용자로 '다운로드받고 싶은 영상' 링크에 접속한 다음

  1. f12로 개발자 도구 창을 열고, Application을 선택한다.
  2. Cookies 필드에서 __Secure-3PSID 필드의 값을 찾는다.

스크린샷 2021-09-26 오후 1 35 00

  1. streamlink 명령어에 --http-cookie "__Secure-3PSID=<문자열>" 을 추가한다.

ex) streamlink --http-cookie "__Secure-3PSID=<해당 필드의 값>" "다운로드받을 youtube-link" best -o "저장할-이름.확장자"

 

스크린샷 2021-09-26 오후 1 38 29

 

cookie로 로그인 계정 정보를 확인하고 정상적으로 다운로드되는 것을 확인할 수 있다.

 

 

 

cf. 레딧의 아래 링크를 토대로 작성하였음.

https://www.reddit.com/r/Streamlink/comments/la3fia/record_youtube_member_only_stream/

 

Record youtube member only stream

Is it possible to provide streamlink my youtube login credentials to record otherwise locked (membership only) streams? Couldn't find anything...

www.reddit.com

 

반응형