Ganymede 라는 솔루션을 소개해드린지 3달이 지났는데 상세한 설정을 하는 방법을 올린다고 약속드렸는데 깜빡하고 있었습니다
그 전에 그간 겪었던 주의점이 중요한 것 같아 글 최상단에 먼저 소개해드리겠습니다
주의점
- 가끔 오류가 발생하여 녹화가 제대로 되지 않을 경우가 있습니다
- 저 같은 경우 2주에 한번꼴로 제대로 녹화가 되지 않았습니다
- 오류의 사유로는 가끔 Twitch API 가 안받아와지거나 VPN 서버에서 접속해제 되었거나 NAS 의 리소스가 부족해졌을때 입니다
- 위의 오류가 발생했을 경우 늦게 녹화가 시작되거나 끝까지 녹화가 되지 않아 애매하게 두개로 나뉘어져 녹화가 되거나 뒷부분이 아예 날아가는 경우가 발생했습니다
- 녹화하는 스트리머를 3명에서 2명으로 줄였지만 비슷하게 오류가 발생합니다
- 그래서 저는 NAS 가 아닌 별도 서버를 준비중입니다
- 채팅 변환 과정에서 가끔 오류가 발생합니다
- 이는 재시작을 통해 수정이 가능합니다
- 몇일전에 관련해서 업데이트가 이루어져서 고쳐졌을 가능성이 있습니다
- 최대 녹화 가능 시간이 24시간이며 넘어갈경우 강제로 나뉘어집니다
- ... 오늘 처음 알았습니다
- 트위치 터보인데 가끔 광고가 같이 녹화될 때가 있었습니다
- 특정기간 동안에만 (2023.1월 초?) 발생했습니다
- 구독한 채널은 모두 광고없이 녹화되었습니다
- 2월에는 괜찮았습니다
- 생각보다 용량을 많이 차지합니다
- 2~3명의 스트리머를 거의 3달동안 녹화했는데 벌써 3.4TB 정도를 저장했습니다
오류가 없는 만능 솔루션은 아니니 어느 정도 감안하시길 바랍니다
NAS 설치 가이드
필수 : Docker 를 지원하는 시놀로지 NAS
1. 트위치 개발 Client id, secret 발급 받기 (링크)
이름입력, URL입력, 범주를 선택 후 만들기를 눌러줍니다
만들어진 애플리케이션의 관리버튼을 누릅니다
신규 시크릿 버튼을 눌러 시크릿을 생성후 클라이언트 ID 와 클라이언트 시크릿을 메모장 같은 곳에 기록 해놓습니다
2. Twitch OAuth 가져오기
크롬 브라우저 기준 트위치 홈페이지에서 로그인후 F12 혹은 Ctrl + Shift + I 를 눌러 개발자툴을 불러와주세요
콘솔을 누른후 아래의 코드를 붙여넣기 한 후 Enter 를 눌러주세요
document.cookie.split("; ").find(item=>item.startsWith("auth-token="))?.split("=")[1]
바로 아래에 코드가 나오는데 메모장 같은 곳에 기록 해놓습니다
3. SSH 로 NAS 에 접속하기
링크의 설명대로 잘 따라해주세요
4. docker-compose 설치하기
위의 링크대로 SSH 로 NAS 에 접속후 root 권한을 받은 후 아래의 명령어를 입력합니다
sudo curl -L "https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
다음과 같이 Docker Compose version v2.16.0 이 나와야 합니다
5. 설정파일 받기
링크에서 docker-compose.yml 과 nginx.conf 를 다운받습니다
6. 설정파일 수정
VSCode 같은 에디터로 docker-compose.yml 을 열어줍니다
TZ 를 거주하시는 시간대에 맞게 수정해주세요 ex> Asia/Seoul
DB_PASS 도 이왕이면 수정해주세요
JWT_SECRET 은 아무거나 넣어주시면 됩니다
TWITCH_CLIENT_ID, SECRET 은 위에서 받아온 정보를 넣어줍니다
FRONTEND_HOST 는 NAS 접속 주소:포트 번호로 입력하시면 됩니다
ex> 내부주소일 경우 http://192.168.x.x:4801
volumes: 의 /path/to/vod/storage 를 NAS 에서 저장될 스토리지의 주소로 변경해줍니다
DSM 의 File Station 에서 속성을 눌러 위치를 확인하시면 됩니다
ex> /volume2/video/twitch-vod
./tmp:/tmp 는 원래 주석이 되어있지만 주석을 제거해주세요 (# 삭제)
각 URL 을 네트워크 설정에 맞게 변경해주세요
위에서 DB 비밀번호를 변경했다면 같이 변경해주세요
volumes: 의 /path/to/nginx.conf 를 ./nginx.conf 로 변경해주세요
/path/to/vod/storage 를 위에서 설정한 NAS 에서 저장될 스토리지의 주소로 변경해줍니다
모두 수정하셨으면 저장해주세요
7. 설정파일 업로드 및 폴더 생성
NAS DSM 에서 Docker 를 실행하고 작업할 공유폴더를 생성하거나 미리 생성된 공유폴더에서 새로운 폴더를 만들어주세요
ex> 저는 volume1 디스크에 docker 공유폴더 생성후 ganymede 라는 폴더를 만들었습니다
File Station 에서 위에서 수정한 docker-compose.yml 과 nginx.conf 를 해당 폴더로 업로드해줍니다
그리고 해당 폴더에서 logs, data, tmp 폴더를 새로 생성해줍니다
8. docker-compose 실행
SSH 로 NAS 에 접속후 docker-compose.yml 을 업로드한 경로로 이동합니다 (File Station 에서 속성을 누르면 위치가 나옵니다)
ex> cd /volume1/docker/ganymede
docker-compose up -d
를 입력하여 실행합니다
DSM 의 Docker 에서 다음과 같이 나오면 성공입니다
9. ganymede 설정
ganymede 페이지로 접속합니다 NAS주소:4801
Log in 을 누른후 관리자로 접속합니다
username: admin
password: ganymede
Profile 을 눌러 비밀번호를 변경해줍시다
Admin -> Settings 에서 Twitch Token 항목에 OAuth 토큰을 넣어준 후 Save를 눌러줍니다
10. 녹화할 채널 추가
Admin -> Channels 에서 Add Twitch Channel 을 눌러준 후 녹화할 채널의 영문 ID 를 넣어주세요
성공적으로 추가되었다면
Admin -> Watched Channels 에서 Add 를 누릅니다
Channel 은 방금전에 추가한 채널을 선택해주세요
Quality 는 Best (NAS 에서 VPN 을 설정하지 않았다면 720p 로 녹화됩니다)
Archive Chat 은 채팅 내역을 같이 저장합니다
Render Chat 은 저장한 채팅내역을 영상으로 저장하는 옵션입니다 (필요없으면 끕니다)
Watch Videos to Archive 는 다시보기에 저장된 영상도 자동으로 다운받는 기능입니다만 한국에서는 무의미 해졌습니다
제일 아래의 Create ... 버튼을 눌러줍니다
이제 5분에 한번씩 라이브 여부를 체크해 자동으로 방송을 녹화합니다
급하게 작성하느라 내용이 조금 이상할 수 있습니다
그 외에 궁금하신 점은 댓글로 남겨주세요
댓글 2개 ▼