Social Stream Ninja로 OBS 제어

Streamer.bot 없이 Event Flow에서 OBS를 직접 제어하세요. 설정, 모든 OBS 트리거와 작업, 실용적인 예시, 기존 도크/브라우저 소스 컨트롤을 설명합니다.

한국어

1. Flow Actions를 OBS에 연결

OBS WebSocket v5는 OBS 28 이상에 내장되어 있습니다. Social Stream Ninja는 전체 OBS 제어와 미디어 이벤트에 이를 사용합니다.

  1. OBS에서 다음을 여세요: 도구 → WebSocket 서버 설정.
  2. WebSocket 서버를 켜세요. 기본 포트는 4455를 유지하고 원하면 비밀번호를 설정하세요.
  3. Social Stream Ninja에서 다음을 여세요: 흐름 동작 (Flow Actions) 섹션에서 OBS WebSocket URL과 선택적인 비밀번호를 설정하세요.
  4. Flow Actions URL을 복사하고 열어 두세요. 오버레이/오디오 작업에는 OBS 브라우저 소스를 권장합니다.
  5. 사용: OBS WebSocket 테스터 로 흐름을 만들기 전에 연결을 확인하세요.
직접 URL 예시
https://socialstream.ninja/actions.html?session=YOUR_SESSION&obsws=ws://127.0.0.1:4455

추가: &obspw=YOUR_PASSWORD 는 OBS에 인증이 필요한 경우에만 추가하세요. 추가 옵션: &obsdebug=1 를 추가하면 문제 진단 중 작은 연결 상태 배지를 표시합니다.
Flow Actions 페이지를 계속 실행하세요. Event Flow 작업을 받아 OBS WebSocket 요청을 보내는 브리지입니다. OBS 브라우저 소스라면 다음을 끄세요: 보이지 않을 때 소스 종료 (Shutdown source when not visible) . 소스가 숨겨져 있어도 OBS를 계속 제어해야 하는 경우입니다.
채팅 / 방송 이벤트 │ ▼ Social Stream Ninja Event Flow │ 같은 세션 ID ▼ Flow Actions 페이지 (actions.html) │ OBS WebSocket v5 · ws://127.0.0.1:4455 ▼ OBS Studio

두 가지 OBS 연결 모드

모드지원 기능요구 사항
OBS WebSocket v5이 가이드의 모든 트리거와 작업.OBS 28+, WebSocket 서버 활성화, Flow Actions 페이지 열림.
OBS 브라우저 소스 API장면 변경, 방송 시작/중지, 녹화 시작/중지, 리플레이 버퍼 저장의 대체 경로.Advanced Access Level로 OBS 안에 로드된 Flow Actions. 소스, 필터, 텍스트, 볼륨, 미디어, 새로고침, 미디어 종료 기능에는 여전히 WebSocket이 필요합니다.

2. 흐름에 OBS 노드 추가

  1. 다음을 여세요: Event Flow 편집기 에서 흐름을 만들거나 편집하세요.
  2. 트리거를 캔버스로 끌어 놓으세요.
  3. 펼칠 항목: OBS Studio 를 Actions 목록에서 선택하고 필요한 OBS 작업을 끌어 놓으세요.
  4. 트리거를 작업에 연결하고 정확한 OBS 장면/소스 이름을 설정한 뒤 저장하고 흐름을 활성화하세요.
Social Stream Ninja Event Flow 편집기의 OBS Studio 작업 목록
OBS Studio 그룹에는 장면, 소스, 텍스트, 미디어, 오디오, 필터, 출력, 리플레이 버퍼 컨트롤이 있습니다.
OBS 이름은 공백과 문장부호까지 정확히 일치해야 합니다. 소스 작업은 OBS 입력 이름을 대상으로 하며 별도로 변경한 장면 항목 표시 이름을 사용하지 않습니다.

3. OBS 트리거

OBS가 일치하는 이벤트를 보고하면 흐름을 시작합니다. 수신 형식: type: "obs"이며 OBS 전용 세부 정보는 다음 아래에 있습니다: meta.

트리거실행 시점유용한 데이터
OBS 방송 시작 (OBS Stream Started)방송이 시작 상태에 도달합니다.meta.outputState, meta.outputActive
OBS 방송 중지 (OBS Stream Stopped)방송이 중지 상태에 도달합니다.meta.outputState, meta.outputActive
OBS 녹화 시작 (OBS Recording Started)녹화가 시작됩니다.meta.outputState
OBS 녹화 중지 (OBS Recording Stopped)녹화가 중지됩니다.meta.outputState
OBS 장면 변경 (OBS Scene Changed)활성 프로그램 장면이 바뀝니다.meta.sceneName
OBS 미디어 종료 (OBS Media Ended) WebSocket미디어 입력이 재생을 마칩니다. 필요하면 정확한 Media Source Name으로 필터링하세요.meta.inputName, meta.inputUuid
OBS 리플레이 버퍼 저장 (OBS Replay Buffer Saved)OBS가 리플레이 저장을 마칩니다.meta.savedReplayPath

4. OBS 작업

동작설정 및 동작연결
장면 변경 (Change Scene)정확한 장면 이름으로 활성 프로그램 장면을 전환합니다.WebSocket 또는 브라우저 소스 API 대체 경로
소스 전환 (Toggle Source)장면 항목을 표시하거나 숨기거나 전환합니다. Scene과 Group은 선택적인 대상 지정 필드입니다.WebSocket
텍스트 소스 설정 (Set Text Source)템플릿 자리표시자를 사용하여 Text (GDI+) 또는 Text (FreeType 2)를 업데이트합니다.WebSocket
미디어 소스 제어 (Control Media Source)재생/이어서 재생, 일시정지, 다시 시작, 중지, 다음, 이전.WebSocket
소스 볼륨 설정 (Set Source Volume)입력의 설정 범위: -100 대상: +26 dB입니다.WebSocket
브라우저 소스 새로고침 (Refresh Browser Source)캐시 없이 브라우저 소스를 다시 로드합니다.WebSocket
필터 전환 (Toggle Filter)이름으로 지정한 소스 필터를 켜거나 끄거나 전환합니다.WebSocket
오디오 음소거/해제 (Mute/Unmute Audio)입력을 음소거하거나 해제하거나 전환합니다.WebSocket
녹화 시작 (Start Recording)OBS 녹화를 시작합니다.WebSocket 또는 브라우저 소스 API 대체 경로
녹화 중지 (Stop Recording)OBS 녹화를 중지합니다.WebSocket 또는 브라우저 소스 API 대체 경로
방송 시작 (Start Streaming)설정된 OBS 방송 출력을 시작합니다.WebSocket 또는 브라우저 소스 API 대체 경로
방송 중지 (Stop Streaming)OBS 방송 출력을 중지합니다.WebSocket 또는 브라우저 소스 API 대체 경로
리플레이 버퍼 제어 (Control Replay Buffer)리플레이 버퍼를 시작하거나 중지하거나 전환합니다.WebSocket
리플레이 버퍼 저장 (Save Replay Buffer)현재 실행 중인 리플레이 버퍼를 저장합니다.WebSocket 또는 브라우저 소스 API 대체 경로

텍스트 소스 설정과 흐름 변수

텍스트 입력란은 다음과 같은 일반 메시지 자리표시자를 지원합니다: {username}, {message}, {source}, 그리고 {donation}, 그리고 앞선 흐름 노드가 추가한 값도 지원합니다. 예: {counterValue}, {counterTarget}, 그리고 {counterRemaining}.

{username}: now {counterValue}, need {counterTarget}
카운터 템플릿 변수가 지정된 Set Text Source 속성
Set Text Source는 변환된 값을 이름으로 지정한 OBS 텍스트 입력에 직접 씁니다.
Text (GDI+) 또는 Text (FreeType 2) 소스에서 끌 항목: 파일에서 읽기 (Read from file)을 끄세요. 그렇지 않으면 OBS가 Event Flow에서 보낸 텍스트 대신 파일 내용을 계속 표시할 수 있습니다.

미디어 소스 컨트롤

재생 / 일시정지

재생 는 일시정지된 미디어를 이어서 재생합니다. 일시정지 는 현재 위치를 유지합니다.

다시 시작 / 중지

다시 시작 는 처음부터 재생합니다. 중지 는 재생을 끝내고 입력을 초기화합니다.

다음 / 이전

VLC Video Source처럼 재생 목록을 지원하는 입력에서 다음/이전 항목으로 이동합니다. 단일 파일 Media Source는 이 작업을 무시할 수 있습니다.

볼륨, 음소거, 필터

소스 볼륨 설정 (Set Source Volume) 는 OBS 믹서 눈금과 같은 dB 단위를 사용합니다: 0 dB 는 게인 변화 없음, 음수는 더 작은 소리이며 -100 dB 는 사실상 무음입니다. 음소거는 별도의 상태입니다. Toggle Filter는 기존 필터의 활성화 상태만 바꾸며 필터 설정을 편집하지 않습니다.

리플레이 버퍼

먼저 다음에서 리플레이 버퍼를 켜세요: OBS 설정 → 출력. 사용: 리플레이 버퍼 제어 (Control Replay Buffer) 로 시작/중지한 뒤 리플레이 버퍼 저장 (Save Replay Buffer) 로 최근 버퍼 구간을 디스크에 저장하세요.

실제 출력 주의: 방송 시작/중지와 녹화 시작/중지는 즉시 실행됩니다. 일반 채팅 메시지가 실수로 실행하지 않도록 엄격한 트리거, 권한, 재사용 대기 시간을 적용하세요.

5. 유용한 예시

OBS 방송 중 매시간 메시지

Event Flow 편집기에서 다음을 선택하세요: 템플릿으로 시작 → 중급 → OBS 방송 중 매시간 메시지을 선택하세요. 처음에는 비활성화되어 있으며 하나의 흐름에 세 분기가 포함됩니다:

  • OBS Stream Started → Set Gate State: ON
  • Time Interval (3600초) → ON/OFF Switch → Send Message
  • OBS Stream Stopped → Set Gate State: OFF

두 Set Gate State 작업은 이미 기본값이 OFF인 같은 스위치를 대상으로 합니다. 편집할 항목: 메시지 전송 (Send Message) 에서 채팅 플랫폼(예시는 Twitch)과 메시지를 선택하세요. 플랫폼 또는 All Platforms를 선택해야 합니다. Reply to Source는 OBS 이벤트나 타이머에 답변할 수 없습니다.

Flow Actions를 OBS에 연결, Social Stream과 대상 채팅을 연결된 상태로 유지한 뒤 흐름을 저장하고 활성화하세요 를 방송 시작 전에 실행하세요입니다. 스위치는 OBS 시작 이벤트를 기다립니다. 이미 방송 중일 때 로드해도 ON으로 바뀌지 않습니다. Social Stream을 다시 시작해도 스위치는 OFF로 초기화됩니다.

실행 시점: 간격 타이머는 자체 일정으로 실행되므로 첫 알림은 방송 시작 후 한 시간이 되기 전에 도착할 수 있습니다. 이후 스위치가 ON인 동안 매시간 반복됩니다. 빈도를 바꾸려면 초 단위의 Time Interval 값을 변경하세요.

OBS의 카운터 텍스트

배치할 노드: 텍스트 소스 설정 (Set Text Source) 를 카운터/검사 경로 뒤에 배치하고 다음을 사용하세요:

{username}: now {counterValue}, need {counterTarget}

동영상 종료 후 작업 실행

OBS 미디어 종료 (OBS Media Ended) (필터 대상: Intro Video) → 장면 변경 (Change Scene) 대상: Main.

채팅으로 미디어 다시 시작

메시지 정확히 일치 (Message Equals) !replayintro → 권한 조건 → 미디어 소스 제어: 다시 시작.

알림 페이지 새로고침

메시지 정확히 일치 (Message Equals) !refreshalerts → 관리자 조건 → 브라우저 소스 새로고침 (Refresh Browser Source).

알림 중 음악 볼륨 낮추기

소스 볼륨 설정 (Set Source Volume) 대상: -24 dB → 알림 작업 → Delay → 다음으로 복원: 0 dB.

리플레이 워크플로

OBS 방송 시작 (OBS Stream Started) → 리플레이 버퍼 제어: 시작. 별도의 신뢰할 수 있는 명령으로 실행할 작업: 리플레이 버퍼 저장 (Save Replay Buffer).

6. 기타 내장 OBS 컨트롤

Social Stream Ninja에는 스트리밍 채팅 도크의 기존 OBS 브라우저 소스 컨트롤도 있습니다. 이 기능은 Flow Actions WebSocket 브리지를 사용하지 않습니다.

옵션역할요구 사항
현재 OBS 장면 표시스트리밍 채팅 도크에 활성 장면을 표시합니다.읽기 권한으로 OBS 안에 로드된 도크.
게스트가 !cycle 사용 가능다음 OBS 장면으로 전환하며 10초에 한 번으로 제한됩니다.팝업 옵션을 켜고 OBS 안의 도크에 Advanced 접근 권한을 부여하세요.
권한이 있는 사용자가 !start / !stop 사용 가능신뢰하는 채팅 사용자의 명령으로 방송을 시작하거나 중지합니다.팝업 옵션을 켜고 OBS 안의 도크에 Full/Advanced 제어 권한을 부여하세요.
원격 OBS 제어 패널장면을 표시하고, 대상 OBS 도크에 필요한 제어 권한이 있으면 장면 전환이나 방송/녹화 켜기/끄기를 수행합니다.OBS 안에서 실행되는 도크와 연결된 스트리밍 채팅 도크.
OBS WebSocket 테스터Event Flow를 사용하기 전에 버전, 연결, 장면, 개별 요청을 확인합니다.테스터 열기

7. 문제 해결

문제확인:
아무 동작도 하지 않음흐름을 저장하고 활성화했으며 Flow Actions가 열려 있고 둘의 세션 ID가 같아야 합니다.
OBS가 연결되지 않음WebSocket 서버가 켜져 있고 URL이 ws://127.0.0.1:4455, 비밀번호가 일치하는지 확인하세요. 포트 4444 는 오래된 v4 기본값입니다.
장면/소스/필터를 찾지 못함정확한 OBS 이름을 복사하세요. 표시 여부를 제어할 항목이 중첩되어 있거나 현재 장면 밖에 있다면 Scene 또는 Group을 지정하세요.
텍스트가 바뀌지 않음Text (GDI+) 또는 Text (FreeType 2)를 사용하고 입력 이름을 확인한 뒤 다음을 끄세요: 파일에서 읽기 (Read from file).
Media Ended가 실행되지 않음OBS WebSocket v5와 실제 미디어 입력을 사용하세요. 반복 재생 미디어는 종료 상태에 도달하지 않습니다.
다음/이전이 작동하지 않음VLC Video Source처럼 재생 목록을 지원하는 소스를 사용하세요.
리플레이 저장 실패OBS 출력 설정에서 리플레이 버퍼를 켜고 저장하기 전에 시작하세요.
장면을 바꾸면 작업이 멈춤비활성화할 항목: 보이지 않을 때 소스 종료 (Shutdown source when not visible) 을 Flow Actions 브라우저 소스에서 끄거나 다른 곳에 페이지를 열어 두세요.
진단 순서: 다음을 여세요: 테스터 → 확인할 항목: GetVersion → 장면/입력 확인 → 개별 요청 테스트 → 전체 Event Flow 테스트.