이 페이지에서
알아보기: 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는 릴레이 루프를 방지하지만 이전 버전의 겹치는 대상 일치를 수정하지는 않습니다.
다음으로 계속하세요: 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/파일을 변경하세요. 데스크톱 앱은 이를 사용하며 앱에 포함된 폴백 사본이 기준 소스는 아닙니다.
유지 관리자는 데스크톱 앱의 다음 파일에서 설정을 추적할 수 있습니다: index.html 의 소스 창 생성 부분을 확인한 뒤 main.js 그리고 preload.js 에서 삽입과 브리징을 확인하세요.
소스에 답장 및 릴레이
수신 식별자와 발신 기능은 관련되어 있지만 같은 규약은 아닙니다.
| 동작 | 선택 방식 | 자주 발생하는 오류 |
|---|---|---|
| 소스에 답장 | 사용할 값: tid 로 정확한 원본 탭/창을 지정합니다. |
아니요 tid가 없거나 해당 캡처 모드가 채팅을 보낼 수 없습니다. |
| 플랫폼으로 릴레이 | 열려 있는 소스에 해당 발신 대상을 지원하는지 묻습니다. | 선택한 변형과 일치하는 열린 소스 창이 없거나 소스가 채팅을 보낼 수 없습니다. |
| 소스를 제외한 모두에게 릴레이 | 라우팅 가능한 소스에 브로드캐스트하되 원본을 제외합니다: tid. |
소스가 자동 입력을 받지 못하거나 반사 메시지가 다시 캡처됩니다. |
- 소스 스크립트의
getSource응답은 발신 라우팅 가능 여부를 알리는 신호입니다. 공용 YouTube 제어는 두 변형을 묶을 수 있지만 Relay Chat은 대상 일치에 정확한 Shorts URL 맥락을 추가합니다. - 일반 캡처는 입력란으로 보이는 요소를 찾아 포커스할 수 있지만 사이트가 자동 전송을 받아들인다는 보장은 없습니다.
- API/WebSocket 모드는 보이는 페이지에 입력하는 대신 플랫폼 API로 전송할 수 있습니다.
- 데스크톱 앱에서는 봇 답장 전용(캡처 없음) (Bot reply-only (no capture)) 는 일반 캡처 메시지를 억제하면서 답장/상태용 소스는 사용 가능하게 유지합니다.
- 다중 플랫폼 릴레이를 만들기 전에 소스 창 하나로 답장 지원을 시험하세요.
정확한 세부 정보를 찾을 곳
- 이벤트 참고 문서: 표준 필드 및 플랫폼 이벤트 이름.
- Event Flow 가이드: 트리거, 동작, 템플릿, 반사 메시지 처리, 테스트.
- 독립 실행형 앱 모드: 소스 창 및 연결 모드 동작.
- 지원 사이트: 플랫폼 이름 및 설정 요구 사항.
- 일반 및 사용자 지정 소스: 폴백 및 외부 캡처.
- 데스크톱 앱 소스 창: target, 스크립트, 브리지, 답장 전용 내부 구조.
- 소스 추가: 소스 규약, 삽입 도우미, 매니페스트, 문서.
디버깅할 때 원시 페이로드 하나를 검사하고 다음을 기록하세요: type, event, sourceName, 그리고 tid를 기록하세요. 보통 이를 통해 수신 일치, 발신 라우팅, 중복 캡처 문제를 구분할 수 있습니다.