Choose a topic you actually cover.
Use Topic and Hook together. For example, narrow an account to business posts with a story hook. The wall, graph and examples update together.
Creator Lab / Jev content research
Pick a topic. Find the hooks they use. Read the exact opening, compare engagement, and open the original Reel. This is the system I built with Jev, with the code and setup so you can use it on a public creator or your own account.
By Artem Novitckii · September 24, 2026 · Full setup guide
What's inside
01 / What you are building
Instead of opening Reels one by one and taking notes, collect a batch and let the system label the spoken scripts. Then explore the patterns alongside their public engagement figures.
Reel metadata, source links, thumbnails and available metrics from a public account.
FFmpeg extracts the audio on your computer. Your chosen provider turns the speech into text.
Topic, hook, structure, evidence, emotion, specificity, opening move and CTA, plus the role of script passages.
The dashboard joins those labels to the engagement data. Jev gets the transcript before seeing any of the performance figures.

02 / Install once
ffmpeg and ffprobe need to be available in your terminal.package.json lives.brew install ffmpegIf you do not have Homebrew, use the macOS links on FFmpeg's download page or install Homebrew from its official site first.
winget install --id Gyan.FFmpeg --exactRun this in PowerShell, then close and reopen it. Without WinGet, use the Windows builds linked by FFmpeg and add the build's bin folder to PATH.
sudo apt update
sudo apt install ffmpeggit clone https://github.com/artemnovitckii/creator-lab.git
cd creator-labInside the project folder, create your local configuration:
npm run setupThis creates .env without overwriting an existing one. Open it in your text editor. No dependency installation or build step is needed.
03 / Connect the three stages
TYPESAFE_API_KEY. API documentation.For Fireworks, fill these entries in .env:
APIFY_TOKEN=your_apify_token
TYPESAFE_API_KEY=your_typesafe_key
TRANSCRIPTION_PROVIDER=fireworks
FIREWORKS_API_KEY=your_fireworks_key
PORT=5190APIFY_TOKEN=your_apify_token
TYPESAFE_API_KEY=your_typesafe_key
TRANSCRIPTION_PROVIDER=groq
GROQ_API_KEY=your_groq_key
PORT=5190Replace the example values with your own keys. Keep one value per setting and leave the unused speech key empty. Save the file, then run:
npm run doctor
npm startOpen http://127.0.0.1:5190 in your browser. Keep the terminal open. Doctor checks tools and key presence without printing secrets or making paid calls. In the app, open Connections and verify access. The unused speech provider can remain unconfigured.
04 / Your first batch
@ or a profile URL.en. Otherwise leave it blank.One run takes one handle and requests up to 1,000 Reels. The scraper skips pinned and trial Reels, and Instagram availability affects what comes back. Private, deleted or inaccessible media may fail; music-only clips are excluded from speech analysis.
Pause lets in-flight requests finish. Start / resume processes unfinished work. Closing the browser does not stop the server. After a server restart, choose the saved run and resume it. Press Ctrl+C in the terminal to stop the server.
05 / Make the research useful
Use Topic and Hook together. For example, narrow an account to business posts with a story hook. The wall, graph and examples update together.
Open Compare engagement. Look at median plays or views, likes per 1,000 and comments per 1,000. Check the sample sizes and compare posts of similar age and length. A few outliers can make a pattern look stronger than it is.
Open Read script, then Original Reel. Study the exact opening, how the idea develops, and where the payoff lands. Check both stronger and weaker examples before deciding what to try.
Write a fresh opening for your topic. Bring your own story, example or demonstration. On your own account, use the same workflow to find ideas worth revisiting and openings worth testing.
Open Recording studio, choose your archive and select Scanner, Wall + map, or Script breakdown. Choose a replay length, press Play, and use Clean view. Space pauses, R restarts and C shows the controls again. These layouts animate saved results and do not trigger new paid analyses.
06 / If something gets stuck
Make sure the file is named .env, not .env.txt, and is in the same folder as server.mjs. Check the key names below, save the file, then restart the server. Only your selected speech provider needs a key.
Pause the run, stop the server, set TRANSCRIPTION_PROVIDER=fireworks, and add FIREWORKS_API_KEY. Restart and resume. Completed transcripts are reused, so switching does not automatically charge to transcribe them again.
Check their status. No audio and too little speech are excluded from script comparison. Failed downloads, expired media URLs and provider errors are different: inspect the original Reel, check the run log, and resume unfinished work when the problem is resolved. Expired URLs may require fresh collection.
401 or 403 usually needs a key, permissions or account-access check. For 429, check the provider quota and wait for its reset. Lower the requests-per-minute setting if needed, restart, then resume. More concurrency does not bypass account limits.
Find the existing Actor run ID in Apify Console. Attach it in Run activity, then resume. The app blocks an uncertain duplicate launch to avoid paying for the same scrape twice.
Check your filters. Age, duplicates and speech exclusions can remove posts. Points also need a positive value for the selected plays or views metric and a known like count. Missing data is not treated as zero.
Use Node 22.9 or newer and make sure both ffmpeg and ffprobe are on PATH. Reopen your terminal after installation. If port 5190 is occupied, stop the previous server or set PORT=5191 and open that port instead.
The interface and files live on your computer. Apify receives the handle, your chosen speech provider receives audio, and Jev receives transcripts. Provider billing is authoritative; displayed costs are estimates. The Apify cap does not cover transcription or Jev. Your local data folder and exports contain creator content and source URLs, so review them before sharing.
Get the project, add your keys, and find one pattern you can turn into an original post.
Enter your email to unlock the code, setup guide, and the rest of my resource library. You'll also get my weekly email. Unsubscribe anytime.