Build your own Shorts Scraper
Choose your niche. Study the right creators. Turn verified outliers into a private research library with playback, transcripts, metrics, and pattern analysis. Click one button when you want up to ten more.
Get one useful AI system every week
I share the workflows I actually use to run my content and company, including what stayed manual and what was worth automating.
You're in. First email lands shortly.
What this builds
Claude Code cannot create or host a ChatGPT Site. Claude Code builds a separate custom web app with another host and authentication setup. Expect differences in the interface and results.
I did not want another folder full of saved Reels I would never study. I wanted one place where I could play a video, read the transcript, see the captured engagement, inspect the hook and structure, and move to the next example without opening the feed.
The first version came from ten Reels I had already selected for a content pilot. I saved the media, corrected the transcripts, captured the visible metrics, inspected the videos, and joined those records into a private site. The site is useful because the evidence stays beside the analysis.
What it is: a research viewer over videos you collected and verified.
What it is not: a magic bot that automatically finds every viral post on Instagram and TikTok.
My current site reads a saved archive. The build in this guide adds one deliberate action: you click “Get the next batch” when you want a fresh set. Nothing runs each morning. Nothing sends a phone notification. The button has to show its work before a video reaches your library.
The outlier protocol
A high view count is not enough. The scraper compares each candidate with the creator who posted it. The threshold changes at 200,000 followers.
| Creator size | A video qualifies when | Required receipt |
|---|---|---|
| Under 200,000 followers | Views are at least 5× the creator’s follower count, or at least 5× the median views of the creator’s latest 10 videos. | Follower count and capture time. For the median route, save all 10 baseline view counts and the calculation. |
| 200,000 followers or more | Views are at least 2× the median views of the creator’s latest 10 videos. | All 10 baseline view counts, the sorted values, the median, and the candidate-to-median ratio. |
The candidate video stays out of its own baseline. A missing follower count or incomplete 10-video baseline produces an “insufficient evidence” label. It does not get surfaced as an outlier.
The one prompt to start with
If you want the AI to guide you through the whole build, paste this first. It forces the work through seven gates and makes the AI stop for your input instead of jumping straight into a half-built dashboard.
You are my Shorts Research Builder. Build a private, single-owner app that turns a list of creator handles into a small, evidence-backed batch of short-form videos worth studying. Use ChatGPT Sites as the preferred hosting path when this prompt runs in ChatGPT with Sites access. Keep the Site restricted to its owner, plus workspace administrators when applicable. Do not widen access unless I ask. If you are running in Claude Code, tell me you cannot create or host a ChatGPT Site. Offer a separately hosted custom site only after I approve its hosting and authentication plan, and warn me that its setup and results may differ. I should only need to provide: - my niche and the decision this research should help me make - the platform - creator handles or profile URLs - a starting lookback window, defaulting to the last 30 days - a daily batch size from 1 to 10 Ask for those inputs in plain language. Do not ask me to create folders, name technical files, collect metrics, calculate medians, or correct transcripts. Handle that work inside the build. Use this workflow: 1. VERIFY THE SETUP Inspect the tools available to you. Confirm whether ChatGPT Sites is available for this build. When available, keep the new Site owner-only. When unavailable, explain the separate hosting and authentication required before building. Use a documented public-data provider such as Scrape Creators only after one live request succeeds. Show me where to save the API key as a private environment secret. Never ask me to paste the key into chat, browser code, screenshots, or the repository. Before a larger run, estimate the requests and credits, set a spending cap, and ask for approval. 2. COLLECT THE SOURCE DATA Validate every handle before collecting. Pull the recent posts needed for the selected lookback and outlier comparison. Start with the newest saved window. When all unseen outlier options in that window are exhausted, search the next older non-overlapping 30-day window, then keep moving backward 30 days at a time until the requested batch is ready, the source history ends, or the approved spending cap is reached. Never restart the same time window to recycle candidates. I provide the handles; you create the evidence receipts automatically. For every candidate, preserve the platform, creator, post ID, canonical URL, published date, capture time, follower count, views, available engagement counts, caption, media or allowed playback reference, and the provider's credit charge. Leave unavailable values blank. Never estimate them. 3. APPLY THE OUTLIER RULE Use the creator's own performance as the main comparison. - Under 200,000 followers: qualify a candidate when its views are at least 5 times the creator's follower count OR at least 5 times the median views of the creator's latest 10 other eligible videos. - At 200,000 followers or more: ignore the follower ratio and require at least 2 times the median views of the creator's latest 10 other eligible videos. Exclude the candidate from its own baseline. Save all 10 baseline values, the sorted values, the median, both calculated ratios, and the exact rule that passed. If the required follower count, views, or 10-post baseline is missing, label the result "insufficient evidence." Do not call it an outlier. 4. SELECT A VARIED BATCH Let me set a saved daily batch size from 1 to 10 and change it at any time. Fill each batch with unseen qualified outliers first. Rank them by creator-relative outlier ratio, then preserve variety across creators, topics, hooks, and formats. Select no more than one video from the same creator in one run or review day. Deduplicate against all prior results using platform plus post ID, with canonical URL as a fallback. Never return the same post twice. If the expanded search finds fewer qualified outliers than requested, fill the remaining slots with the strongest unseen videos available and label each one "best available, not a verified outlier." Return fewer only when no more unseen, playable, transcribable videos are available within the source history or approved spending cap. 5. ANALYZE EACH RESULT Prepare every selected video before revealing the batch. Confirm that the video plays inside the review page through an approved embed or permitted local playback copy. Generate or retrieve its timestamped transcript and analysis under the hood. If a selected video cannot be played or transcribed, replace it with the next eligible candidate. Never ask me to choose which videos to transcribe or embed. Mark uncertain words instead of asking me to clean the transcript manually. Analyze the first spoken line, on-screen hook, first visual, first 6 seconds, structure, angle, proof, CTA, pacing, and reusable pattern. Tie every observation to the source record and timestamps or frames when available. Separate observation from interpretation. 6. BUILD THE REVIEW PAGE Create a searchable page with creator filters, source links, embedded playback, transcript, analysis, captured metrics, outlier math, missing-data labels, and previous/next controls. Add a saved integer control labeled "Videos per day" with a minimum of 1 and maximum of 10. Add a button labeled "Get the next batch." When clicked, it should use the saved daily batch size, handles, and lookback rules, remove anything already seen, prepare each selected video completely, and queue the finished batch for the next local calendar day at the saved review time. If I explicitly request an earlier date or time, use that override for this batch. Otherwise, do not reveal the new batch on the same day. Show the queued reveal time, progress, credits used, candidates checked, accepted count, fallback count, rejection reasons, errors, and last-run time. Keep collection button-triggered. Do not create an automatic recurring daily run. Each click prepares one complete batch and schedules its reveal for the next day unless I ask for it sooner. A complete test means one click retrieves, filters, saves, embeds, transcribes, analyzes, queues, and then reveals at least one prepared result at the scheduled time. Respect platform terms and creators' rights. Do not promise virality or leads. Start by asking me for the five plain-language inputs listed above.
The rest of this guide breaks the same process into individual prompts. Use the long version when you want more control or need to rerun one stage.
The smallest tool stack
You can complete the manual proof without paying for a scraper. Use tools that inspect files and preserve sources. Add an API only after the ten-video workflow produces research you use.
| Job | Manual-first choice | Optional upgrade |
|---|---|---|
| AI operator | Codex in ChatGPT with Sites access | Claude Code for a separately hosted custom site |
| Source collection | Your own files, creator-provided files, or a browser download you are allowed to make | A tested collector such as the Scrape Creators Instagram Posts API |
| Media inspection | FFmpeg and ffprobe | Cloud media processing when volume demands it |
| Transcription | Local Whisper | A paid transcript service if setup time matters more than cost |
| Research store | CSV or JSON plus a clear folder structure | A server-side store for video records after the schema stops changing |
| Website | An owner-only ChatGPT Site | A separate private host and authentication layer for Claude Code |
The Scrape Creators endpoint returns public Instagram posts and Reels for a handle. Its documentation warns that play counts sometimes differ from the combined number Instagram shows when a Reel was also shared to Facebook. Save the collection source beside every metric.
yt-dlp helps with sites it currently supports, but extractors break when platforms change. Treat it as a convenience, not a guaranteed Instagram or TikTok integration. If it cannot fetch a source, provide the video file yourself.
This version has one owner, one creator configuration, and no user-account database. API credentials stay in the hosting environment. They never reach browser code.
The seven-gate build
Run these in order, in one project folder and one conversation when possible. Each prompt tells the AI what evidence it needs, what it may not assume, and where it must stop for you.
Define the research job
You finish with: A one-page research brief that tells the AI what to study and what decisions the library should support.
We are starting Gate 1 of my Shorts Scraper build. Interview me before recommending creators or tools. Ask no more than five questions at a time and wait for each answer. You need to learn: - my niche and sub-niches - the audience I want to attract - the product, service, or next action my content supports - the platforms and regions I care about - the content formats I can realistically make - the result I want this research library to help me improve - the claims or topics I will not cover - my available time, budget, and comfort with technical setup Do not generate content ideas yet. Do not recommend creators yet. When the interview is complete, write a concise Research Brief with these headings: Audience, Business Goal, Content Scope, Formats, Platforms, Evidence Standard, Constraints, and Questions This Library Must Answer. Then ask me to approve or correct the brief before moving to Gate 2.
Choose creators and a fair sample
You finish with: A verified creator watchlist and a reproducible two-tier outlier protocol.
We are starting Gate 2. Use my approved Research Brief. Help me build a watchlist of 5 to 15 creators. First ask whether I already have saved posts, creator handles, or competitor research. If I do, inspect those before suggesting anyone new. For every creator, record: - exact display name and handle - platform - why this creator is relevant to my audience or format - the specific trait I want to study - whether the identity is verified - whether they are a direct competitor, adjacent creator, or format reference Reject accounts that are a poor audience match, inactive, misidentified, mostly sponsored, or impossible to verify. Use this exact outlier protocol: - Under 200,000 followers: a candidate qualifies when candidate views are at least 5 times the creator's follower count OR at least 5 times the median views of the creator's latest 10 videos. - At 200,000 followers or more: ignore the follower ratio and require candidate views to be at least 2 times the median views of the creator's latest 10 videos. For every creator, preserve the follower count and capture time. For every median test, preserve the 10 individual baseline view counts, sort them, and show the median calculation. Never include the candidate video in its own baseline. If the follower count, candidate views, or required 10-video baseline is unavailable, label the result insufficient evidence. The 5x and 2x thresholds are research filters, not virality guarantees. Return a Creator Watchlist table and a Collection Plan. Stop for my approval before Gate 3.
Audit tools and access
You finish with: A tool plan that distinguishes available capabilities from paid, blocked, or manual work.
We are starting Gate 3. Audit the tools and access available in this workspace before touching any social URL. Check for: - a file-capable AI agent such as Claude Code or Codex - a folder where source videos and records can live - FFmpeg and ffprobe for media inspection and frame extraction - a transcription option such as local Whisper - a browser or approved downloader for sources I am allowed to collect - a spreadsheet, CSV, or JSON store - a local web framework and a hosting option - an optional collector such as the Scrape Creators API or another source that passes a live test Use ChatGPT Sites when this task runs in ChatGPT with Sites access. Keep the Site owner-only, plus workspace administrators when applicable. If this task runs in Claude Code, state clearly that Claude Code cannot create a ChatGPT Site. Propose a separate host and authentication method, and wait for my approval before deploying it. Create four lists: Available Now, Requires Installation, Requires Login or Payment, and Must Be Done Manually. Rules: - Do not ask me to paste passwords, cookies, or API keys into chat. - Do not install software, spend money, log in, upload files, or deploy without asking at the moment that action is needed. - A tool claiming support for Instagram or TikTok is not proof that it works today. Require a live test. - A downloader working is not permission to republish someone else's media. - If you cannot retrieve a video, ask me to supply the file. Do not fabricate a transcript or analysis. - Do not add user accounts, a user database, or a multi-tenant backend. This version has one owner and one editable creator configuration. Recommend the smallest manual stack that can complete one ten-video proof. Stop for approval before Gate 4.
Build the evidence pack
You finish with: A requested batch of 1 to 10 source receipts with every outlier calculation and fallback label preserved.
We are starting Gate 4. Help me collect the requested daily batch of 1 to 10 videos from the approved creator set. Create one source receipt per video with these fields: - research ID - creator and verified handle - platform and source URL - date posted, if visible - date and time captured - views, likes, comments, shares, and saves exactly as visible - creator follower count and capture time - the view counts for the creator's latest 10 baseline videos when the protocol requires them - the sorted baseline values and calculated median - candidate views divided by follower count - candidate views divided by the latest-10 median - the exact qualification rule that passed - caption text - local video filename and file size - acquisition method - missing fields and why they are missing - rights or usage note Preserve the original files. Create smaller playback copies only when the site needs them. Never overwrite the archive. After each collection, verify that the URL, creator, file, duration, orientation, and visible metrics belong to the same post. Exclude the candidate from its own latest-10 baseline. Leave unavailable metrics blank. Do not convert blanks to zero. Search the newest 30-day window first. When all unseen outlier options there are exhausted, continue through older non-overlapping 30-day windows until the requested batch is full, the source history ends, or the approved spending cap is reached. Deduplicate against every prior result before further processing. Fill the batch with verified outliers first. If fewer outliers exist than requested, use the strongest unseen remaining videos and label each one "best available, not a verified outlier." Reject any video that cannot be played inside the review page or transcribed. Return fewer only when no unseen playable, transcribable candidates remain. Do not analyze patterns yet. Stop before Gate 5.
Transcribe and inspect each video
You finish with: A grounded, frame-aware analysis for every video, tied back to the actual transcript and media.
We are starting Gate 5. Work through every selected source receipt without asking me which videos to process. For each video: 1. Transcribe it with timestamps. 2. Correct obvious transcription errors only when the audio or on-screen text supports the correction. 3. Extract representative frames at the opening and every meaningful visual change. 4. Record the exact spoken hook, on-screen text hook, and visual hook. 5. Map the structure beat by beat. 6. Identify the topic, angle, promise, value, proof, CTA, editing format, editing style, pacing, pattern interrupts, and ending. 7. Separate observation from interpretation. Quote only short phrases needed to support the analysis. 8. Mark anything you could not inspect as unknown. Do not copy a creator's whole script or identity. Focus on reusable decisions such as a hook shape, sequence, proof placement, or visual format. Confirm that each video plays inside the review page through an approved embed or permitted local playback copy. Return one standardized analysis record per video. Do not reveal the batch until every selected video is playable, transcribed, analyzed, and tied to its source receipt. Replace any record that fails those checks with the next eligible candidate.
Find repeatable patterns
You finish with: A pattern report that distinguishes evidence across the set from attractive one-off choices.
We are starting Gate 6. Compare only the ten verified analyses and the approved Research Brief. Build a Pattern Report with: - hook patterns that repeat - common structures and their order - recurring angles - proof types and where proof appears - CTA patterns - editing formats and visual changes - pacing ranges - audience problems and desires that recur - patterns that fit my realistic production constraints - one-off choices that should not be treated as rules - missing evidence that prevents a conclusion For every conclusion, cite the research IDs that support it. Separate Frequency, Possible Function, and Confidence. Do not claim causation from views alone. Then produce a Modeling Menu. For each promising pattern, state what can be borrowed ethically, what must come from my own experience, and what would make the result too close to the source. Do not generate finished content ideas unless I ask after reviewing the report. Stop for my corrections before Gate 7.
Build and verify the private site
You finish with: A searchable single-owner research site with a 1-to-10 daily batch control and a next-day queue.
We are starting Gate 7. Build the smallest private research site that makes the approved evidence easy to study. Preferred route: create and deploy an owner-only ChatGPT Site when this task runs in ChatGPT with Sites access. Verify the access setting after deployment. If this task runs in Claude Code, do not describe the result as a ChatGPT Site. Show me the separate hosting and authentication plan and wait for approval before deployment. Required experience: - creator filter - search across hooks, transcripts, captions, and structures - embedded or permitted local video playback - transcript, caption, and analysis tabs - captured metrics with the capture date - follower count, latest-10 median, calculated ratios, and qualification rule - original source link - previous and next navigation - a visible research ID - explicit unknown or insufficient baseline labels - a saved integer control labeled "Videos per day" with a minimum of 1 and maximum of 10 - a button labeled "Get the next batch" - a visible queued reveal date and time - progress, last-run time, records checked, records accepted, records rejected, cost, and errors for every button run Use my brand colors and fonts, but prioritize legibility. Do not copy another site's logo, product name, or exact visual identity. Do not expose private files, credentials, cookies, or local paths. The button is the only collection trigger. When I click it, use the saved daily batch size, collect a fresh candidate pool from the approved creator list, and deduplicate by platform and post ID or canonical URL. Search the newest 30-day window first. When its unseen outliers are exhausted, move through older non-overlapping 30-day windows without recycling videos. Fill the batch with qualified outliers first. If fewer outliers exist than requested, use the strongest unseen remaining videos and label each one "best available, not a verified outlier." Prepare every selected record before revealing it. Each record needs working playback inside the page, a timestamped transcript, completed analysis, and its source receipt. Replace any candidate that fails playback or transcription. Queue the complete batch for the next local calendar day at the saved review time. Use an earlier date or time only when I explicitly request it for that batch. Do not add an automatic recurring daily run, morning notifications, email alerts, phone alerts, user accounts, or a database of users. Store one owner's editable creator list, daily batch size, review time, and settings in a simple configuration file. Keep API secrets in the hosting environment, never in browser code or the repository. Build from the verified manifest instead of hand-entering records twice. Add checks that fail when a video, transcript, receipt, or required analysis field is missing. Verify every selected record, mobile layout, keyboard access, playback, copy buttons, source links, search, daily batch-size bounds, queued reveal time, and next-day release behavior. Deploy through the approved path or keep it local. Report what is real, what is static, and what is still manual. Do not describe the button as working until one live click retrieves, filters, saves, prepares, queues, and reveals at least one record at its scheduled time.
Add the “Get up to 10 more” button
Once the manual run works, add one intentional collection action. You decide when the system spends requests, pulls a candidate pool, and adds new records. The run reports how many candidates it checked and why each rejected video failed.
The button returns up to ten verified outliers. If three qualify, it returns three. It never weakens the rules or adds filler to make the grid look full.
The real button connects to a server-side collector. API credentials never enter the browser.
- Last run
- Not run
- Checked
- 0
- Accepted
- 0
- Rejected
- 0
- Request cost
- $0.00
The first verified batch is complete. Add one on-demand collection action to the private Shorts Scraper site. Create a saved integer control labeled "Videos per day" with a minimum of 1 and maximum of 10. Create a button labeled "Get the next batch." The button should queue one batch for a specific reveal time. Do not create an automatic recurring daily run, email alert, phone notification, user account system, or user database. When I click the button: 1. Read the approved creator handles, platform, starting lookback window, daily batch size, local time zone, and review time from the saved settings. 2. Retrieve a fresh candidate pool through the collector we already tested. Keep the API key in the hosting environment. 3. Deduplicate against every prior result by platform plus post ID, with canonical URL as a fallback, before spending credits on transcript or frame analysis. 4. Search the newest 30-day window first. When all unseen outlier options there are exhausted, move to the next older non-overlapping 30-day window. Keep moving backward until the requested batch is ready, the source history ends, or the approved spending cap is reached. Never restart an exhausted window to recycle videos. 5. Apply the approved protocol. Under 200,000 followers, require either 5 times the follower count or 5 times the latest-10 median. At 200,000 followers or more, require 2 times the latest-10 median. Exclude the candidate from its own 10-post baseline. 6. Preserve the source receipt, follower count, capture time, 10 baseline view counts, median calculation, ratios, and qualification rule for every selected result. 7. Rank qualified outliers by creator-relative ratio, preserve variety across topics, hooks, and formats, and select no more than one video per creator in the run or review day. 8. Fill any remaining slots with the strongest unseen videos available. Label each fallback "best available, not a verified outlier." Return fewer than the requested batch size only when no unseen playable, transcribable videos remain within the source history or spending cap. 9. Confirm every selected video plays inside the review page through an approved embed or permitted local playback copy. Generate its timestamped transcript and analysis automatically. Replace any candidate that cannot be played or transcribed. Never ask me which videos to transcribe or embed. 10. Queue the finished batch for the next local calendar day at the saved review time. If I explicitly request an earlier date or time, use that override for this batch. Otherwise, do not reveal it on the same day. 11. Show the queued reveal time, progress, last-run time, candidates checked, outliers accepted, fallbacks accepted, rejection reasons, credits used, and errors. Test the complete click once with one approved creator and a one-video daily batch. Compare every returned field with the visible source. Do not label the button working until a real click retrieves, filters, saves, embeds, transcribes, analyzes, queues, and reveals one prepared record at the scheduled time. Never estimate missing metrics or promise virality, leads, or hands-off operation.
When the first version is done
- Ten videos play from local or controlled files.
- Every record has a creator, canonical source URL, and capture date.
- Visible metrics match the source receipt. Missing values stay blank.
- Every transcript was checked against the audio or on-screen text.
- Every analysis separates observation from interpretation.
- Under 200,000 followers, each surfaced video passes a 5× follower or 5× latest-10 median test.
- At 200,000 followers or more, each surfaced video passes the 2× latest-10 median test.
- The candidate is excluded from its own baseline and every median can be reproduced.
- Search finds hooks, captions, transcripts, structures, and angles.
- “Get up to 10 more” reports candidates checked, accepted, rejected, cost, errors, and last-run time.
- No morning schedule, notifications, user accounts, or user database were added.
- Private files, credentials, cookies, and local paths are not exposed.
- You used the library to make one real decision before expanding it.
Make the resource cover
If you want to package your own version as a guide or internal playbook, paste this into your image generator. The prompt avoids fake dashboards and uses a simple research workflow instead.
Create a wide banner image in 2:1 aspect ratio, 1600 by 800 pixels. Background: rich violet #7C3AED with a subtle radial glow and restrained navy #0F1729 shadow shapes. Text: "BUILD YOUR OWN SHORTS SCRAPER" in bold white geometric sans-serif similar to Plus Jakarta Sans. All caps. Break it across two lines after "OWN". Illustration: an abstract white-line workflow showing a vertical phone with a play symbol flowing into organized transcript cards, then a magnifying glass, a folder, and a simple analytics line. Add small electric-blue #2563EB accents. Style: clean, premium, modern, approachable, vector-like editorial illustration. Wide layout with the title on the left and the workflow on the right. Do not include people, faces, creator handles, social-platform logos, metrics, screenshots, subtitles, bylines, watermarks, or any text other than the exact title.