Nesta página
O que é um type?
type é o identificador canônico da fonte em um payload recebido do Social Stream. Sobreposições, filtros de URL, APIs e Event Flow o usam para distinguir plataformas e variantes de fontes.
{
"type": "youtubeshorts",
"chatname": "Ava",
"chatmessage": "Hello from Shorts"
}
| Nome | Significado | Não confunda com |
|---|---|---|
type |
A fonte do payload recebido, como youtube ou instagramlive. |
Um rótulo de exibição, modo de conexão ou nome de evento. |
event |
O que aconteceu, como superchat, gift, ou viewer_update. |
A plataforma que o produziu. |
sourceName |
Um nome opcional de exibição de canal, sala ou fonte. | O valor estável usado por um gatilho Da origem. |
tid |
O ID da aba ou janela de fonte do desktop de origem, usado para responder e excluir a origem. | Um tipo de plataforma. |
Aplicativo de desktop target |
A categoria salva usada para escolher URL, modo e script de captura. | Uma garantia de que todo payload emitido tenha a mesma string. |
Importante: O gatilho Da origem (From Source) compara seu valor configurado diretamente com message.type. Use o valor exato em letras minúsculas do payload.
Tipos comuns e confusos
| Nome de captura ou da interface | Tipo do payload | Por que pode surpreender |
|---|---|---|
| Chat ao vivo do YouTube | youtube |
DOM, consulta periódica de API e WebSocket/streaming descrevem o transporte, não tipos separados. |
| Chat ao vivo do YouTube Shorts | youtubeshorts |
Ele é distinto nos filtros de entrada e destinos de repasse do Event Flow, enquanto os controles compartilhados do YouTube ainda tratam ambas as variantes como uma família quando necessário. |
| Instagram Live / InstaFeed ao vivo | instagramlive |
Comentários de publicações e feeds do Instagram usam instagram. |
| TikFinity | tiktok |
TikFinity é o conector; a plataforma normalizada continua sendo TikTok. |
| X | x, ou o antigo twitter com a opção de identidade visual do Twitter |
Filtros existentes podem preservar intencionalmente o nome antigo. |
| Opções regionais do Bilibili | bilibili |
Destinos e scripts do desktop podem usar bilibilicom ou bilibilitv, enquanto os payloads são normalizados. |
| Eventos de sistema do OBS | obs |
Não são fontes de chat, mas podem entrar no Event Flow com eventos como scene_changed. |
Use: Referência de eventos para o contrato dos campos e Sites compatíveis para nomes públicos de configuração das plataformas.
YouTube Shorts e Event Flow
A correspondência de entrada é exata: use youtubeshorts em um gatilho Da origem para mensagens de Shorts, e youtube para o chat ao vivo normal do YouTube.
A correspondência de saída também é exata: Repassar chat os trata como destinos separados.
- Destino
youtubeenvia somente às janelas normais de chat ao vivo do YouTube. - Destino
youtubeshortsenvia somente às janelas de chat ao vivo do YouTube Shorts. - Para atingir ambos, adicione uma ação para cada destino ou repasse a todas as plataformas excluindo a origem.
Outros controles gerais do YouTube podem tratar intencionalmente os dois tipos como uma família de plataforma. Isso não muda a correspondência exata do Event Flow acima.
Solução de problemas em versões antigas
Versões antigas agrupavam os dois destinos de repasse, então duas ações podiam enviar duas vezes a cada janela do YouTube. Atualize o Social Stream Ninja se isso acontecer. Um Filtro de ecos evita ciclos de repasse, mas não corrige a sobreposição da correspondência de destinos nessas versões antigas.
Continue com o Guia do Event Flow ou Guia de configuração do YouTube.
Instagram Live versus comentários do Instagram
Use instagramlive para chat de salas ao vivo capturado pela fonte Instagram Live ou InstaFeed ao vivo. Use instagram para comentários de feed, publicações ou comentários estáticos fora de lives.
- Fluxo de chat ao vivo: Da origem =
instagramlive. - Fluxo de publicação/comentário: Da origem =
instagram. - Ambos: use dois gatilhos que alimentam uma ação compartilhada, ou um gatilho Qualquer origem seguido de um filtro que considere o tipo.
A marca visível Instagram não basta para escolher o tipo; o contexto do conteúdo separa os dois.
Fontes genéricas, personalizadas e sem nome
sources/generic.js é uma alternativa genérica de captura DOM. Procura linhas comuns de chat, nomes, mensagens, avatares e campos de entrada. Começa com generic, depois normalmente deriva um tipo em letras minúsculas a partir de uma plataforma conhecida ou do nome de host da página.
- Use para comprovar que um chat DOM comum pode ser capturado antes de escrever uma fonte dedicada.
- Não espere suporte confiável a eventos, moderação, exclusão, listas virtualizadas ou shadow DOM fechado.
- Um tipo derivado do nome de host é conveniente, mas não é um contrato público permanente. Confirme o payload emitido antes de criar filtros com base nele.
- Se uma fonte não tiver um nome de plataforma estabelecido, escolha um
type. UsesourceNamepara o rótulo de sala ou canal exibido às pessoas. - Se ainda não existir uma identidade estável,
genericestável em letras minúsculas, o que é mais seguro do que alterar o tipo a cada mensagem. Integrações externas costumam usar um valor intencional, comoexternal.
Assim que usuários, sobreposições ou fluxos dependerem de um novo tipo, documente-o na Referência de eventos em vez de renomeá-lo silenciosamente.
Injeção de scripts no aplicativo para desktop
O aplicativo para desktop salva um target, escolhe um ou mais sourceFile/sourceFiles, abre uma janela de fonte e injeta scripts de captura compartilhados deste projeto. Uma ponte de compatibilidade com o runtime do Chrome transporta mensagens capturadas e comandos de resposta entre a página e o aplicativo.
- O destino e o nome do arquivo do script não precisam corresponder ao tipo do payload. A resposta
youtubeshortscarregasources/youtube.js, que emiteyoutubeouyoutubeshortsdo contexto da página. - Destinos do Bilibili também são mapeados para scripts compartilhados/regionais, emitindo
bilibili. sources/inject/*.jssão auxiliares no contexto da página para sockets ou variáveis da página. O wrapper da fonte continua responsável pelo payload canônico.- Quando vários scripts forem injetados, evite que todos os auxiliares declarem o mesmo destino de saída. A identidade de captura e a capacidade de resposta são questões separadas.
- As alterações de captura de fontes devem ser feitas nos arquivos
sources/deste repositório. O aplicativo para desktop os utiliza; a cópia alternativa empacotada não é a referência.
Os mantenedores podem rastrear a configuração na criação de index.html janelas de fontes do aplicativo para desktop, depois main.js e preload.js para injeção e ponte.
Responder e repassar para fontes
A identidade de entrada e a capacidade de saída estão relacionadas, mas não são o mesmo contrato.
| Ação | Como a escolha é feita | Falha comum |
|---|---|---|
| Responder à origem | Usa tid para endereçar a aba/janela exata de origem. |
Não tid, ou esse modo de captura não pode enviar mensagens de chat. |
| Repassar para uma plataforma | Pergunta às fontes abertas se elas oferecem suporte a esse destino de saída. | A variante selecionada não tem uma janela de fonte aberta correspondente ou a fonte não pode enviar chat. |
| Repassar para todos, exceto a origem | Transmite para fontes que podem receber o encaminhamento e exclui a origem tid. |
Uma fonte não aceita entrada automatizada ou um eco é capturado novamente. |
- A resposta
getSourceé um sinal de capacidade de encaminhamento de saída. Controles compartilhados do YouTube podem agrupar as duas variantes, enquanto Repassar chat adiciona o contexto exato da URL do Shorts à correspondência de destinos. - A captura genérica pode encontrar e focar campos de entrada prováveis, mas isso não garante que o site aceite um envio automatizado.
- Os modos API/WebSocket podem enviar pelas APIs das plataformas em vez de digitar na página visível.
- No aplicativo para desktop, Bot somente para respostas (sem captura) mantém uma fonte disponível para respostas/status, suprimindo suas mensagens capturadas normais.
- Teste o suporte a respostas com uma janela de fonte antes de criar um repasse multiplataforma.
Onde encontrar detalhes exatos
- Referência de eventos: campos canônicos e nomes de eventos das plataformas.
- Guia do Event Flow: gatilhos, ações, modelos, tratamento de ecos e testes.
- Modos do aplicativo independente: comportamento das janelas de fontes e dos modos de conexão.
- Sites compatíveis: nomes de plataformas e requisitos de configuração.
- Fontes genéricas e personalizadas: alternativas e captura externa.
- Janelas de fontes do aplicativo para desktop: detalhes internos de destino, script, ponte e modo somente respostas.
- Adicionar uma fonte: contratos de fontes, auxiliares de injeção, manifestos e documentação.
Ao investigar problemas, inspecione um payload bruto e registre seu type, event, sourceName, e tid. Isso geralmente separa correspondência de entrada, encaminhamento de saída e duplicação de captura.