콘텐츠로 건너뛰기

스트림링크 사용 방법 2-2: 라이브 추출 2️⃣ 플러그인, 스트리밍 프로토콜 (Streamlink)

스트림링크의 플러그인 지원 사이트에서의 추출법과 플러그인 미지원 사이트에서의 추출법을 다룬다.

 
이전 글

스트림링크 사용 방법 2-1: 라이브 추출 1️⃣ 기본, 옵션 (Streamlink)

이 글은 꼭 이전 글에 이어서 봐야 한다
 
관련 글

스트림링크 사용 방법 1: 다운로드, 설치 (Streamlink)
 
 

스트림링크 플러그인 지원 사이트

 
현재 내장된 플러그인과 지원하는 URL 및 기능 목록은 아래 링크에서 확인할 수 있다
Plugins – Streamlink 5.3.1 documentation
 

스트림링크 플러그인 지원 예시
위와 같이 지원 사이트가 쭉 나와있다

Description: 사이트 설명
URL: 지원하는 사이트 주소 형태
Type: 라이브(live), VOD 중 어떤 걸 지원하는지 써놨다 
Arguments(인수): 플러그인 옵션
 

빌리빌리처럼 플러그인 옵션이 따로 없는 경우

스트림링크 옵션을 쓸 수 있다
URL 자리에 개별 영상 사이트 주소를 넣으면 추출이 된다

streamlink -o output.ts https://live.bilibili.com/12345 best

이런 식으로 하면 된다
 
 

플러그인 옵션이 없는 곳을 몇 개만 꼽아보면 다음과 같다:

abematv, dailymotion, facebook, googledrive, linelive, livestream, sbscokr(한국 sbs 방송사), vimeo, vk
 
 

트위치처럼 플러그인 옵션이 있는 경우

 
URL 자리에 개별 영상 사이트 주소를 넣으면 추출이 된다
옵션 쓰는 자리에 스트림링크 옵션도, 플러그인 옵션도 쓸 수 있다
트위치를 예로 들겠다

트위치

 
명령창을 열고 명령어를 입력한다
예시:

streamlink -o {author}-{title}({id}).mp4 --twitch-disable-ads --twitch-disable-hosting https://www.twitch.tv/12345 best

여기서 ‘-o {author}-{title}({id}).mp4’은 스트림링크 옵션이고

‘–twitch-disable-ads –twitch-disable-hosting’은 스트림링크 트위치 플러그인 옵션이다

트위치는 방송이 긴 경우가 많다

저장 공간이 넉넉하면 best를 사용하고, 그렇지 않으면 화질을 낮게 조정한다
 
메타데이터 변수 설명은 이전글 참고

스트림링크 사용 방법 2-1: 라이브 추출 1️⃣ 기본, 옵션 (Streamlink)

(“메타데이터 변수”로 페이지 내에서 찾기 또는 Ctrl+F)

트위치 플러그인 옵션

 
–twitch-disable-ads: 광고를 스킵한다 (초반, 중간 광고)
 
–twitch-disable-hosting: 트위치 스트리머가 호스팅 하는 스트림을 비활성화한다
호스팅 중인 스트림을 건너뛰고 스트리머의 현재 스트림을 추출할 수 있다.
 
–twitch-disable-reruns: 재방송을 스킵한다
 
–twitch-api-header KEY=VALUE: 각 Twitch API HTTP 요청에 추가할 헤더
여러 헤더를 추가하기 위해 반복할 수 있다
광고를 차단할 수 있는 인증 데이터를 추가하는 경우 아래와 같이 쓴다

–twitch-api-header=Authorization=OAuth [개인 OAuth 토큰]
개인 OAuth 토큰을 알려면 아래와 같이 한다
웹브라우저로 Twitch.tv에 가서 로그인 ➡️ 웹브라우저 개발자도구/검사(F12) ➡️ 콘솔 탭 ➡️ 콘솔 창에 아래와 같이 입력:
document.cookie.split(“; “).find(item=>item.startsWith(“auth-token=”))?.split(“=”)[1] 
➡️ 작은따옴표(‘) 제외하고 문자열 복사
 

콘솔 창 예시
콘솔 창 아래 깜박거리는 곳에 붙여넣고 엔터치면 된다


인수 값에 공백이 있으므로 큰 따옴표를 붙여야 한다

streamlink "--twitch-api-header=Authorization=OAuth abcdefghijklmnopqrstuvwxyz0123" twitch.tv/CHANNEL best

 
OAuth 토큰은 개인 정보이므로 남에게 알려주거나 공유하지 않도록 한다
 
이외의 트위치 플러그인 옵션과 자세한 설명은 아래 스트림링크 페이지 참고
Twitch – Streamlink 5.3.1 documentation
 
 
 

플러그인 옵션이 있는 곳을 몇 개만 꼽아보면 다음과 같다:

bbciplayer(영국 bbc 방송), steam(게임 서비스로 유명한 그 스팀)
 
자세한 사항이나 다른 사이트 정보는 아래 링크로 가서 보기 바란다
Plugins – Streamlink 5.3.1 documentation
 

스트림링크 플러그인 미지원 사이트 (스트리밍 프로토콜)

m3u8 주소 등을 찾아서 (지원되는 스트리밍 프로토콜을 통해 직접) 추출해야 한다 
 
스트림링크에서 지원하는 스트리밍 프로토콜

이름접두사
애플 HTTP 라이브 스트리밍hls://
MPEG-DASHdash://
프로그레시브 HTTP/HTTPShttpstream://

요즘은 hls 스트림이 제일 많이 쓰인다
 

플러그인 미지원 사이트에서 url 얻는 법

영상이 재생되는 페이지 ➡️ 웹브라우저 개발자도구/검사(F12) ➡️ 네트워크 탭: 스트림 url 얻기
m3u8(HLS 스트림의 경우)나 mpd(DASH 스트림의 경우) 등을 넣어서 찾아볼 수 있다
녹화 버튼/녹화 중지 버튼으로 기록 시작/중지 조작 가능하다

네트워크 탭 예시

이 상태에서 (해당 인터넷 페이지) 플레이어에서 최고 화질을 선택한다
이후 새로고침을 하고 플레이어 설정이 최고 화질이 아니면 다시 선택한다
그다음에 url을 찾고 그 위에서 오른 클릭 – 복사 – 링크 주소 복사를 한다
 
대개 초반에 있는 주소가 찐인데, 화질별로 m3u8 주소가 따로 있는 경우도 있으니 확인이 필요하다
몇 번 하다 보면 노하우가 생긴다
 
url을 딴 뒤에는 다음과 같이 명령창에 넣는다

streamlink -o output.ts "https://streamingserver/playlist.m3u8" best
streamlink -o output.ts "https://streamingserver/manifest.mpd" best
명령 창

잘 찾았으면 위와 같이 나온다
선택 가능한 화질이 쭉 나오고 최고 화질인 1080p가 선택되었다

명령 창

이것도 나쁘지 않다
ctrl+c로 중지시킨 다음에 파일을 확인해 보니 1080p(최고 화질)이었기 때문이다
 
플러그인 미지원 사이트는 (url 찾는 시간, 최고 화질이 추출되는지 확인하는 시간 등의) 준비 시간이 필요하다
따라서 가능하면 본방송 시작 전에 준비 영상을 틀어줄 때 이런 절차를 다 거치고 추출을 미리 시작해 놓는 게 좋다
그렇게 하면 추출본 앞쪽에 불필요한 부분이 조금 들어가게 된다
이는 후에 ffmpeg 등으로 편집을 해서 빼준다
 
 
아래 글에 mixlr 추출법이 있는데 url이 httpstream://로 시작한다

스트리밍 프로토콜 url을 찾는 방법을 참고하면 좋을 것 같다
스트림링크(streamlink)로 생중계/생방송 스트림 추출하기 (tistory.com)

 
더 자세한 것은 아래 링크글 참고
Streaming protocols – Streamlink 5.3.1 documentation
 
 
 
다음 글

스트림링크 사용 방법 3 : 라이브 추출 예약, 채널 모니터링 (Streamlink)