Wholana's engine is a daily scrape of a curated roster of TikTok creators, an LLM pass that labels each video's hook, structure, stakes, shareability and format, and an outlier score against each creator's usual views. Doing that for 30 to 100 accounts you pick is a weekend: yt-dlp for metadata, faster-whisper for transcripts, a model for the labels, SQLite and a small page. The gaps are its corpus of the Egyptian and wider MENA scene, the daily refresh, and a scraper that keeps working when TikTok changes its pages; scraping also sits outside TikTok's terms.
Before you buildWholana has no free plan, only a month's trial with a card. TikTok's free Creative Center covers trending hashtags, sounds and top videos by region if you do not need per-video breakdowns.
Build me a TikTok niche research tool for a roster of creators I choose, to replace Wholana. Requirements: - Python 3.12 managed with uv: a CLI named `niche` and a FastAPI page with htmx on http://127.0.0.1:4975 (templates in ./templates, no build step). - ./roster.csv lists handle and topic. `niche fetch` reads each profile's recent videos with yt-dlp (--dump-json), stores views, likes, comments, shares, caption and date in SQLite at ./data/niche.db, and waits 3 seconds between profiles. - Outlier score = a video's views divided by the median views of that creator's last 30 videos. Videos younger than 24 hours are marked "settling" and left out of the ranking. - `niche transcribe` takes videos scoring 3x or more, extracts audio with ffmpeg and transcribes locally with faster-whisper (small model, language auto-detected); skip and flag videos with fewer than 15 spoken words. - `niche label` sends caption and transcript to the Anthropic API (ANTHROPIC_API_KEY and MODEL in .env) and stores five labels: hook type, narrative structure, stakes, shareability driver and format, each with a one-line reason. Validate the JSON with `pydantic`; the five vocabularies live in ./craft.yaml so I can edit them. - Page: a feed sorted by outlier score with filters for topic, creator, label and date; a video view with transcript and labels; collections with a note per video; a Scripts page with the saved references pinned beside a text area that autosaves. - Single user. No accounts, no telemetry, local-first: outbound calls go to TikTok through yt-dlp and to the labelling API, and the README lists exactly what is sent. - Out of scope: posting, scheduling, analytics of my own account, WhatsApp, MCP, several users. - README: check the Arabic transcript quality on five videos before trusting the labels, update yt-dlp first when fetching breaks, and a note that scraping may breach TikTok's terms.
Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own Wholana.
Add own-account tracking to the research tool in this folder. Requirements: - MY_HANDLE in .env; `niche mine` fetches my recent videos like any roster creator, in a separate table. - Compute my median views over the last 20 posts; label each new video hit (2x or more), normal or miss (under 0.5x), and show "settling" for the first 24 hours. - A Mine page listing posts with views, the verdict and the closest saved reference by label. - Show "tracking" until I have 5 posts, as the median means nothing before. - Update the README.
Add a Telegram intake bot to the research tool in this folder. Requirements: - BOT_TOKEN and OWNER_ID in .env; run with `aiogram` long polling; ignore every other sender. - A TikTok link sent to the bot is fetched with yt-dlp, scored, queued for labelling and saved to an Inbox collection; reply with the title and score. - A voice note is transcribed with faster-whisper and becomes a draft script; typed text becomes a draft script directly. - Update the README with the BotFather steps.
Add a weekly digest to the research tool in this folder. Requirements: - `niche digest` lists the 10 best new outliers of the past 7 days per topic with creator, score, hook type and a one-line reason, and sends it through SMTP settings in .env. - Skip videos already sent in an earlier digest; keep the sent ids in SQLite. - A dry-run flag that prints the email instead of sending it. - Update the README with a cron line for Monday morning.
At $5 a month it costs less than an hour of scrolling a niche by hand. The value is the labelled corpus: what is working in Arabic-language TikTok this week, ranked and explained, without running scrapers or paying for a data provider.
Estimate · Transcription runs on your machine. Labelling 100 videos a day with a small model costs cents. If yt-dlp cannot keep up, a TikTok data provider adds its own monthly fee. The build is token usage on your agent plan.
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Personal | $5 | $4 | One creator: the explore feed and search, craft labels on each video, Ask Wholana, swipe file, scripts, dashboard and the WhatsApp bot. |
| Plus | $20 | $16 | Everything in Personal plus the Wholana MCP server for ChatGPT, Claude or another MCP app. |
| Team | $20 | $16 | Everything in Plus inside one shared workspace with shared swipe files, lists and scripts. |
No free plan; every plan starts with a one-month trial that needs a card.
Kinda. The core is a weekend build with the prompt on this page, but real gaps remain: The curated Egyptian and MENA corpus that is refreshed every day, Search that reads meaning across all of it, not only your roster.
About $5 a month on the Personal plan, $60 a year (checked 2026-10-19).
The curated Egyptian and MENA corpus that is refreshed every day; Search that reads meaning across all of it, not only your roster; Ask Wholana: filter the feed by asking a question in Arabic or English; The WhatsApp bot that turns shared links, voice notes and typed ideas into saved videos and draft scripts; Shared workspaces and the MCP connection to ChatGPT or Claude. If any of those matter to you, keep paying.
Yes: TikTok Creative Center (free).