const { YoutubeToolsService } = require('./dist/modules/youtube-tools/youtube-tools.service'); // We need to mock Prisma and Logger const mockPrisma = { youtubeAnalysis: { create: async (data) => console.log('Saved to DB') } }; const mockLogger = { log: console.log, error: console.error }; async function test() { const service = new YoutubeToolsService(mockPrisma); service.logger = mockLogger; // We can't easily inject the whole nest app, but we can just copy the comment extraction logic const { Innertube } = require('youtubei.js'); const youtubeClient = await Innertube.create({ lang: 'tr', location: 'TR' }); const videoId = 'ix8cLltPCCE'; const commentThread = await youtubeClient.getComments(videoId); let comments = []; if (commentThread.contents) { for (const thread of commentThread.contents) { if (thread.comment?.content?.text) { comments.push(thread.comment.content.text); } } } let currentThread = commentThread; let pages = 0; while (currentThread.has_continuation && comments.length < 5000 && pages < 250) { pages++; const next = await currentThread.getContinuation(); if (next.contents) { for (const thread of next.contents) { if (thread.comment?.content?.text) { comments.push(thread.comment.content.text); } } } currentThread = next; } console.log('Total fetched by logic:', comments.length); } test().catch(console.error);