트위치에서 원본 화질(source, 1080p)로 라이브 시청을 즐겨하는 시청자라면 간혹 화질이 저절로 낮은 화질로 변경되거나 "자동"으로 바뀌는 것을 경험한 적이 있을 것이다. 가장 자주 체감할 수 있는 것은 아래의 두 경우이다.

  1. 사용자가 브라우저의 다른 탭으로 전환하여 현재 재생 중인 탭이 비활성화 된 상태로 약 1분이 지난 경우 화질을 낮춤
  2. 사용자가 원본 화질(Source) 로 설정하고 약 24시간이 지난 경우 화질을 "자동"으로 설정

자동 화질 변경 시 재생이 중지되는 오류가 간혹 발생하기도 하고, 24시간마다 매번 원본 화질을 다시 설정해야 하는 것은 사소하지만 귀찮은 일이다. 그래서 화질 자동 변경을 막고, 매번 재생 시마다 화질을 원본 화질로 설정해주는 툴을 브라우저 확장 기능의 일종인 UserScript 기반으로 만들었다. 이름은 Twitch-Auto-Max-Quality 이다. 일단 생각나는대로 코드를 짜깁기해서 동작만 되게 만들어둔 것이지만 작동은 잘 된다. Github 링크 (https://github.com/nomomo/Twitch-Auto-Max-Quality)

필요한 사람이 있다면 아래의 방법을 참고하여 설치하면 된다.

설치 방법

STEP 1. 자신의 브라우저에 맞는 유저스크립트 관리 확장기능 설치

동작은 Chrome, Firefox 브라우저에서만 확인했다.

STEP 2. Twitch-Auto-Max-Quality 스크립트 설치

확장 기능 설치 이후 아래의 링크를 클릭하여 이동, 설치 버튼을 누른다.

https://raw.githubusercontent.com/nomomo/Twitch-Auto-Max-Quality/master/Twitch-Auto-Max-Quality.user.js

주의: 본 스크립트를 설치 및 사용하며 브라우저 과부하로 인한 응답 없음/뻗음 등 으로 인한 데이터 손실 등 문제 발생 시 개발자는 책임지지 않음(보고된 문제는 없음)

본 스크립트를 사용하다가 Twitch 접속에 문제가 생기거나 동영상 재생이 안 되거나 화질 설정이 이상하게 되거나 설정 버튼이 제대로 동작하지 않는 문제 등이 발생하는 경우 이 스크립트를 그냥 끄고 업데이트가 될 때 까지 기다리거나 Tampermonkey 의 관리 메뉴에서 삭제하면 된다.

상세 설정

브라우저 툴바의 Tampermonkey 아이콘을 클릭하면 아래 그림처럼 설정 창을 열 수 있는 버튼이 있다.

버튼을 클릭하면 아래와 같은 설정 창이 열린다. 각 기능은 켜고 끌 수 있고, 저장은 자동으로 이루어진다. 설정이 자동 저장된 후 새로고침하면 된다.

설정 버튼이 제대로 동작하지 않는 경우 Simulate settings button method 를 끄면 된다.

iframe 으로 삽입된 플레이어에서 제대로 동작하지 않는 경우 Use the Twitch EMBED API in an Iframe 을 켜면 된다.

만약 클립, VOD 재생 시 화질이 강제로 저하된다면 Use for live video where url starts with blob 를 켜거나 Simulate settings button method 를 끄면 된다.

동작 원리

1. 다른 탭으로 전환 시 화질 저하

앞서 작성한 글인 visibilitychange 이벤트를 무력화하기 위한 방법들을 참고하면 된다.

2. 원본 화질(Source) 로 설정하고 24시간이 지난 후 화질이 "자동"으로 설정되는 현상

플레이어에서 화질, 낮은 시연시간 등의 설정이 접속 시마다 초기화되지 않고 유지되는 이유는 플레이어 설정을 브라우저의 localstorage 에 저장해놓도록 되어있기 때문이다. 화질의 경우, 사용자가 화질을 변경하면 변경된 화질 설정을 video-quality 이라는 이름으로 localstorage 에 저장하고, 플레이어를 초기 로딩할 때 해당 변수에 저장된 화질 설정을 읽어 사용자가 설정했던 화질로 초기 설정 & 재생한다.

그런데 원본 화질로 설정하는 경우, 사용자가 화질을 직접 원본 화질로 변경하는 순간의 시간을 s-qs-ts 라는 이름으로 localstorage 에 저장하도록 되어있다. 그리고 플레이어 초기 로딩 시 사용자 설정을 불러오면서 (현재 시간 - 저장된 시간 > 24시간) 인지 확인하여, 화질을 원본 화질로 설정한 시점으로부터 24시간이 지난 경우 화질을 "자동"으로 변경하는 동작을 한다. 이러한 동작 때문에 24시간 마다 원본 화질을 다시 설정해주어야 한다.

따라서 이러한 불편함을 해결하기 위해 재생 시마다 매번 localstorage 의 s-qs-ts 값을 현재 시간으로 덮어쓰고, video-quality 를 항상 source 에 해당하는 값으로 덮어쓰도록 했다. 또 추후 이 방법이 막힐 수도 있기에, 가상으로 빠르게 설정 버튼과 설정 메뉴를 클릭하여 최대 화질을 설정하도록 했다.

Leave a comment
≪ Previous : 1 : 2 : 3 : 4 : 5 : ··· : 13 : Next ≫