AI Systems · TikTok Miner · Live demo · seed data

TikTok Miner turns a creator's whole catalog into something you can ask questions of

I built an ETL pipeline that pulls a creator's whole catalog with its play counts, transcribes the videos I pick, then chunks and embeds everything into a vector store, the “Digital Brain” you can query.

Live demoseed data
2,050 videos10.7k chunks · $20.50 API cost
An evening, thirty videos

Studying one creator: three hours of scrolling, thirty videos, no pattern

Every short-form script I wrote started the same way: open a creator who was winning, watch at 2x, pause, retype the hook into a doc, screenshot the caption, scroll on. An evening of that produced notes on maybe thirty videos and a hunch about a pattern I could never check.

The accounts I most wanted to study made it worse. The sharpest playbooks in my niches lived on Douyin, in Chinese, behind catalogs of hundreds of videos. One question mattered: which openings does this creator repeat, and do the repeated ones earn the plays? A feed cannot answer that. A feed shows you videos one at a time, in the order it chooses, in whatever language they were shot. Somewhere around the hundredth swipe of one catalog I admitted the problem was not my patience. The catalog should be queryable, and no amount of disciplined note-keeping was going to make it so.

Before · studying one creator
Watch, pause, retype the hook3–4 min a video
One evening of scrolling~30 videos logged
The best scripts, on Douyinlanguage wall
The starting state: content research as a feed you scroll, notes that go stale in a week, and the strongest reference material locked behind a language I could not skim.
The other half

Research and production are two different tools

Miner is the research half. It embeds a whole catalog into a vector store and answers questions put to it, which is the shape I want when I am working out how someone keeps winning.

Hyper Creator is the production half. It starts from an idea I have already chosen and moves it through language, rewrite and voice until a publishable file exists. I open Miner to study a catalog, and I open Hyper Creator when one of those answers has to become a deliverable. They meet at the transcript, and each one stops where the other begins.

The research

Creative Center, downloader chains, a spreadsheet

Tried, then droppedtrends, chains, a link list
Trend dashboards: hot sounds, one creator's catalog out of reach
Downloader + transcriber chains: one video at a time, stats lost
A spreadsheet of links: stale in a week, still no transcripts

TikTok's own Creative Center is good at what it does: trending sounds, hashtags and top-performing ads, refreshed constantly. But trends were never my question. My question was about one specific creator's body of work.

The manual route existed too: a downloader tab, a transcription app, a spreadsheet. Chained together they could turn one video into text in about ten minutes of copy-pasting, and the play counts stayed behind on the platform. Multiplied across a catalog, that was the old evening again with more tabs open. And nothing off the shelf spoke Douyin at all, where login walls and anti-bot defenses stop casual tools cold. What I needed was narrower than any of it: pull one creator's whole catalog with the stats attached, transcribe exactly the videos I choose, verbatim, in the original language, and keep a person between the scrape and the model at every step.

Scope, decided first

Narrower than any tool on the market, on purpose

I fixed the boundary before writing anything. This would not become a scheduler or an auto-poster. It stays one pipeline with two human gates and clean exports.

Paste a creator URL and get the catalog back as a sortable table, with plays, likes, comments and shares attached. Keep every transcript verbatim and in its original language, Chinese included. Never let the model run unattended: I pick the videos worth transcribing, and I sign off the transcript before anything gets rewritten.

creator url → publishable script nothing reaches a model until a human picks the videos Creator URL Douyin · TikTok input Cookie capture Playwright login · QR auth Batch scrape videos + stats collect Select videos human picks · credit check gate Strip audio ffmpeg · 64kbps mp3 audio Transcribe Gemini 2.5 Flash verbatim Review transcript human edits, signs off gate Polish · TTS · XLSX localized script out output
What a single run does: a real Playwright session captures login cookies, the collector batch-scrapes the catalog with its stats, and nothing reaches a model until I pick the videos. Then ffmpeg strips the audio, Gemini 2.5 Flash transcribes it verbatim, and only a transcript I have signed off gets polished into a localized script, voiced with Inworld TTS and exported to Excel.
What the collector handles

The transcription API I never had to add

I assumed I would need a dedicated speech-to-text service, then tried uploading the audio straight to Gemini 2.5 Flash through the Files API with a verbatim-transcript prompt. It came back clean, in the right language, Chinese included, in one call: recognition, language handling and formatting collapsed into a single request, and the file is deleted right after. ffmpeg strips each video to a 64kbps mp3 first, so the upload stays small.

Collection was the opposite: nothing collapsed, everything layered. I built it to behave like the person whose account is reading, because that is what the account is entitled to see. So the collector runs slowly on purpose. It waits a randomized interval between pages instead of a fixed one, walks the catalog by simulating the clicks a reader would make, and signs in with the user's own session. There is more in there, and I am not going to write the whole recipe down. The constraint is simple: one person's own access, at one person's pace. The proxy that makes it reachable from the browser is pinned to douyin.com and tiktok.com and refuses private IPs, so it cannot be turned into an open relay. Everything lives in one 2,400-line App.tsx workbench on an Express backend, with Stripe credits, free 20, lite 200, pro 1,500, enforced on both client and server.

Shipped on
React 19 Vite Express Gemini 2.5 Flash Playwright Vercel
From URL to brain

Paste a URL, get a catalog you can interrogate

tk-miner-2-0.vercel.app
TK-Miner dashboard showing videos scraped, knowledge chunks and estimated API cost
TK-Miner mining queue with batch scrape jobs, worker status and system logs
TK-Miner knowledge base with one digital-brain card per tracked creator
TK-Miner landing page stating the knowledge-mining thesis

An embedded catalog opens reads that scrolling never allowed, and the ones below sit at different stages of proof.

Ask the brain

I put a question to one creator's corpus, like how this person frames pricing, and the retrieval-augmented chat answers from hundreds of their own videos, with the clips it drew on.

Read the mechanics

I read an engagement heatmap per video and set two creators side by side, so a format difference shows up as a shape. That score is mine, and I have not validated it.

Mine on a schedule

The workers can re-run and pick up new posts as they drop, so a tracked creator stays current without anyone remembering to check. That schedule is built and I have not run it yet.

Watch the category

Looking across the few creators in this instance for the topics heating up in a niche is the read a content calendar needs. That one is built and I have not run it yet.

I split the models on cost: Gemini runs the reasoning passes, DeepSeek reads the code and logic, and Pinecone holds the embeddings behind a React and TypeScript front end. I designed it so each account's vector store stays separate, because one shared index would be the failure I could never walk back.

The evening, reclaimed

The evening of scrolling became a query

Studying a creator used to be an evening of scrolling that logged thirty-ish videos, against the 2,050 already in this instance. Now one pasted URL brings the whole catalog back as a table I sort by plays, and any video I select returns as a verbatim transcript minutes later. I will not invent a revenue number for this one. What I can measure is the catalog one paste returns and the transcript I signed off on.

The other change is the language wall. A Douyin video I could not have used at all now goes from Chinese audio to a transcript I have read and signed off, in one sitting. The two human gates are why I trust the output: the model transcribes what I picked and rewrites what I approved, nothing else. Carrying that signed transcript across the language and into a finished script is Hyper Creator, the production half of this pair.

Studying one creator
1 URL was an evening of scrolling
From catalog to answer
Sortable catalog with play counts
Verbatim transcript, original language
Knowledge chunks you can question
Before and after: catalog research collapses from an evening of scrolling to a pasted URL and a sortable table, and the videos I pick come back as signed-off transcripts and chunks the brain answers from.
What it runs on

An ETL pipeline with a vector store at the end of it

This is the only tool in the set with a vector store, because it is the only one whose question is open-ended. The others match against a bounded rulebook, where retrieval would add cost and remove certainty.

Application

React 19 logoReact 19Dashboard, mining queue and the digital-brain views. TypeScript logoTypeScriptAcross the app and the worker contracts. Vite logoViteBuild tooling. Express logoExpressThe job API behind the miners.

Pipeline

Playwright logoPlaywrightCaptures the session, walks the catalog. FFmpeg logoFFmpegStrips audio before transcription.

Models

Gemini logoGemini 2.5 FlashTranscription and the chunk summaries. DeepSeek logoDeepSeekLogic and comparison passes across creators. GPT-4o logoGPT-4oThe retrieval-augmented chat over a creator’s corpus.

Data and delivery

Neon Postgres logoNeon PostgresCatalogs, transcripts and job state. Pinecone logoPineconeThe embeddings behind the digital brain and its retrieval. Stripe logoStripePlan tiers, and nobody has paid for one. Vercel logoVercelHosting and the serverless ETL workers.

Want this kind of tooling on your team?

This one turns a creator's whole catalog into something you can question.