소스 유형

수신 필터에는 페이로드의 정확한 소스 이름을 사용하고 채팅을 다시 보내기 전에 대상 계열을 이해하세요.

알아보기: type?

type 은 수신 Social Stream 페이로드의 표준 소스 식별자입니다. 오버레이, URL 필터, API, 이벤트 흐름이 플랫폼과 소스 변형을 구분하는 데 사용합니다.

{
  "type": "youtubeshorts",
  "chatname": "Ava",
  "chatmessage": "Hello from Shorts"
}
이름 의미 혼동하지 말아야 할 것
type 수신 페이로드의 소스이며 예시는 youtube 또는 instagramlive. 표시 레이블, 연결 모드 또는 이벤트 이름.
event 발생한 일이며 예시는 superchat, gift, 또는 viewer_update. 이를 생성한 플랫폼.
sourceName 선택적인 채널, 방 또는 소스 표시 이름. From Source 트리거에 사용하는 안정적인 값.
tid 답장 및 소스 제외에 사용하는 원본 탭 또는 데스크톱 소스 창 ID. 플랫폼 유형.
데스크톱 앱 target URL, 모드, 캡처 스크립트를 선택하는 데 사용하는 저장된 분류. 출력되는 모든 페이로드가 같은 문자열을 사용한다는 보장.

중요: 이벤트 흐름의 소스 기준(From Source) 트리거는 설정한 값을 다음과 직접 비교합니다: message.type와 비교합니다. 페이로드의 정확한 소문자 값을 사용하세요.

자주 사용하지만 혼동하기 쉬운 유형

캡처 또는 UI 이름 페이로드 유형 혼동하기 쉬운 이유
YouTube 라이브 채팅 youtube DOM, API 폴링, WebSocket/스트리밍은 별도 유형이 아닌 전송 방식을 설명합니다.
YouTube Shorts 라이브 채팅 youtubeshorts 수신 필터와 이벤트 흐름 릴레이 대상에서는 별개이며 공용 YouTube 제어는 필요에 따라 두 변형을 하나의 계열로 취급합니다.
Instagram Live / InstaFeed 라이브 instagramlive Instagram 게시물 및 피드 댓글은 다음을 사용합니다: instagram.
TikFinity tiktok TikFinity는 연결 도구이며 정규화된 플랫폼은 여전히 TikTok입니다.
X x, 또는 이전 이름인 twitter 를 Twitter 브랜딩 옵션과 함께 사용합니다. 기존 필터는 의도적으로 이전 이름을 유지할 수 있습니다.
Bilibili 지역 선택 bilibili 데스크톱 대상과 스크립트에는 bilibilicom 또는 bilibilitv라고 되어 있을 수 있지만 페이로드는 정규화됩니다.
OBS 시스템 이벤트 obs 채팅 소스는 아니지만 다음과 같은 이벤트로 이벤트 흐름에 들어올 수 있습니다: scene_changed.

사용: 이벤트 참고 문서 에서 필드 규약을 확인하고 지원 사이트 에서 공개 플랫폼 설정 이름을 확인하세요.

YouTube Shorts 및 이벤트 흐름

수신 일치는 정확한 값을 사용합니다: 사용할 값: youtubeshorts 를 Shorts 메시지용 From Source 트리거에 사용하고 youtube 를 일반 YouTube 라이브 채팅에 사용하세요.

발신 일치도 정확한 값을 사용합니다: Relay Chat은 서로 다른 대상으로 취급합니다.

  • 대상 youtube 는 일반 YouTube 라이브 채팅 창에만 보냅니다.
  • 대상 youtubeshorts 는 YouTube Shorts 라이브 채팅 창에만 보냅니다.
  • 둘 다에 보내려면 대상마다 동작을 하나씩 추가하거나 소스를 제외한 모든 플랫폼에 릴레이하세요.

다른 YouTube 공통 제어는 의도적으로 두 유형을 같은 플랫폼 계열로 처리할 수 있습니다. 이는 위의 정확한 이벤트 흐름 일치 방식을 바꾸지 않습니다.

이전 버전 문제 해결

이전 버전은 두 릴레이 대상을 묶어 처리했으므로 동작 두 개가 각 YouTube 창에 두 번씩 보낼 수 있었습니다. 이런 일이 생기면 Social Stream Ninja를 업데이트하세요. Reflection Filter는 릴레이 루프를 방지하지만 이전 버전의 겹치는 대상 일치를 수정하지는 않습니다.

트리거, 필터, 동작 노드가 연결된 Social Stream Ninja 이벤트 흐름 편집기
From Source는 수신 페이로드 유형을 읽고 Relay Chat은 발신 소스 창을 선택합니다.

다음으로 계속하세요: Event Flow 가이드 또는 YouTube 설정 가이드.

Instagram Live와 Instagram 댓글 비교

사용: instagramlive 는 Instagram Live 또는 InstaFeed 라이브 소스에서 캡처한 라이브 방 채팅에 사용하세요. 다음은 instagram 을 비실시간 피드, 게시물 또는 일반 댓글에 사용하세요.

  • 라이브 채팅 흐름: From Source = instagramlive.
  • 게시물/댓글 흐름: From Source = instagram.
  • 둘 다: 두 트리거가 하나의 공용 동작으로 이어지게 하거나 Any Source 트리거 뒤에 유형을 구분하는 필터를 사용하세요.

화면에 Instagram 브랜드가 표시된다는 사실만으로 유형을 정할 수는 없습니다. 콘텐츠의 맥락이 둘을 구분합니다.

일반, 사용자 지정 및 이름 없는 소스

sources/generic.js 는 범용 DOM 캡처 폴백입니다. 일반적인 채팅 행, 이름, 메시지, 아바타, 입력란을 찾습니다. 시작 값은 generic으로 시작한 뒤 보통 알려진 플랫폼이나 페이지 호스트 이름에서 소문자 유형을 유도합니다.

  • 전용 소스를 작성하기 전에 일반 DOM 채팅을 캡처할 수 있는지 확인하는 데 사용하세요.
  • 이벤트, 관리, 삭제, 가상화 목록, 닫힌 shadow DOM 지원이 안정적이라고 기대하지 마세요.
  • 호스트 이름에서 유도한 유형은 편리하지만 영구적인 공개 규약은 아닙니다. 필터를 만들기 전에 출력되는 페이로드를 확인하세요.
  • 소스에 확립된 플랫폼 이름이 없다면 안정적인 소문자 값을 하나 선택하세요: type. 사용: sourceName 를 사람이 읽을 방 또는 채널 레이블에 사용하세요.
  • 아직 안정적인 식별자가 없다면 generic 을 쓰는 것이 메시지마다 유형을 바꾸는 것보다 안전합니다. 외부 통합은 보통 다음처럼 명시적으로 정한 값을 사용합니다: external.

사용자, 오버레이 또는 흐름이 새 유형에 의존하게 되면 다음에 문서화하세요: 이벤트 참고 문서 에 문서화하고 알리지 않은 채 이름을 바꾸지 마세요.

데스크톱 앱 스크립트 삽입

데스크톱 앱은 소스의 target을 저장하고 하나 이상의 sourceFile/sourceFiles을 선택하고 소스 창을 열어 이 프로젝트의 공용 캡처 스크립트를 삽입합니다. Chrome 런타임 호환 브리지가 페이지와 앱 사이에서 캡처 메시지와 답장 명령을 전달합니다.

  • 대상 및 스크립트 파일 이름은 페이로드 유형과 같을 필요가 없습니다. youtubeshorts 대상은 다음을 로드합니다: sources/youtube.js를 로드하며 다음을 출력합니다: youtube 또는 youtubeshorts 를 페이지 맥락에 따라 출력합니다.
  • Bilibili 대상도 공용/지역 스크립트에 매핑되며 출력 유형은 bilibili.
  • sources/inject/*.js 파일은 소켓이나 페이지 변수용 페이지 컨텍스트 도우미입니다. 표준 페이로드는 여전히 소스 래퍼가 담당합니다.
  • 여러 스크립트를 삽입할 때 모든 도우미가 같은 발신 대상을 담당한다고 선언하지 않게 하세요. 캡처 식별자와 답장 기능은 별개의 사항입니다.
  • 소스 캡처 변경은 이 저장소의 다음 위치에 해야 합니다: sources/ 파일을 변경하세요. 데스크톱 앱은 이를 사용하며 앱에 포함된 폴백 사본이 기준 소스는 아닙니다.
연결 모드가 표시된 Social Stream Ninja 데스크톱 앱 소스 항목
각 데스크톱 소스는 자체 대상, URL, 연결 모드, 캡처 스크립트를 유지합니다.

유지 관리자는 데스크톱 앱의 다음 파일에서 설정을 추적할 수 있습니다: index.html 의 소스 창 생성 부분을 확인한 뒤 main.js 그리고 preload.js 에서 삽입과 브리징을 확인하세요.

소스에 답장 및 릴레이

수신 식별자와 발신 기능은 관련되어 있지만 같은 규약은 아닙니다.

동작 선택 방식 자주 발생하는 오류
소스에 답장 사용할 값: tid 로 정확한 원본 탭/창을 지정합니다. 아니요 tid가 없거나 해당 캡처 모드가 채팅을 보낼 수 없습니다.
플랫폼으로 릴레이 열려 있는 소스에 해당 발신 대상을 지원하는지 묻습니다. 선택한 변형과 일치하는 열린 소스 창이 없거나 소스가 채팅을 보낼 수 없습니다.
소스를 제외한 모두에게 릴레이 라우팅 가능한 소스에 브로드캐스트하되 원본을 제외합니다: tid. 소스가 자동 입력을 받지 못하거나 반사 메시지가 다시 캡처됩니다.
  • 소스 스크립트의 getSource 응답은 발신 라우팅 가능 여부를 알리는 신호입니다. 공용 YouTube 제어는 두 변형을 묶을 수 있지만 Relay Chat은 대상 일치에 정확한 Shorts URL 맥락을 추가합니다.
  • 일반 캡처는 입력란으로 보이는 요소를 찾아 포커스할 수 있지만 사이트가 자동 전송을 받아들인다는 보장은 없습니다.
  • API/WebSocket 모드는 보이는 페이지에 입력하는 대신 플랫폼 API로 전송할 수 있습니다.
  • 데스크톱 앱에서는 봇 답장 전용(캡처 없음) (Bot reply-only (no capture)) 는 일반 캡처 메시지를 억제하면서 답장/상태용 소스는 사용 가능하게 유지합니다.
  • 다중 플랫폼 릴레이를 만들기 전에 소스 창 하나로 답장 지원을 시험하세요.

정확한 세부 정보를 찾을 곳

디버깅할 때 원시 페이로드 하나를 검사하고 다음을 기록하세요: type, event, sourceName, 그리고 tid를 기록하세요. 보통 이를 통해 수신 일치, 발신 라우팅, 중복 캡처 문제를 구분할 수 있습니다.