멤버십에 가입되어 있고, 유튜브에 로그인할 수 있는 계정이 필요하다.
Streamlink라는 오픈소스 프로젝트를 활용해서 유튜브의 멤버십 전용 스트리밍 영상을 다운로드받는 방법.
21.09.26 현재 streamlink 프로젝트의 latest 버전은 2.4.0이다.
우선 https://github.com/streamlink/streamlink/releases 로 들어가서 latest Version을 선택한다.
Windows의 경우
- latest version에서 스크롤을 내리면
streamlink-<version>.exe
파일이 있다. 선택해서 다운로드 받는다.- ffmpeg와 rtmpdump 설치를 묻는 체크박스가 있다면 같이 설치한다. 둘다 영상 처리에 필요한 소프트웨어다.
- Python을 다운로드 받는다. www.python.org/downloads/
MacOS의 경우
brew install streamlink
로 설치한다.- https://streamlink.github.io/install.html 참고
해당 프로그램을 실행하는 방법은
- 영상을 저장할 디렉토리에서 터미널 창을 연 뒤 아래의 형식으로 명령어를 입력하면 된다.
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이 활용할 수 있도록 전달해야 한다.
일반적으로 사용자의 로그인 정보는 cookie에 저장해서 브라우저가 활용하므로, cookie 값을 활용한다.
크롬 기준, 멤버십 사용자로 '다운로드받고 싶은 영상' 링크에 접속한 다음
- f12로 개발자 도구 창을 열고, Application을 선택한다.
- Cookies 필드에서
__Secure-3PSID
필드의 값을 찾는다.
- streamlink 명령어에
--http-cookie "__Secure-3PSID=<문자열>"
을 추가한다.
ex) streamlink --http-cookie "__Secure-3PSID=<해당 필드의 값>" "다운로드받을 youtube-link" best -o "저장할-이름.확장자"
cookie로 로그인 계정 정보를 확인하고 정상적으로 다운로드되는 것을 확인할 수 있다.
cf. 레딧의 아래 링크를 토대로 작성하였음.
https://www.reddit.com/r/Streamlink/comments/la3fia/record_youtube_member_only_stream/
'프로그래밍 > 이것저것_개발일지' 카테고리의 다른 글
2023 서울디지털재단 주최 생성AI 해커톤 - 상담부문 최우수상 후기 (0) | 2023.07.15 |
---|---|
Paketo buildpack의 Stack Customization 테스트 기록 (0) | 2023.04.12 |
화상 모의면접 연습 플랫폼 개발 프로젝트 (2) - KeyCloak 활용해서 서비스 DB에 OAuth 인증 붙이기 (0) | 2021.04.18 |
화상 모의면접 연습 플랫폼 개발 프로젝트 (1) - 채팅 DB 아키텍처 고민하기 (0) | 2021.02.20 |
Java WebSocket과 Stomp로 간단한 채팅프로그램 만들기 (0) | 2021.02.04 |