Skip to content
#! Tool● LIVE

ViralCaptions

Automated X (Twitter) caption scraper & engagement bot

ViralCaptions screenshot

About

A desktop app that scrapes trending captions from your X home feed using AdsPower browser profiles, filters them with customizable blocklists, and automatically logs results to Google Sheets. It also auto-likes top-performing posts and supports scheduled scraping via cron jobs.

Tech Stack

ElectronTypeScriptExpressPlaywrightGoogle Sheets APIPocketBaseWebSockets

Info

Category
Tool
Status
LIVE
Technologies
7

Architecture

profilescaptionslogdisplay🌐AdsPowerPlaywright🔍Filter📊Sheets APIElectron UI

Code Preview

TypeScriptscraper.ts
1async function scrapeFeed(profile: BrowserProfile) {
2 const browser = await adspower.connect(profile.id);
3 const page = await browser.newPage();
4
5 await page.goto("https://x.com/home");
6 await page.waitForSelector('[data-testid="tweet"]');
7
8 const tweets = await page.$$eval(
9 '[data-testid="tweet"]',
10 (els) => els.map((el) => ({
11 text: el.querySelector('[lang]')?.textContent,
12 likes: parseMetric(el, "like"),
13 retweets: parseMetric(el, "retweet"),
14 views: parseMetric(el, "analytics"),
15 }))
16 );
17
18 const filtered = tweets.filter(
19 (t) => !blocklist.some((b) => t.text?.includes(b))
20 );
21
22 await sheets.append(profile.sheetId, filtered);
23 return filtered;
24}