---
title: "Automatic review videos"
url: https://phatdev.net/en/docs/media-studio/video-review
lang: en
updated: 2026-10-20
alternate:
  vi: https://phatdev.net/docs/media-studio/video-review
markdown: https://phatdev.net/en/docs/media-studio/video-review.md
---

# Automatic review videos

Part of the doc set: [Media Studio](https://phatdev.net/en/docs/media-studio.md)

> From a product link to a Remotion video: real benchmarks, 3D motion, and text that appears in step with the voice-over.

Paste **one product link** and Media Studio produces a complete review video: script, voice-over, benchmark scenes with real numbers, 3D motion, subtitles, logo and a Like/Subscribe button. Frames come in **16:9, 9:16, 1:1 and 4:3**, exported at 1080p.


<div style="margin:1.6em 0"><figure style="margin:0"><a href="https://phatdev.net/uploads/p/media-studio/ui-script-vi-light-3840.webp" target="_blank" rel="noopener" class="pd-th-light" style="display:block;border:0" aria-label="Script: review, comparison, knowledge and more, read straight from the product link (4K)"><img src="https://phatdev.net/uploads/p/media-studio/ui-script-vi-light-1920.webp" srcset="/uploads/p/media-studio/ui-script-vi-light-960.webp 960w, /uploads/p/media-studio/ui-script-vi-light-1920.webp 1920w, /uploads/p/media-studio/ui-script-vi-light-3840.webp 3840w" sizes="(max-width: 900px) 100vw, 760px" width="3840" height="2160" alt="Script: review, comparison, knowledge and more, read straight from the product link" loading="lazy" decoding="async" style="width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:12px"></a><a href="https://phatdev.net/uploads/p/media-studio/ui-script-vi-dark-3840.webp" target="_blank" rel="noopener" class="pd-th-dark" style="display:block;border:0" aria-label="Script: review, comparison, knowledge and more, read straight from the product link (4K)"><img src="https://phatdev.net/uploads/p/media-studio/ui-script-vi-dark-1920.webp" srcset="/uploads/p/media-studio/ui-script-vi-dark-960.webp 960w, /uploads/p/media-studio/ui-script-vi-dark-1920.webp 1920w, /uploads/p/media-studio/ui-script-vi-dark-3840.webp 3840w" sizes="(max-width: 900px) 100vw, 760px" width="3840" height="2160" alt="Script: review, comparison, knowledge and more, read straight from the product link" loading="lazy" decoding="async" style="width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:12px"></a><figcaption style="margin-top:8px;font-size:13px;line-height:1.5;color:var(--muted);text-align:center">Script: review, comparison, knowledge and more, read straight from the product link</figcaption></figure></div>

## Processing flow

1. **Read the product page**: filter to the correct laptop's images (only images ending in `-H1…-Hx`) and extract the spec table.
2. **Look up performance**: Gemini searches the web plus the NotebookCheck / Blender Open Data databases for CPU and GPU scores, game FPS, 3D rendering and office results.
3. **Write the script**: each scene has a badge, key points and real numbers. The opening line is **a single curiosity-driven hook** (for example *"How powerful is the RTX 5090 with an Ultra 9 chip in the ROG Strix SCAR 18?"*) - no long greeting.
4. **Remove the laptop photo background** with a quality check; a failed image automatically tries another engine or swaps the image.
5. **Voice-over** (Gemini, Charon voice) followed by **Whisper** to time every word.
6. **Render with Remotion**, the whole video in one pass, then FFmpeg joins the voice frame by frame, adds whoosh transitions and background music.

## 11 scene templates

`review-intro`, `review-scene`, `review-outro`, `review-compare`, `scene-cinematic`, `scene-showcase`, `scene-stat`, `scene-split`, `scene-chart`, `scene-gamegrid`, `spec-highlight` - the app rotates them automatically to avoid monotony.

## "Pro" motion (default)

- Laptop photos get a **3D camera**: rushing in from depth and rotating, panning from an angled view, or zooming out from a close-up.
- Text **flips in 3D word by word**, bold words get an emphasis streak; cards, chart columns and game tiles flip in; numbers always count up.
- **Zoom / fade + slide** transitions of 0.37-0.5s that never throw the voice out of sync.
- Send `fx: "classic"` to use the older style.

## "Show it as it's said"

Each spec, chart column and game name **appears exactly when the voice mentions it** and is highlighted with a glowing outline while being read. In the **game grid**, the game tiles start dimmed and then light up, with FPS counting up from 0 right when the game's name is spoken. Turn this off with `syncCues: false`.

## Benchmark scenes with "What this means"

| Scene | Content | Conversion line |
|---|---|---|
| CPU | Cinebench and other multi-core tests | "A 10-minute job on chip X → about N minutes on this laptop" |
| GPU | 3DMark | "A game at 60 fps on card X → about N fps on this laptop" |
| 3D render | Blender: Monster, Junkshop, Classroom | Compared with the nearest weaker laptop GPU |
| Gaming | Grid of 6 games, cover art + FPS | "6/6 games above 60 fps → smooth at High 1080p" |
| Office | UL Procyon (Word/Excel/PowerPoint/Outlook) | Shown only when real numbers exist |

The conversion uses the **real score ratio** between the two components; scenes without data are dropped.

## Branding in the video

- The default palette is **Blue + Red** (`blue-red`, matching the Hưng Phát logo); `blue-orange` and `blue-yellow` are also available.
- The **logo** is drawn directly in the bottom-left corner from scene 2 onward, taken from the Brand Kit. Use `brandLogo: false` to turn it off.
- A compact **Like / Subscribe** button in YouTube colors, with a click cursor and a ringing bell. The outro includes the line "Product link in the description".

## Reference numbers

An 11-scene video (about 60-90s) renders in roughly **90s (16:9)** to **110s (9:16)**, not counting voice generation and word timing (add 30-60s).

## Screenshots

<div style="display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px 16px;margin-top:1em"><figure style="margin:0"><a href="https://phatdev.net/uploads/p/media-studio/ui-html-video-vi-light-3840.webp" target="_blank" rel="noopener" class="pd-th-light" style="display:block;border:0" aria-label="HTML Video: from a link to a Remotion review video (4K)"><img src="https://phatdev.net/uploads/p/media-studio/ui-html-video-vi-light-1920.webp" srcset="/uploads/p/media-studio/ui-html-video-vi-light-960.webp 960w, /uploads/p/media-studio/ui-html-video-vi-light-1920.webp 1920w, /uploads/p/media-studio/ui-html-video-vi-light-3840.webp 3840w" sizes="(max-width: 900px) 100vw, 380px" width="3840" height="2160" alt="HTML Video: from a link to a Remotion review video" loading="lazy" decoding="async" style="width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:12px"></a><a href="https://phatdev.net/uploads/p/media-studio/ui-html-video-vi-dark-3840.webp" target="_blank" rel="noopener" class="pd-th-dark" style="display:block;border:0" aria-label="HTML Video: from a link to a Remotion review video (4K)"><img src="https://phatdev.net/uploads/p/media-studio/ui-html-video-vi-dark-1920.webp" srcset="/uploads/p/media-studio/ui-html-video-vi-dark-960.webp 960w, /uploads/p/media-studio/ui-html-video-vi-dark-1920.webp 1920w, /uploads/p/media-studio/ui-html-video-vi-dark-3840.webp 3840w" sizes="(max-width: 900px) 100vw, 380px" width="3840" height="2160" alt="HTML Video: from a link to a Remotion review video" loading="lazy" decoding="async" style="width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:12px"></a><figcaption style="margin-top:8px;font-size:13px;line-height:1.5;color:var(--muted);text-align:center">HTML Video: from a link to a Remotion review video</figcaption></figure><figure style="margin:0"><a href="https://phatdev.net/uploads/p/media-studio/video-spec-vi-light-3840.webp" target="_blank" rel="noopener" class="" style="display:block;border:0" aria-label="Spec scene: text and cards appear right when the voice mentions them (4K)"><img src="https://phatdev.net/uploads/p/media-studio/video-spec-vi-light-1920.webp" srcset="/uploads/p/media-studio/video-spec-vi-light-960.webp 960w, /uploads/p/media-studio/video-spec-vi-light-1920.webp 1920w, /uploads/p/media-studio/video-spec-vi-light-3840.webp 3840w" sizes="(max-width: 900px) 100vw, 380px" width="3840" height="2160" alt="Spec scene: text and cards appear right when the voice mentions them" loading="lazy" decoding="async" style="width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:12px"></a><figcaption style="margin-top:8px;font-size:13px;line-height:1.5;color:var(--muted);text-align:center">Spec scene: text and cards appear right when the voice mentions them</figcaption></figure><figure style="margin:0"><a href="https://phatdev.net/uploads/p/media-studio/video-cpu-vi-light-3840.webp" target="_blank" rel="noopener" class="" style="display:block;border:0" aria-label="CPU benchmark (Cinebench R23) with a "What this means" box (4K)"><img src="https://phatdev.net/uploads/p/media-studio/video-cpu-vi-light-1920.webp" srcset="/uploads/p/media-studio/video-cpu-vi-light-960.webp 960w, /uploads/p/media-studio/video-cpu-vi-light-1920.webp 1920w, /uploads/p/media-studio/video-cpu-vi-light-3840.webp 3840w" sizes="(max-width: 900px) 100vw, 380px" width="3840" height="2160" alt="CPU benchmark (Cinebench R23) with a "What this means" box" loading="lazy" decoding="async" style="width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:12px"></a><figcaption style="margin-top:8px;font-size:13px;line-height:1.5;color:var(--muted);text-align:center">CPU benchmark (Cinebench R23) with a "What this means" box</figcaption></figure><figure style="margin:0"><a href="https://phatdev.net/uploads/p/media-studio/video-gpu-vi-light-3840.webp" target="_blank" rel="noopener" class="" style="display:block;border:0" aria-label="GPU benchmark (3DMark Time Spy): &quot;RTX 5080 runs 60 fps → this laptop ≈ 66 fps&quot; (4K)"><img src="https://phatdev.net/uploads/p/media-studio/video-gpu-vi-light-1920.webp" srcset="/uploads/p/media-studio/video-gpu-vi-light-960.webp 960w, /uploads/p/media-studio/video-gpu-vi-light-1920.webp 1920w, /uploads/p/media-studio/video-gpu-vi-light-3840.webp 3840w" sizes="(max-width: 900px) 100vw, 380px" width="3840" height="2160" alt="GPU benchmark (3DMark Time Spy): &quot;RTX 5080 runs 60 fps → this laptop ≈ 66 fps&quot;" loading="lazy" decoding="async" style="width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:12px"></a><figcaption style="margin-top:8px;font-size:13px;line-height:1.5;color:var(--muted);text-align:center">GPU benchmark (3DMark Time Spy): &quot;RTX 5080 runs 60 fps → this laptop ≈ 66 fps&quot;</figcaption></figure><figure style="margin:0"><a href="https://phatdev.net/uploads/p/media-studio/video-blender-vi-light-3840.webp" target="_blank" rel="noopener" class="" style="display:block;border:0" aria-label="Blender 3D render (Monster · Junkshop · Classroom) - Blender Open Data figures (4K)"><img src="https://phatdev.net/uploads/p/media-studio/video-blender-vi-light-1920.webp" srcset="/uploads/p/media-studio/video-blender-vi-light-960.webp 960w, /uploads/p/media-studio/video-blender-vi-light-1920.webp 1920w, /uploads/p/media-studio/video-blender-vi-light-3840.webp 3840w" sizes="(max-width: 900px) 100vw, 380px" width="3840" height="2160" alt="Blender 3D render (Monster · Junkshop · Classroom) - Blender Open Data figures" loading="lazy" decoding="async" style="width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:12px"></a><figcaption style="margin-top:8px;font-size:13px;line-height:1.5;color:var(--muted);text-align:center">Blender 3D render (Monster · Junkshop · Classroom) - Blender Open Data figures</figcaption></figure><figure style="margin:0"><a href="https://phatdev.net/uploads/p/media-studio/video-games-vi-light-3840.webp" target="_blank" rel="noopener" class="" style="display:block;border:0" aria-label="Game grid: real FPS at High 1080p, tiles light up when the voice names the game (4K)"><img src="https://phatdev.net/uploads/p/media-studio/video-games-vi-light-1920.webp" srcset="/uploads/p/media-studio/video-games-vi-light-960.webp 960w, /uploads/p/media-studio/video-games-vi-light-1920.webp 1920w, /uploads/p/media-studio/video-games-vi-light-3840.webp 3840w" sizes="(max-width: 900px) 100vw, 380px" width="3840" height="2160" alt="Game grid: real FPS at High 1080p, tiles light up when the voice names the game" loading="lazy" decoding="async" style="width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:12px"></a><figcaption style="margin-top:8px;font-size:13px;line-height:1.5;color:var(--muted);text-align:center">Game grid: real FPS at High 1080p, tiles light up when the voice names the game</figcaption></figure><figure style="margin:0"><a href="https://phatdev.net/uploads/p/media-studio/video-cooling-vi-light-3840.webp" target="_blank" rel="noopener" class="" style="display:block;border:0" aria-label="Feature scene: real cut-out laptop photo, 3D camera (4K)"><img src="https://phatdev.net/uploads/p/media-studio/video-cooling-vi-light-1920.webp" srcset="/uploads/p/media-studio/video-cooling-vi-light-960.webp 960w, /uploads/p/media-studio/video-cooling-vi-light-1920.webp 1920w, /uploads/p/media-studio/video-cooling-vi-light-3840.webp 3840w" sizes="(max-width: 900px) 100vw, 380px" width="3840" height="2160" alt="Feature scene: real cut-out laptop photo, 3D camera" loading="lazy" decoding="async" style="width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:12px"></a><figcaption style="margin-top:8px;font-size:13px;line-height:1.5;color:var(--muted);text-align:center">Feature scene: real cut-out laptop photo, 3D camera</figcaption></figure><figure style="margin:0"><a href="https://phatdev.net/uploads/p/media-studio/video-display-vi-light-3840.webp" target="_blank" rel="noopener" class="" style="display:block;border:0" aria-label="Display scene: spec outlines glow while being read (4K)"><img src="https://phatdev.net/uploads/p/media-studio/video-display-vi-light-1920.webp" srcset="/uploads/p/media-studio/video-display-vi-light-960.webp 960w, /uploads/p/media-studio/video-display-vi-light-1920.webp 1920w, /uploads/p/media-studio/video-display-vi-light-3840.webp 3840w" sizes="(max-width: 900px) 100vw, 380px" width="3840" height="2160" alt="Display scene: spec outlines glow while being read" loading="lazy" decoding="async" style="width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:12px"></a><figcaption style="margin-top:8px;font-size:13px;line-height:1.5;color:var(--muted);text-align:center">Display scene: spec outlines glow while being read</figcaption></figure><figure style="margin:0"><a href="https://phatdev.net/uploads/p/media-studio/video-keyboard-vi-light-3840.webp" target="_blank" rel="noopener" class="" style="display:block;border:0" aria-label="Keyboard scene: a different camera angle, spec cards appearing one by one (4K)"><img src="https://phatdev.net/uploads/p/media-studio/video-keyboard-vi-light-1920.webp" srcset="/uploads/p/media-studio/video-keyboard-vi-light-960.webp 960w, /uploads/p/media-studio/video-keyboard-vi-light-1920.webp 1920w, /uploads/p/media-studio/video-keyboard-vi-light-3840.webp 3840w" sizes="(max-width: 900px) 100vw, 380px" width="3840" height="2160" alt="Keyboard scene: a different camera angle, spec cards appearing one by one" loading="lazy" decoding="async" style="width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:12px"></a><figcaption style="margin-top:8px;font-size:13px;line-height:1.5;color:var(--muted);text-align:center">Keyboard scene: a different camera angle, spec cards appearing one by one</figcaption></figure><figure style="margin:0"><a href="https://phatdev.net/uploads/p/media-studio/video-ports-vi-light-3840.webp" target="_blank" rel="noopener" class="" style="display:block;border:0" aria-label="Connectivity scene: Thunderbolt 5, 2.5G LAN, Wi-Fi 7 (4K)"><img src="https://phatdev.net/uploads/p/media-studio/video-ports-vi-light-1920.webp" srcset="/uploads/p/media-studio/video-ports-vi-light-960.webp 960w, /uploads/p/media-studio/video-ports-vi-light-1920.webp 1920w, /uploads/p/media-studio/video-ports-vi-light-3840.webp 3840w" sizes="(max-width: 900px) 100vw, 380px" width="3840" height="2160" alt="Connectivity scene: Thunderbolt 5, 2.5G LAN, Wi-Fi 7" loading="lazy" decoding="async" style="width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:12px"></a><figcaption style="margin-top:8px;font-size:13px;line-height:1.5;color:var(--muted);text-align:center">Connectivity scene: Thunderbolt 5, 2.5G LAN, Wi-Fi 7</figcaption></figure><figure style="margin:0"><a href="https://phatdev.net/uploads/p/media-studio/video-outro-vi-light-3840.webp" target="_blank" rel="noopener" class="" style="display:block;border:0" aria-label="Outro: YouTube-style Like/Subscribe button, bell, description link (4K)"><img src="https://phatdev.net/uploads/p/media-studio/video-outro-vi-light-1920.webp" srcset="/uploads/p/media-studio/video-outro-vi-light-960.webp 960w, /uploads/p/media-studio/video-outro-vi-light-1920.webp 1920w, /uploads/p/media-studio/video-outro-vi-light-3840.webp 3840w" sizes="(max-width: 900px) 100vw, 380px" width="3840" height="2160" alt="Outro: YouTube-style Like/Subscribe button, bell, description link" loading="lazy" decoding="async" style="width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:12px"></a><figcaption style="margin-top:8px;font-size:13px;line-height:1.5;color:var(--muted);text-align:center">Outro: YouTube-style Like/Subscribe button, bell, description link</figcaption></figure></div>
