Build a Claude Video Research Agent

Use Claude Code to turn public videos into local transcripts and insights.

Introduction

30 Second Summary

A creator's editing and speaking habits are spread across dozens of separate videos. Rewatching every clip makes those patterns difficult to capture consistently.

In this project, you will build a local video research agent coordinated by Claude Code. It turns authorized video links into storyboards, timed transcripts, content cards, and evidence-backed editing and speaking guides.

What You'll Build

Picture opening one folder that shows how a creator structures videos, edits scenes, delivers hooks, explains ideas, and closes with a call to action, with every pattern linked back to evidence.

By the end of this project, you'll have:

  • A four-platform availability view that records one YouTube, Instagram, TikTok, and Facebook source as available or unavailable without one failed source stopping the batch.
  • A local evidence trail for every available video with a working clip, source metadata, screenshot, audio file, and English transcript.
  • A content intelligence report with one consistent card per source, cross-platform findings, and exactly three video ideas grounded in the collected evidence.
  • Secret Mission: Package the workflow as a reusable Claude Code skill, test it on authorized videos from a different creator, and display one combined creator analysis summary.

Are there any prerequisites?

Claude Code requires paid access through Claude Pro or prepaid Claude Console credits. You also need internet access and at least 1 GB of free disk space for the 466 MiB small.en model, downloaded clips, screenshots, audio files, and transcripts.

Use videos from an account you own or manage, or get written permission from the rights holder to save local copies and analyze them. A public link alone does not grant that permission.

Before We Start

Before We Start...

Before you begin, lock in the creator you will study and the two evidence-backed style guides you will build from their authorised videos.

Choose Your Research Sources

Choose the Creator and Videos

A creator's style becomes visible through repetition. Three videos give you enough evidence to compare patterns while keeping the local analysis manageable.

In this step, you'll choose one authorised creator and save exactly three direct video links. The videos can come from one supported platform or a mixture of platforms.

In this step, get ready to:
  • Choose one creator or brand you have permission to analyse.
  • Save exactly three direct video links from that creator.
  • Confirm that every link opens an individual video from the same creator.
Choose one authorised creator

Keeping every video tied to one creator gives the final guides a clear subject. Use a creator or brand you own, manage, or have permission from the rights holder to analyse.

  • Confirm that you have permission to save and analyse the creator's videos.
  • Save the creator or brand as NextWork or your chosen creator or brand.
Save three direct video links

Your three videos can come from the same supported platform or different supported platforms. Choose videos with enough visual and spoken material to reveal recurring choices.

  • Select exactly three videos from the chosen creator.
  • Save the first video's direct URL as paste the first direct video URL.
  • Save the second video's direct URL as paste the second direct video URL.
  • Save the third video's direct URL as paste the third direct video URL.

What makes a link direct?

A direct link opens one video or post instead of a profile or feed. Open the video first, then copy its URL from the share menu or browser address bar.

You should see three individual video pages from NextWork or your chosen creator or brand. The platforms may match or differ.

Your creator and three source videos are ready. Next, you'll install Claude Code and the local media toolchain that processes them.

Install the Research Toolchain

Set Up the Research Workspace

Your creator and three source videos are ready. The next stage needs one workspace where every tool can find the same inputs and outputs.

In this step, you'll prepare Claude Code, the yt-dlp CLI, Deno, FFmpeg, and whisper.cpp. You will then create a workspace that carries your three saved URLs into the download workflow.

In this step, get ready to:
  • Check or install the local video and transcription tools.
  • Check or install Claude Code with the billing method you intend to use.
  • Create and verify the research workspace for your three videos.
Check the local research tools

The media workflow uses yt-dlp to retrieve videos, Deno to support current YouTube extraction, FFmpeg to convert media, and whisper.cpp to transcribe audio. Current yt-dlp releases require Deno 2.0 or later for normal YouTube support.

The first installation can take several minutes while packages download or whisper.cpp compiles. A quiet terminal during that time does not mean the process has stopped.

  • Check all four local tools by running the commands for your operating system:

macOS

yt-dlp --version
deno --version
ffmpeg -version
whisper-cli -h

Windows

yt-dlp --version
deno --version
ffmpeg -version
whisper-cli -h

Linux

yt-dlp --version
deno --version
ffmpeg -version
whisper-cli -h

Choose the result that matches your terminal.

✔️ All four commands work

Each command returns version or help information. Your local media toolchain is ready.

ⓧ Deno is below version 2.0

Your other commands work, but yt-dlp needs a newer Deno release for current YouTube extraction.

  • Upgrade Deno by running this command:
deno upgrade
  • Confirm that Deno now reports version 2.0 or later by running:
deno --version

You should see a Deno version of 2.0 or later.

ⓧ A command is missing

Install or refresh the complete toolchain for your operating system. Approve package-manager or administrator prompts when they name the packages shown below.

macOS
  • Install Homebrew when needed, then install the four tools by running this setup block:
if ! command -v brew >/dev/null 2>&1; then
  /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  if [ -x /opt/homebrew/bin/brew ]; then
    eval "$(/opt/homebrew/bin/brew shellenv)"
  else
    eval "$(/usr/local/bin/brew shellenv)"
  fi
fi

brew install yt-dlp deno ffmpeg whisper.cpp
Windows
  • Install yt-dlp, Deno, FFmpeg, Git, and CMake before building whisper.cpp by running this setup block:
winget install --id yt-dlp.yt-dlp --exact --accept-package-agreements --accept-source-agreements
winget install --id DenoLand.Deno --exact --accept-package-agreements --accept-source-agreements
winget install --id Gyan.FFmpeg --exact --accept-package-agreements --accept-source-agreements
winget install --id Git.Git --exact --accept-package-agreements --accept-source-agreements
winget install --id Kitware.CMake --exact --accept-package-agreements --accept-source-agreements

$env:Path = [Environment]::GetEnvironmentVariable("Path", "Machine") + ";" + [Environment]::GetEnvironmentVariable("Path", "User")
if (-not (Test-Path "$HOME\whisper.cpp")) { git clone https://github.com/ggml-org/whisper.cpp.git "$HOME\whisper.cpp" }
cmake -S "$HOME\whisper.cpp" -B "$HOME\whisper.cpp\build"
cmake --build "$HOME\whisper.cpp\build" --config Release -j

$whisperBin = "$HOME\whisper.cpp\build\bin\Release"
$userPath = [Environment]::GetEnvironmentVariable("Path", "User")
if ($userPath -notlike "*$whisperBin*") { [Environment]::SetEnvironmentVariable("Path", "$userPath;$whisperBin", "User") }
$env:Path += ";$whisperBin"
Linux
  • Install Homebrew when needed, then install the four tools by running this setup block:
if ! command -v brew >/dev/null 2>&1; then
  /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
fi

brew install yt-dlp deno ffmpeg whisper.cpp
  • Open a new terminal after installation finishes.
  • Run the four check commands again.

Is a media command still missing?

A new terminal reloads the PATH entries created by Homebrew, WinGet, or the whisper.cpp build. Run only the failed check again after reopening it.

If it still fails, help me locate the missing research tool.

Install Claude Code

Claude Code coordinates local commands from inside your project folder. First confirm that the CLI is installed, then create the folder before launching it so the session starts in the correct workspace.

Review how Claude Code is billed

Claude Pro currently costs $20 with monthly billing or $17 per month when $200 is billed annually. Claude Code is included with paid Claude plans, while the free plan does not include access.

A Claude Console account uses pay-as-you-go API pricing instead. Choose the account whose billing method you intend to use when browser authentication opens.

  • Check whether Claude Code is already installed by running:
claude --version

Choose the result that matches your terminal.

✔️ I see a version number

Claude Code is already installed. Continue to create the project folder before starting the CLI.

ⓧ Command not found

Install Claude Code with Anthropic's native installer for your operating system.

macOS
  • Install Claude Code by running:
curl -fsSL https://claude.ai/install.sh | bash
Windows
  • Install Claude Code from PowerShell by running:
irm https://claude.ai/install.ps1 | iex

You should see the installer confirm that Claude Code installed successfully.

Linux
  • Install Claude Code by running:
curl -fsSL https://claude.ai/install.sh | bash
  • Open a new terminal after the installer finishes.
  • Confirm that Claude Code now returns a version by running:
claude --version
Create the three-video workspace

The workspace stores the three videos selected in Step 1 and the assets derived from them. Its structure follows the revised workflow, so each later command has one clear destination.

macOS

  • Create the video-research-agent folder on your Desktop, enter it, and print its location by running:
cd ~/Desktop
mkdir -p video-research-agent
cd video-research-agent
pwd

Windows

  • Create the video-research-agent folder on your Desktop, enter it, and print its location by running:
Set-Location ([Environment]::GetFolderPath('Desktop'))
New-Item -ItemType Directory -Force -Path 'video-research-agent' | Out-Null
Set-Location 'video-research-agent'
Get-Location

Linux

  • Create the video-research-agent folder on your Desktop, enter it, and print its location by running:
cd ~/Desktop
mkdir -p video-research-agent
cd video-research-agent
pwd

The first launch opens browser authentication when you have not signed in before. Choose the account tied to the billing method you reviewed above.

  • Start Claude Code inside video-research-agent by running this command:
claude
  • Select Claude account with subscription if you use a paid Claude plan.
  • Select the Console account option if you intend to use pay-as-you-go API billing.
  • Complete browser authentication with the matching account.

Did installation or sign-in stop?

Close every terminal window after installation so the new PATH loads. During sign-in, use the same subscription or Console account selected in the terminal.

If the prompt still does not open, help me finish the Claude Code setup.

💡 What happens after you submit the prompt?

Claude Code asks for permission before writing files or running terminal commands. Review each requested path, then approve it when it only targets your video-research-agent folder.

  • Create the research workspace by submitting this prompt:
Create a research workspace for these three videos.

Create these folders: media, audio, storyboards, transcripts, and guides.

Create links.md with:
- Subject: [[RESEARCH_SUBJECT="NextWork or your chosen creator or brand"]]
- Video 1: [[VIDEO_URL_1="paste the first direct video URL"]]
- Video 2: [[VIDEO_URL_2="paste the second direct video URL"]]
- Video 3: [[VIDEO_URL_3="paste the third direct video URL"]]

Create CLAUDE.md with these rules:
- Process the links one at a time.
- Never use browser cookies or social-platform login.
- Record failed links and continue.
- Save videos, audio, storyboards, transcripts, and guides in their matching folders.
- Use ffmpeg for conversion and whisper-cli for transcription.
- Only create extra folders when a later step requests them.

When finished, list everything you created.
  • Exit Claude Code by entering:
/exit

Your toolchain can find every command, and the workspace now holds your creator plus three video URLs. Next, you'll use yt-dlp to download those three videos into media.

Scan Links and Download Clips

Your local toolchain is ready. The next risk is the input batch: public links can disappear or require login between runs.

In this step, Claude Code uses resilient batch processing to keep one failed source from stopping the rest. It records every labeled row before downloading only usable sources.

In this step, get ready to:
  • Load the research subject and one public video link for each of the four platforms saved in Step 1 into links.md.
  • Scan every labeled source row into a visible availability table.
  • Download a working clip and metadata for every available source.
  • Restart Claude Code from the video-research-agent folder by running this command:
claude

Load your saved research links

Step 1 saved your research subject and platform URLs as project variables. The prefilled prompt below renders those values so Claude Code can write them into links.md without asking you to enter them again.

  • Review the saved research subject and links rendered in the prompt below.
  • Populate links.md by submitting the prefilled prompt to Claude Code:
Update links.md with my saved Step 1 subject and video links.

Keep one row for each named platform. Remove empty X or Other rows, but keep any labeled row I added.

Do not ask for the values again. Do not scan or download anything.

When finished, show the completed links.md file.
  • Confirm that Claude Code uses the rendered Step 1 values without asking for the subject or links again.
  • Confirm that YouTube, Instagram, TikTok, and Facebook each have exactly one direct video link.

Why scan labeled rows?

This project begins with four named source rows and one link per platform. The agent processes rows by their labels, so it can also handle a new platform row you add manually later.

Keeping extra rows optional avoids empty placeholders while preserving the agent's flexibility.

Scan every labeled source

The availability scan separates usable sources from missing or inaccessible ones before media downloads begin. Claude Code uses its normal approval flow for each terminal command.

  • Paste this request into Claude Code:
Read CLAUDE.md and links.md.

Check every labeled link without downloading media. Write each result to run-status.md as available, unavailable, or not provided.

Do not use social-platform login. Continue when a link fails.

How does the scan stay resilient?

  • Claude follows CLAUDE.md by inspecting one URL per command.
  • This isolates a failed extractor from later source rows.
  • The --simulate option checks each source without downloading its video.
  • Every labeled row receives an available, not provided, or unavailable result.
  • Review each permission prompt before Claude runs a scan command.
  • Choose the one-time approval option when the command starts with yt-dlp and includes --simulate, --no-cookies, and --no-cookies-from-browser.
  • When Claude asks to create or update run-status.md, review the request and choose the one-time approval option.
  • Display the saved status file in your terminal by submitting this prompt:
Show run-status.md.

You now have a complete availability map that preserves every labeled source row.

Missing a status row?

Check that links.md contains YouTube, Instagram, TikTok, and Facebook with one link each. Ask Claude to continue through every labeled row when one public link cannot be inspected.

If the table is still incomplete, help me debug the missing availability row.

Download the available clips

The download pass uses the availability table as its gate. Saving full videos and metadata into separate folders can take several minutes for longer clips or slower connections.

  • Paste this request into Claude Code:
Read CLAUDE.md and run-status.md.

Download every available video with yt-dlp. Use:
- Folder pattern: media/%(extractor_key)s-%(id)s/
- Video name: video.%(ext)s
- Metadata option: --write-info-json

Never use cookies or social-platform login. Continue when one download fails.

Update run-status.md with each successful folder. Then show the status table and created folders.

What does the download create?

  • Claude downloads only rows currently marked available.
  • Each successful video gets its own folder inside media/, named with the extractor key and video ID.
  • The video file and video.info.json stay together inside that folder.
  • The matching folder path is recorded in run-status.md for later prompts.

Verify Downloads in File Explorer

macOS

  • Press Cmd+Space to open Spotlight Search.
  • Type Finder and press Enter.
  • Select Desktop in the Finder sidebar.
  • Double-click the video-research-agent folder.
  • Double-click the media folder.
  • Double-click one source folder.

You should see one folder per successful source. The opened folder contains a playable video and its matching video.info.json file.

Windows

  • Press the Windows key to open Search.
  • Type File Explorer and press Enter.
  • Select Desktop in the left navigation pane.
  • Double-click the video-research-agent folder.
  • Double-click the media folder.
  • Double-click one source folder.

You should see one folder per successful source. The opened folder contains a playable video and its matching video.info.json file.

Linux

  • Press the Super key to open your app search.
  • Type Files and press Enter.
  • Select Desktop in the Files sidebar.
  • Double-click the video-research-agent folder.
  • Double-click the media folder.
  • Double-click one source folder.

You should see one folder per successful source. The opened folder contains a playable video and its matching video.info.json file.

  • Play the downloaded video inside each source folder.

Did One Source Fail?

Keep the affected row marked unavailable when public inspection or downloading fails. Do not add cookies or social-platform credentials.

If successful sources also stopped, help me diagnose the failed download without stopping the batch.

Before you ask, do you think filenames and metadata can reveal exactly what each person said?

  • Test the downloaded evidence by asking Claude Code this question:
Using only the downloaded filenames and metadata, tell me what was said in each clip.

Why the Answer Falls Short

Filenames and .info.json metadata do not provide a trustworthy record of every spoken line. Any answer based only on those files would be incomplete or inferred.

This is the intended shortfall. Your batch still needs a searchable evidence layer.

Your agent can now separate usable sources from missing ones without abandoning the batch. Next, you will turn the downloaded media into visual and searchable evidence.

Create Screenshots and Transcripts

Create Storyboards and Timed Transcripts

Your scan now shows which videos have usable local media. The next step turns each available clip into evidence you can inspect without replaying it from start to finish.

In this step, FFmpeg samples frames into a storyboard sequence. whisper.cpp creates a detailed JSON transcript with segment timings, token timings, and probability values.

In this step, get ready to:
  • Extract storyboard frames at your chosen interval.
  • Create a timed transcript for every available clip.
  • Verify that each available source has both evidence types.
Extract storyboard frames

The frame interval controls how closely the storyboard follows scene changes. Smaller values create more images.

  • Choose the number of seconds between frames: 5.
  • In your Terminal, create the storyboard frames for every downloaded clip at that interval by running these commands:
FRAME_INTERVAL_SECONDS=[[FRAME_INTERVAL_SECONDS="5"]]
mkdir -p storyboards
for file in media/*/video.*; do
  [ -e "$file" ] || continue
  case "$file" in
    *.info.json) continue ;;
  esac
  source_name="$(basename "$(dirname "$file")")"
  ffmpeg -y -i "$file" -vf "fps=1/${FRAME_INTERVAL_SECONDS},scale=960:-2" "storyboards/${source_name}_%03d.jpg"
done

How does the frame interval work?

  • The FRAME_INTERVAL_SECONDS value stores the chosen gap between storyboard images.
  • The fps=1/${FRAME_INTERVAL_SECONDS} filter converts that gap into FFmpeg's output frame rate.
  • Use 2 for more detail when scenes change quickly.
  • Use 10 to create fewer images from longer videos.
  • Confirm the storyboard files exist by running this command:
! ls storyboards | head

You'll see numbered JPEG files prefixed with each source folder name, such as Youtube-abc123_001.jpg and Youtube-abc123_002.jpg.

No storyboard frames?

  • Confirm that each source folder inside media/ contains a video file.
  • Confirm that ffmpeg still returns a version number.

If the loop still creates no files, help me diagnose the nested storyboard extraction.

Generate timed transcripts

Timestamps make spoken evidence traceable. They also let the later guides connect delivery choices to the matching storyboard moments.

The transcription model is downloaded separately from the whisper-cli executable. The official English small model is about 488 MB, so the first download can take several minutes on a slower connection.

  • Restart Claude Code from the video-research-agent folder by running this command:
claude
  • Prepare the transcription model by submitting this prompt in Claude Code:
Prepare models/ggml-small.en.bin.

If it already exists and is not empty, show its size and make no changes.

Otherwise, download this file to models/ggml-small.en.bin.part:
https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-small.en.bin

Rename it to ggml-small.en.bin only after the download succeeds. Never use the tiny test model.

When finished, show the final path and size.

Did the model download stop?

Delete only the incomplete models/ggml-small.en.bin.part file before retrying. Keep any completed models/ggml-small.en.bin file.

If the download still fails, help me finish the whisper.cpp model download.

  • Create timestamped JSON transcripts by submitting this prompt in Claude Code:
Read CLAUDE.md and run-status.md.

First, confirm models/ggml-small.en.bin exists and is not empty. Stop if it is missing. Do not download another model.

For each available source:
1. Find its video using the folder in run-status.md.
2. Create a 16 kHz mono PCM WAV in audio/.
3. Run whisper-cli with the small English model, --output-json-full, and the matching output name in transcripts/.

Use the source folder name for the WAV and JSON files. Continue when one clip fails.

When finished, list the transcripts and failed sources.

Each transcription can take several minutes on a slower CPU. Progress messages from whisper.cpp confirm that the current clip is still processing.

Verify the transcript

  • Open New Terminal
    • Press Cmd+Space (macOS) or the Windows key (Windows).
    • Search for Terminal or Windows Terminal, then press Enter.
  • Navigate to /video-research-agent directory.
  • Confirm the transcript files exist by running this command:
! ls transcripts

You'll see one JSON transcript for each processed clip. Each file contains timed speech that the next step can cite.

Transcript missing or empty?

  • Confirm that the completed model is named models/ggml-small.en.bin. A file ending in .part is an unfinished download.
  • Confirm that the failed key has a non-empty WAV file in audio/.
  • Submit the batch prompt again. Existing model and WAV files remain in place, so Claude Code can retry the missing transcript.

If whisper.cpp still creates no JSON file, help me diagnose the timed transcription.

Audit the evidence pairs

Every source marked available needs both a storyboard sequence and a timed transcript. This final audit prevents incomplete sources from entering the creator guides.

  • Switch back to Claude code session
  • Run a read-only evidence audit by submitting this prompt in Claude Code:
Audit the available sources without changing files.

For each source in run-status.md, check for:
- One video and video.info.json in its media folder.
- At least one matching JPEG in storyboards/.
- One matching timed JSON file in transcripts/.

Use the source folder name to match the files. Print PASS or FAIL for each source, then show the available and complete totals plus any missing files.

You'll see a PASS or FAIL result for each available source. The two totals match when every clip has a complete evidence pair.

Your clips now have a visual timeline and a timed speech record. Next, you'll turn that evidence into content cards plus practical editing and speaking guides.

Build Evidence-Backed Content Cards

Build Content Cards and Creator Guides

Your storyboards and timed transcripts now preserve what viewers see plus what they hear. You can turn those separate files into a report that is quick to scan.

In this step, Claude Code applies one Markdown card schema to every available source. It then combines repeated evidence into separate editing and speaking guides.

In this step, get ready to:
  • Generate one evidence-backed content card per video.
  • Create a creator-specific editing style guide.
  • Create a creator-specific speaking style guide.
Build the content cards

A fixed schema makes every video answer the same questions. Timestamps anchor spoken claims, while storyboard filenames anchor visual observations.

  • Generate one card for every complete evidence pair by submitting this prompt in Claude Code:
Build content-intelligence-report.md from every complete available source.

Create one card per video with:
- Summary.
- Hook.
- Exactly three Key Points.
- Call to Action.
- Visual Evidence.
- Delivery Evidence.
- Source.

Use the source folder name to match media, transcripts, and storyboards. Cite timestamps for spoken claims and storyboard filenames for visual claims. Flag uncertain wording with probability values when useful.

Keep evidence separate from interpretation. Do not invent unsupported details.

How does this prompt ground each card?

  • The shared schema keeps every source consistent.
  • The evidence fields make each observation traceable to a timestamp or storyboard frame.
  • The interpretation boundary stops uncertain details from becoming facts.

Report missing a card?

Check that the missing source is marked available and has a matching transcript plus storyboard sequence.

If the files exist but the card is still missing, help me diagnose the missing content card.

Create the editing guide

The cards preserve source-level observations. A dedicated editing guide turns repeated visual evidence into choices a creator can apply to a new video.

  • Create the editing guide by submitting this prompt in Claude Code:
Create editing-style-guide.md from the content cards and their cited evidence.

Include:
- Editing Overview.
- Opening Structure.
- Shot and Cut Rhythm.
- B-Roll and Supporting Visuals.
- On-Screen Text and Graphics.
- Transitions and Motion.
- Colour and Typography.
- What Varies by Video.
- Evidence Index.

Call a pattern recurring only when two source moments support it. Label single-source observations as tentative. Cite the source, storyboard file, and nearest timestamp for every pattern.

Use practical ranges instead of rigid rules. Do not infer details missing from the storyboards.

How is the editing guide different?

  • Repeated patterns become practical editing guidance.
  • Single examples stay visible without being promoted into creator-wide rules.
  • The evidence index lets the learner revisit the exact frames behind each recommendation.

You should see editing-style-guide.md with recurring patterns, tentative observations, and links back to the visual evidence.

Create the speaking guide

The speaking guide focuses on the creator's repeatable communication habits. Transcript wording, timestamps, and word probabilities support the analysis.

  • Create the speaking guide by submitting this prompt in Claude Code:
Create speaking-style-guide.md from the content cards and timed transcripts.

Include Speaking Overview, Hook Patterns, Sentence and Phrase Patterns, Vocabulary and Signature Language, Pacing and Pauses, Explanation Structure, Calls to Action, Tone and Energy, What Varies by Video, and an Evidence Index.

Call a pattern recurring only when two source moments support it. Label single-source observations as tentative. Cite short transcript quotes with their source and timestamp. Do not infer unsupported traits such as pitch, accent, facial expression, or emotion.

When finished, do not print the three full files. Use them to display one Creator Analysis Summary with:
- A Creator at a Glance table.
- Up to five Most Useful Patterns. For each, show why it works, how to reuse it, short evidence, and confidence.
- A Video Comparison table with readable titles, hooks, structures, visual styles, and calls to action.
- A Creator Playbook with a five-step video sequence, a reusable hook template, and recommended section lengths.
- Tentative Observations kept separate from recurring patterns.
- An Evidence Appendix with short citations.

Use readable video titles instead of source IDs. Keep paragraphs to two sentences or fewer. Shorten citations to formats such as [YouTube, 00:14] or [Instagram, frame 003]. Keep the summary to roughly three rendered screens.

You should see one readable Creator Analysis Summary that turns the three detailed files into patterns, comparisons, and a playbook you can use for a new video.

That completes the creator analysis. You now have source-level content cards plus editing and speaking guides that stay tied to the original evidence.

Secret mission

Turn the Workflow Into a Skill

Package the workflow as /creator-video-analysis, then paste a different creator or authorized video links to generate a separate run and readable creator summary.

Clean Up Your Resources

Clean Up Your Resources

The local video-research-agent/ workspace and installed tools create no ongoing storage charge. Claude paid access, usage credits, or Console auto-reload can continue billing until you change those settings.

Resources you used:

  • The local video-research-agent workspace on your Desktop, including downloaded media, evidence files, reports, and the transcription model.
  • The native Claude Code installation.
  • The local Deno, yt-dlp, FFmpeg, and whisper.cpp installations.
  • Your Claude paid plan, optional usage credits, or Claude Console auto-reload settings.

Keep everything running

No action needed. Choose this if you plan to run more research batches with the same local toolchain.

  • Keep the video-research-agent folder on your Desktop with its evidence trail and reports.
  • Keep Claude Code, Deno, yt-dlp, FFmpeg, and whisper.cpp installed.
  • Keep your Claude paid plan only if you expect to continue using it.
  • Review Settings, then Usage in Claude if usage credits are enabled.

Pause - I'll come back to this later

Pausing closes the active Claude Code session while preserving the workspace and tools. Claude subscriptions cannot be paused, so paid access continues unless you cancel it.

  • Select the terminal that is running Claude Code.
  • Enter /exit to close the session.
  • Confirm that you see your normal shell or PowerShell prompt again.
  • Leave the video-research-agent folder on your Desktop.
  • Open Claude on the web if you want to prevent pay-as-you-go usage while keeping your plan.
  • Open Settings, then Usage.
  • Disable usage credits if they are enabled.
  • Open Claude Console Settings, then Billing if you used Console credits.
  • Turn off Auto-reload if it is enabled.

Delete - I don't want to use this again

Deleting the workspace and uninstalling the tools is permanent. Save any report or source asset you want to keep before running these commands.

  • Move any files you want to keep outside the video-research-agent folder.
  • Enter /exit in the active Claude Code session.

macOS

  • Remove the workspace and native Claude Code installation by running:
rm -rf ~/Desktop/video-research-agent
rm -f ~/.local/bin/claude
rm -rf ~/.local/share/claude
  • Remove the Homebrew media tools by running:
brew uninstall yt-dlp deno ffmpeg whisper.cpp
  • Confirm that the workspace and commands are gone by running:
test ! -d ~/Desktop/video-research-agent && echo "Workspace deleted"
command -v claude || echo "Claude Code removed"
command -v deno || echo "Deno removed"
command -v yt-dlp || echo "yt-dlp removed"
command -v ffmpeg || echo "FFmpeg removed"
command -v whisper-cli || echo "whisper.cpp removed"

Windows

  • Remove the workspace and native Claude Code installation from PowerShell by running:
$project = Join-Path ([Environment]::GetFolderPath('Desktop')) 'video-research-agent'
Remove-Item -LiteralPath $project -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item -Path "$env:USERPROFILE\.local\bin\claude.exe" -Force -ErrorAction SilentlyContinue
Remove-Item -Path "$env:USERPROFILE\.local\share\claude" -Recurse -Force -ErrorAction SilentlyContinue
  • Remove the WinGet media packages by running:
winget uninstall --id yt-dlp.yt-dlp --exact
winget uninstall --id DenoLand.Deno --exact
winget uninstall --name "FFmpeg (Essentials Build)" --exact
  • Remove the whisper.cpp archive and its PATH entry by running:
$root = "$env:USERPROFILE\.local\share\whisper-b5130"
$userPath = [Environment]::GetEnvironmentVariable('Path', 'User')
$cleanPath = ($userPath -split ';' | Where-Object { $_ -and ($_ -notlike "$root*") }) -join ';'
[Environment]::SetEnvironmentVariable('Path', $cleanPath, 'User')
Remove-Item -Path $root -Recurse -Force -ErrorAction SilentlyContinue
  • Open a new PowerShell window.
  • Confirm that the workspace and commands are gone by running:
$project = Join-Path ([Environment]::GetFolderPath('Desktop')) 'video-research-agent'
if (-not (Test-Path $project)) { 'Workspace deleted' }
'claude','deno','yt-dlp','ffmpeg','whisper-cli' | ForEach-Object {
  if (Get-Command $_ -ErrorAction SilentlyContinue) { "$_ still installed" } else { "$_ removed" }
}

Linux

  • Remove the workspace, native Claude Code files, yt-dlp, and whisper.cpp by running:
rm -rf ~/Desktop/video-research-agent
rm -f ~/.local/bin/claude
rm -rf ~/.local/share/claude
rm -f ~/.local/bin/yt-dlp
rm -rf ~/.local/share/whisper-b5130
  • Clear Deno's cache and remove its installation by running:
deno clean
rm -rf ~/.deno
  • Open your shell configuration file and remove only the line that sources Deno's environment file.
  • Open ~/.profile and remove only the PATH line containing whisper-b5130.
  • Remove FFmpeg through APT by running:
sudo apt remove ffmpeg
  • Enter Y if APT asks you to confirm the removal.
  • Open a new terminal window.
  • Confirm that the workspace and commands are gone by running:
test ! -d ~/Desktop/video-research-agent && echo "Workspace deleted"
command -v claude || echo "Claude Code removed"
command -v deno || echo "Deno removed"
command -v yt-dlp || echo "yt-dlp removed"
command -v ffmpeg || echo "FFmpeg removed"
command -v whisper-cli || echo "whisper.cpp removed"

Local cleanup does not cancel paid Claude access. Use the following actions only if you no longer want that access.

  • Open Claude on the web.
  • Click your initials or name in the lower-left corner.
  • Select Settings.
  • Open Billing.
  • Click Cancel to cancel a web Pro or Max plan.
  • Cancel at least 24 hours before the next billing date to avoid the next charge.
  • Open Usage from Settings.
  • Disable usage credits if they are enabled.
  • Open Claude Console Settings, then Billing if you used Console credits.
  • Turn off Auto-reload.

Folder still in use?

A file may still be open from the workspace. Close any editor, terminal, or media player that is using the folder before trying again.

Help me find the process that is keeping the folder open.

Nice Work!

Nice Work!

Mission complete! Your Claude Code agent now turns public cross-platform videos into a source-backed content intelligence report.

You've learned how to:

  • Run a resilient four-platform workflow that uses yt-dlp to save one YouTube, Instagram, TikTok, and Facebook clip with its metadata while preserving unavailable sources.
  • Create local evidence for every available clip with an FFmpeg screenshot, a 16 kHz mono WAV file, and a small.en transcript from whisper.cpp.
  • Build evidence-backed content cards that reveal repeated topics, cross-posts, format differences, content gaps, and three concrete video ideas.
  • Complete an optional Secret Mission that packages the workflow as a reusable skill, tests it on a different creator, and displays one combined creator analysis summary.

Ready to quiz yourself?