youtubei
Version:
Simple package to get information from youtube such as videos, playlists, channels, video information & comments, related videos, up next video, and more!
30 lines (29 loc) • 1.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.LiveVideoParser = void 0;
const BaseVideo_1 = require("../BaseVideo");
class LiveVideoParser {
static loadLiveVideo(target, data) {
var _a;
const videoInfo = BaseVideo_1.BaseVideoParser.parseRawData(data);
target.watchingCount = +videoInfo.viewCount.videoViewCountRenderer.viewCount.runs
.map((r) => r.text)
.join(" ")
.replace(/[^0-9]/g, "");
target.chatContinuation = (_a = data.response.contents.twoColumnWatchNextResults.conversationBar.liveChatRenderer) === null || _a === void 0 ? void 0 : _a.continuations[0].reloadContinuationData.continuation;
return target;
}
static parseChats(data) {
var _a;
return (((_a = data.continuationContents.liveChatContinuation.actions) === null || _a === void 0 ? void 0 : _a.flatMap((a) => { var _a; return ((_a = a.addChatItemAction) === null || _a === void 0 ? void 0 : _a.item.liveChatTextMessageRenderer) || []; })) || []);
}
static parseContinuation(data) {
const continuation = data.continuationContents.liveChatContinuation.continuations[0];
const continuationData = continuation.timedContinuationData || continuation.invalidationContinuationData;
return {
timeout: continuationData.timeoutMs,
continuation: continuationData.continuation,
};
}
}
exports.LiveVideoParser = LiveVideoParser;