---
name: ai-weekly-video
description: Create sourced Chinese AI industry weekly report videos with Remotion or HyperFrames, including online research, official source screenshots, optional X/Twitter account snapshots, zh-CN-XiaoxiaoNeural voiceover, subtitles, total-part-total narrative structure, market/finance context, speed variants, audio-picture synchronization, MP4 rendering, and ffprobe/visual validation. Use when the user asks to generate, revise, speed up, title, or package an AI weekly news video/report.
---

# AI Weekly Video

## Overview

Produce a professional Chinese AI industry weekly report video from research to final MP4. Keep the workflow evidence-led: every substantive claim needs a source, every screenshot should be traceable, and any speed change must preserve narration-scene alignment.

## Workflow

1. Define the time window explicitly. For "上周", compute exact start/end dates from the user's locale and say the dates in the script.
2. Research current facts online when the report is about recent AI news, finance, market moves, product launches, policy, people, company status, or anything likely to change.
3. Prefer primary sources: official company posts, investor relations, regulator pages, event pages, docs, SEC/stock-exchange filings, and official X accounts. Use news articles only to supplement or discover primary sources.
4. Curate 4-6 major items across model/product launches, AI Agent, enterprise deployment, open-source or controllable models, chips/compute, policy/regulation, and market/finance impact.
5. Write the script in "总-分-总":
   - Opening: 20-30 seconds for the industry mainline and core judgment.
   - Middle: each item includes summary, background, company/institution, motive/strategy, impact/decision judgment, and source.
   - Closing: summarize the trend and give next-week observation points.
6. Capture visuals: official page screenshots first, optional X/Twitter official account snapshots second. If X times out or blocks access, keep the official page screenshot and state the limitation in the final response.
7. Build the video in Remotion by default when the user asks for Remotion. Use HyperFrames when the user explicitly requests HyperFrames or provides the HyperFrames skill.
8. Use `zh-CN-XiaoxiaoNeural` by default when the user asks for the voice used in this thread. Keep the style professional, steady, and clear.
9. Render and validate before final delivery.

For detailed writing requirements, read `references/report-structure.md`. For Remotion timing and 1.5x sync, read `references/remotion-sync.md`.

## Remotion Defaults

Use these defaults unless the user asks otherwise:

- Composition: 16:9, 1920x1080, 30fps.
- Duration: usually 2-4 minutes; for 1.5x synced versions, allow shorter final duration if all narration is preserved.
- Scenes: title/mainline, timeline, one scene per item, source/closing page.
- Visual style: professional, restrained, technology/finance tone. Avoid marketing-heavy language and decorative clutter.
- On-screen elements: title page, timeline, event cards, keyword/data visualization, source labels, subtitles, source page, closing judgment.
- Source labels: show source name and URL in-video where practical.
- Subtitles: Chinese subtitles aligned by scene or shorter caption blocks.

## Audio Sync Rule

Never make the final deliverable by simply speeding up the rendered MP4 when the user expects the picture to match the narration. A whole-video `setpts=PTS/1.5` + `atempo=1.5` pass is only acceptable as a quick preview and should be labeled as such.

For a proper 1.5x version:

1. Split the narration into scene-level segments.
2. Generate audio for each segment.
3. Speed each segment with `atempo=1.5`, or regenerate TTS with a faster rate and still segment it.
4. Use each segment's duration to set the matching Remotion `Sequence` duration.
5. Place the corresponding `<Audio>` inside that `Sequence`.
6. Re-render the composition.

Use `scripts/generate_segment_audio.mjs` when a project needs repeatable scene-level audio generation.

## Screenshot Guidance

Use Playwright or browser automation with a real browser when possible. Store screenshots under `public/assets/screenshots` for Remotion static assets, and copy/source them consistently.

Recommended screenshot set:

- Official event/product/source page for each item.
- Official X account snapshot for the same company when accessible.
- Investor relations page for financial results.
- Regulator/government page for policy items.

Do not present an X profile screenshot as proof of a specific announcement unless the screenshot visibly contains that announcement. Label it as an official account snapshot.

## Validation

Before final response, run the relevant checks:

```bash
npx tsc --noEmit
npx remotion compositions src/index.ts
npx remotion still src/index.ts AIWeekly output/check.png --frame=<representative-frame>
npm run render
ffprobe -v error -show_entries format=duration,size -show_entries stream=index,codec_type,codec_name,width,height,r_frame_rate,sample_rate,channels,duration -of default=nw=1 output/video.mp4
ffmpeg -hide_banner -i output/video.mp4 -af volumedetect -f null -
```

Also extract representative frames from the final MP4 and inspect them for nonblank visuals, readable text, source placement, and subtitle layout.

## Final Response

Return the final MP4 as an absolute-path Markdown media embed. Keep the response concise and include:

- Which file is the recommended final version.
- Whether this is the synced speed version or a quick whole-video speed version.
- Resolution, fps, duration, and audio status.
- Any source/screenshot limitations, especially X/Twitter timeouts.
- Primary source links when facts were researched online.
