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