Docs
Video Analysis
Analyze any YouTube video with AI.
Algrow's video analyzer breaks down any YouTube video — hooks, pacing, visual storytelling, content strategy. Pairs naturally with search_viral_videos, search_by_thumbnail, and get_youtube_video_data for deep competitor research workflows.
analyze_video
Run Algrow's video analyzer over any YouTube video. Returns a structured text breakdown against your prompt — hooks, pacing, visual storytelling, on-screen text, B-roll usage, content strategy, and more. Async job — submits, polls, returns the analysis. Repeat prompts on the same video within 2 hours reuse a cached upload automatically (faster on the backend).
"Break down the pacing and on-screen text usage in this Short"
"Compare these 3 viral cooking videos — what hook patterns do they share?"
| Parameter | Type | Default | Description |
|---|---|---|---|
| video_url | string | required | YouTube video URL. Accepts watch links (youtube.com/watch?v=...), short links (youtu.be/...), and Shorts URLs (youtube.com/shorts/...). |
| prompt | string | required | What to analyze in plain English. Examples: "Break down the hook", "Identify the pacing and energy shifts", "What visual storytelling techniques are used?". Max 4,000 characters. |
| media_resolution | string | low | Analysis fidelity: low (default, recommended for hook / pacing / strategy prompts) or default (higher visual detail — useful when fine on-screen text or subtle visual cues matter). |
Limits. Very long videos are not supported. Live streams, private, deleted, and age-restricted videos are rejected with clear error messages. Costs 1 credit per 4 minutes of video (minimum 1 credit; default resolution costs 3x). Credits are charged when the job is queued and refunded if the analysis fails.
Caching. Repeat prompts on the same video within a short window reuse the prior ingest automatically — faster turnaround on follow-up questions.
Analyze this video for the hook in the first 3 seconds: https://youtube.com/watch?v=abc123
start_video_analysis
Submit a video for AI vision analysis and return immediately with a job_id — do NOT wait for the analysis to finish in this call. Use when you want to run OTHER Algrow tool calls (channel data, viral search, etc.) in parallel while the analysis processes in the background. Pair with get_video_analysis_result(job_id) to pick up the finished analysis later. Same backend job as analyze_video: 1 credit per 4 minutes of video (3x at default resolution), max 3hr videos, 2hr YouTube cache applies.
"Start analyzing https://youtube.com/watch?v=abc123 for hook patterns, I'll come back for the result"
| Parameter | Type | Default | Description |
|---|---|---|---|
| video_url | string | required | Video URL — YouTube (watch / youtu.be / Shorts), TikTok, or Instagram. Public videos only. |
| prompt | string | required | What to analyze — hook, pacing, visual storytelling, content strategy, etc. |
| media_resolution | string | low | Analysis fidelity: low (default, ~3x cheaper) or default (higher visual detail). |
Kick off an analysis of this video in the background and keep working on the other tasks
get_video_analysis_result
Fetch the result of a video analysis job submitted via start_video_analysis. Blocks until the job finishes (up to several minutes) and then renders the analysis widget. Always pass video_url and prompt back in — the widget needs them to render the embedded player and the prompt header.
"Get the finished video analysis for that job I started earlier"
| Parameter | Type | Default | Description |
|---|---|---|---|
| job_id | string | required | Job ID returned by start_video_analysis. |
| video_url | string | Original video_url passed to start_video_analysis — needed so the widget can render the player. Strongly recommended. | |
| prompt | string | Original prompt passed to start_video_analysis — needed so the widget can render the header. Strongly recommended. |
Pick up the analysis result for job_id 42
download_video
Save a YouTube video, audio track, or subtitle file to a stable URL the user can click to download. Lands the bytes in Algrow’s storage and returns a deterministic mp4/mp3/srt URL with Content-Disposition attachment so clicking it triggers a save. Renders the dino runner game while the upstream download is running so users have something to do during the ~60–120s cold fetch.
"Save the audio track of that video as mp3"
"Grab the subtitles for the last video we analyzed"
"Save just the 1:30 to 2:00 section of this video in 1080p"
| Parameter | Type | Default | Description |
|---|---|---|---|
| video_url | string | required | YouTube video URL. Accepts watch links (youtube.com/watch?v=...), short links (youtu.be/...), and Shorts URLs (youtube.com/shorts/...). |
| format | string | video | What to produce: video (mp4, default), audio (mp3), or subtitles (srt). |
| quality | string | 720p | Video height: 360p, 480p, 720p (default), or 1080p. Ignored for audio and subtitles. |
| start | string | null | Clip start timestamp. Accepts "1:30", "00:01:30", "90", "90s", or a raw number. Omit for start of video. |
| end | string | null | Clip end timestamp. Same formats as start. Omit for end of video. |
Formats. video returns mp4 at the requested quality (360p / 480p / 720p default / 1080p). audio returns mp3 (~10× smaller than video). subtitles returns SRT — tries human-authored first, then auto-generated English.
Timestamps. start and end accept "1:30", "00:01:30", "90", "90s", or a raw number. Clipped downloads of long videos are dramatically faster — a 30s slice of an hour-long video typically lands in ~15s vs ~60s for the full file. subtitles ignores the range and returns the full transcript.
Caching. Each unique (video, format, quality, range) tuple is cached for ~30 days in R2 + Redis. Repeat downloads within that window are instant. The returned URL is stable and safe to share or embed for the lifetime of the cache.
Limits. Capped at 3-hour source duration and 500 MB output. YouTube only — TikTok / Instagram aren’t supported here (their platforms reject the same infrastructure). Live, private, age-restricted, and region-blocked videos are rejected with specific error messages.
Hourly cap by plan. Per user (shared across all of your API keys): Starter 10/hr, Professional 100/hr, Ultimate unlimited. Cached repeats count; failed downloads don’t. When the cap is reached the tool returns an error widget with the wait time and a link to Subscription settings to upgrade.
The tool is most powerful when chained with other Algrow tools. Common patterns:
Outlier Autopsy
Use search_viral_videos with sort_by=outlier_score and min_outlier_score=3 to surface videos beating their channel's average by 3×+. Run analyze_video on each, asking "What does this do in the first 5 seconds, and how is it different from the channel's typical opener?". Algrow knows which videos overperformed; the analysis tells you why.
Niche Hook Pattern Extraction
Pair with search_viral_videos filtered by your niche and uploaded_within_days=7, top 10 by views. Run the same hook-focused analyze_video prompt across all 10. Claude synthesizes the cross-video patterns — cold-opens vs. question hooks vs. shock cuts, average length, on-screen text usage — into a single research memo.
Thumbnail-to-Hook Bridge
Use search_by_thumbnail to find videos with visually similar thumbnails to a draft or competitor cover. Then analyze_video on the top results with the prompt "How does the opening 3 seconds pay off the thumbnail promise?" — surfaces the gap between thumbnail bait and actual hook delivery.
Transcript + Vision Triangulation
Run get_youtube_video_data with include_comments=true, then analyze_video on the same URL. Claude reasons across visual analysis, public metadata, and audience reactions.
Competitor Folder Watch
For channels in a saved folder (get_folder), spot any with elevated views_24h, find the spiking upload via get_channel_videos, and analyze_video it with "What's the hook, format, and pacing — anything new vs. their previous style?". Pairs perfectly with a recurring weekly briefing.
Hook-to-Voiceover Pipeline
End-to-end content R&D in one chat: analyze_video on a top performer, ask Claude to draft 3 alternative hook scripts in the same style, then generate_tts on each so you can A/B-test voiceovers in your own video.
Download this video: https://youtube.com/watch?v=abc123
