← All examples

JavaScript Developer & QA twitch.tv

Twitch: log chat messages to the console

Prints every new chat message in the browser console as "user: text", handy for debugging.

Code to copy

// Log every new chat message to the console as "user: text"
function logNewMessages(records) {
  records.forEach(function (rec) {
    rec.addedNodes.forEach(function (node) {
      if (node.nodeType !== 1) { return; }
      const line = node.matches && node.matches('.chat-line__message')
        ? node : (node.querySelector && node.querySelector('.chat-line__message'));
      if (!line) { return; }
      const user = line.querySelector('.chat-author__display-name');
      const body = line.querySelector('[data-a-target="chat-line-message-body"]');
      if (user && body) {
        console.log('[twitch-chat] ' + user.textContent + ': ' + body.textContent);
      }
    });
  });
}
const obs = new MutationObserver(logNewMessages);
obs.observe(document.documentElement, { childList: true, subtree: true });

How to use this example

  1. Copy the code with the button above.
  2. Install JustZix (2 minutes) and open the extension on the target page.
  3. Add a new rule matching that page.
  4. Paste the code into the rule's JavaScript panel and save — it runs on every page visit.

Rate this example

No ratings yet — be the first.

Does this example work?

Snippets are useless without somewhere to paste them.

JustZix takes 2 minutes to install and runs your code on every matching page. No account, no payment.

Download free See use cases