Простейший чат-логгер для стримов на Odysee (NodeJS, без авторизации) – Mikulski
Наложение сайта

Простейший чат-логгер для стримов на Odysee (NodeJS, без авторизации)

ДИСКЛЕЙМЕР:
Я не программист, а лишь энтузиаст-копипастер, который делится тем, в чем смог разобраться. Не исключено, что знающие специалисты некоторые моменты или формулировки могут счесть ошибочными или нелепыми.
Данный материал служит исключительно для ознакомительных целей.

Кулстори

В этой статье будет продемонстрирован и подробно описан очень простой JS-скрипт, который я использовал для логирования стрим-чата на площадке Odysee. Куда я транслировал Mikulski_Radio некоторое непродолжительное время. Решил поделиться, так сказать, для истории и с малой верой в то, что это сможет кому-то пригодиться еще.

Особенности

Подключение к чату происходит по веб-сокету с использованием библиотеки WS.
К сожалению, я так и не смог найти автоматизированного способа получения корректной wss-ссылки с нужными id. Поэтому ее придется извлекать вручную через инспектор браузера.
Впрочем, меня это не особо беспокоило, так как мое использование было в контексте круглосуточного стрима: один раз настроил и забыл. И я точно не помню уже, но вероятно, что на Odysee используется постоянный ключ трансляции и id-чата закрепляется за ним навсегда. Но я не экспериментировал с этим и могу ошибаться.
Кроме сообщений, также можно отлавливать донаты “LBC-кредитами” (внутренняя валюта площадки, типа bits на Twitch), а также текущее число зрителей. Отслеживания (follow) не приходят.

Как пользоваться

Так как это javascript, то нужны установленные nodejs и npm. Создайте папку и файл в нем с расширением .js.
Находясь внутри только что созданной директории, нужно установить репозиторий WS:

npm i ws

В js-файл нужно вставить скопированный код, который пойдет далее.
Теперь, чтобы найти нужную ссылку для подключения:
открыть в браузере страницу со стримом -> открыть инспектор (F12) -> вкладка сеть (Network) -> WS -> Обновите страницу (F5 или Ctrl+R) -> щелкните на строчку, где есть слово "commentron" -> Заголовки (Headers) -> тут будет строка Request URL со ссылкой, копируйте ее.
Полученную ссылку нужно подставить в скрипте строчку const link = “” и заключить в кавычки.

Скрипт

const WebSocket = require("ws");

const link = "insert wss-url here";

const chat = new WebSocket(link);

chat.on("error", console.error);

chat.addEventListener('open', function (event) {
    console.log("ODYSEE IS CONNECTED")
  });

chat.addEventListener('message', function (event) {
    let comment=JSON.parse(event.data);        
    let msg = comment.data.comment?.comment;
    let channel_name = comment.data.comment?.channel_name;
    let nickname = channel_name?.substring(1);
    let credits = comment.data.comment?.support_amount;

/// VIEWERS COUNT    
if (comment.type === 'viewers') {  
    return console.log(`[Odysee | Current Viewers : ${comment.data.connected} ]`)
}  

/// CHAT LOG
if (comment.type === 'delta') {  
   console.log(`[Odysee | ${nickname}] ${msg}`)

/// SUPPORT EVENT - LBC CREDITS
if (credits > 0) {  
    console.log(`[Odysee]: ${nickname} gives ${credits} LBC`)
    }   
}
});  

chat.on("close", () => {
  console.log("ODYSEE IS DISCONNECTED");
  process.exit(0);
});
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии