Recommended for Codex + ChatGPT Sites

Build your own Shorts Scraper

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.