Types de sources

Utilisez le nom exact de la source des données pour les filtres entrants et identifiez la famille de destination avant de renvoyer du texte dans le chat.

Qu’est-ce qu’un type?

type est l’identifiant canonique de source dans les données Social Stream entrantes. Les incrustations, filtres d’URL, API et Event Flow l’utilisent pour distinguer les plateformes et les variantes de sources.

{
  "type": "youtubeshorts",
  "chatname": "Ava",
  "chatmessage": "Hello from Shorts"
}
Nom Signification À ne pas confondre avec
type La source des données entrantes, telle que youtube ou instagramlive. Un libellé d’affichage, un mode de connexion ou un nom d’événement.
event Ce qui s’est produit, par exemple superchat, gift, ou viewer_update. La plateforme qui l’a produit.
sourceName Un nom d’affichage facultatif pour la chaîne, le salon ou la source. La valeur stable utilisée par un déclencheur From Source.
tid L’identifiant de l’onglet ou de la fenêtre source de bureau d’origine, utilisé pour répondre et exclure la source. Un type de plateforme.
Application de bureau target La catégorie enregistrée utilisée pour choisir une URL, un mode et un script de capture. Une garantie que tous les messages émis possèdent la même chaîne.

Important : Le déclencheur Depuis la source (From Source) d’Event Flow compare directement la valeur configurée avec message.type. Utilisez la valeur exacte en minuscules des données transmises.

Types courants et noms prêtant à confusion

Nom de capture ou d’interface Type des données Ce qui peut surprendre
Chat en direct YouTube youtube DOM, interrogation d’API et WebSocket/streaming décrivent le transport, pas des types distincts.
Chat en direct YouTube Shorts youtubeshorts Ce type est distinct pour les filtres entrants et les destinations de relais Event Flow, tandis que les contrôles YouTube partagés continuent de traiter les deux variantes comme une même famille lorsque c’est nécessaire.
Instagram Live / InstaFeed live instagramlive Les commentaires des publications et du fil Instagram utilisent instagram.
TikFinity tiktok TikFinity est le connecteur ; la plateforme normalisée reste TikTok.
X x, ou l’ancien twitter avec l’option de marque Twitter Les filtres existants peuvent volontairement conserver l’ancien nom.
Choix régionaux Bilibili bilibili Les cibles et scripts de l’application de bureau peuvent indiquer bilibilicom ou bilibilitv, tandis que les données sont normalisées.
Événements système OBS obs Ce ne sont pas des sources de chat, mais ils peuvent entrer dans Event Flow avec des événements tels que scene_changed.

Utilisez : Référence des événements pour le contrat des champs et Sites pris en charge pour les noms publics de configuration des plateformes.

YouTube Shorts et Event Flow

La correspondance entrante est exacte : utilisez youtubeshorts dans un déclencheur From Source pour les messages Shorts, et youtube pour le chat en direct YouTube classique.

La correspondance sortante est également exacte : Relay Chat les traite comme des destinations distinctes.

  • Destination youtube envoie uniquement aux fenêtres de chat en direct YouTube classiques.
  • Destination youtubeshorts envoie uniquement aux fenêtres de chat en direct YouTube Shorts.
  • Pour atteindre les deux, ajoutez une action par destination ou relayez vers toutes les plateformes en excluant la source.

D’autres contrôles communs à YouTube peuvent volontairement traiter les deux types comme une seule famille de plateforme. Cela ne change pas la correspondance exacte d’Event Flow décrite ci-dessus.

Dépannage des anciennes versions

Les anciennes versions regroupaient les deux destinations de relais ; deux actions pouvaient donc envoyer deux fois à chaque fenêtre YouTube. Mettez Social Stream Ninja à jour si cela se produit. Un filtre de reflets (Reflection Filter) empêche les boucles de relais, mais ne corrige pas le chevauchement des destinations dans ces anciennes versions.

Éditeur Event Flow de Social Stream Ninja avec des nœuds de déclencheur, de filtre et d’action reliés
From Source lit le type des données entrantes ; Relay Chat sélectionne les fenêtres sources de destination.

Poursuivez avec le Guide Event Flow ou Guide de configuration YouTube.

Instagram Live et commentaires Instagram

Utilisez instagramlive pour les messages de salons en direct capturés par la source Instagram Live ou InstaFeed live. Utilisez instagram pour les commentaires de fil, de publication ou statiques hors direct.

  • Flux pour le chat en direct : Depuis la source (From Source) = instagramlive.
  • Flux pour les publications/commentaires : Depuis la source (From Source) = instagram.
  • Les deux : utilisez deux déclencheurs reliés à une action commune, ou un déclencheur Any Source suivi d’un filtre tenant compte du type.

La marque Instagram visible ne suffit pas à choisir le type ; le contexte du contenu distingue les deux.

Sources génériques, personnalisées et sans nom

sources/generic.js est une solution de repli générale de capture DOM. Elle recherche les lignes de chat, noms, messages, avatars et champs de saisie courants. Elle commence avec generic, puis déduit normalement un type en minuscules à partir d’une plateforme connue ou du nom d’hôte de la page.

  • Utilisez-la pour confirmer qu’un chat DOM ordinaire peut être capturé avant de développer une source dédiée.
  • Ne vous attendez pas à une prise en charge fiable des événements, de la modération, des suppressions, des listes virtualisées ou du DOM fantôme fermé.
  • Un type déduit du nom d’hôte est pratique, mais ne constitue pas un contrat public permanent. Vérifiez les données émises avant de créer des filtres qui en dépendent.
  • Si une source n’a pas de nom de plateforme établi, choisissez une valeur stable en minuscules pour type. Utilisez sourceName pour le libellé de salon ou de chaîne destiné aux utilisateurs.
  • Si aucune identité stable n’existe encore, generic est plus sûr que de changer de type à chaque message. Les intégrations externes utilisent souvent une valeur délibérée telle que external.

Dès que des utilisateurs, incrustations ou flux dépendent d’un nouveau type, documentez-le dans la Référence des événements au lieu de le renommer silencieusement.

Injection de scripts dans l’application de bureau

L’application de bureau enregistre une cible de source target, choisit un ou plusieurs sourceFile/sourceFiles, ouvre une fenêtre source et injecte les scripts de capture partagés de ce projet. Un pont de compatibilité Chrome-runtime transporte les messages capturés et les commandes de réponse entre la page et l’application.

  • Une cible et un nom de fichier de script ne correspondent pas nécessairement au type des données. La cible youtubeshorts charge sources/youtube.js, qui émet youtube ou youtubeshorts depuis le contexte de la page.
  • Les cibles Bilibili correspondent elles aussi à des scripts partagés/régionaux tout en émettant bilibili.
  • sources/inject/*.js sont des utilitaires exécutés dans le contexte de la page pour les sockets ou les variables de page. Le script d’encapsulation de la source reste responsable des données canoniques.
  • Lorsque plusieurs scripts sont injectés, évitez que chaque utilitaire revendique la même destination sortante. L’identité de capture et la capacité de réponse sont deux aspects distincts.
  • Les modifications de capture des sources doivent être effectuées dans les fichiers sources/ de ce dépôt. L’application de bureau les utilise ; sa copie de repli intégrée n’est pas la référence.
Entrées de sources de l’application de bureau Social Stream Ninja indiquant leurs modes de connexion
Chaque source de bureau conserve sa propre cible, son URL, son mode de connexion et son script de capture.

Les mainteneurs peuvent suivre la configuration dans le fichier de l’application de bureau index.html pour la création de la fenêtre source, puis main.js et preload.js pour l’injection et le pont.

Répondre aux sources et relayer vers elles

L’identité entrante et les capacités sortantes sont liées, mais constituent des contrats distincts.

Action Méthode de sélection Échec fréquent
Répondre à la source Utilise tid pour cibler l’onglet/la fenêtre d’origine exact. Non tid, ou ce mode de capture ne permet pas d’envoyer des messages.
Relayer vers une plateforme Demande aux sources ouvertes si elles prennent en charge cette destination sortante. Aucune fenêtre source ouverte ne correspond à la variante choisie, ou la source ne peut pas envoyer de messages.
Relayer vers toutes les plateformes sauf la source Diffuse vers les sources joignables et exclut la source d’origine tid. Une source ne peut pas accepter une saisie automatisée, ou un reflet est capturé à nouveau.
  • La réponse getSource est un signal indiquant la possibilité de router vers une destination. Les contrôles YouTube partagés peuvent regrouper les deux variantes, tandis que Relay Chat ajoute le contexte exact des URL Shorts pour sélectionner la destination.
  • La capture générique peut trouver et sélectionner des champs de saisie probables, sans garantir que le site acceptera un envoi automatisé.
  • Les modes API/WebSocket peuvent envoyer les messages via les API des plateformes plutôt qu’en les saisissant dans la page visible.
  • Dans l’application de bureau, Bot en réponse uniquement, sans capture (Bot reply-only (no capture)) garde une source disponible pour les réponses/l’état tout en supprimant ses messages normalement capturés.
  • Testez la prise en charge des réponses avec une seule fenêtre source avant de créer un relais multiplateforme.

Où trouver les détails exacts

Pour déboguer, examinez un message brut et notez ses champs type, event, sourceName, et tid. Cela permet généralement de distinguer la sélection des messages entrants, le routage sortant et les captures en double.