---
name: youtube
description: Route a YouTube channel with a recurring AI character — what to make from vidIQ research (breakout videos, trends, keyword demand), a reference episode's structure, the person's own script, the host on the H3 Max Turbo stub + Extend chain with two angles, and the title, description, chapters and thumbnail ready to paste.
---
# YouTube episode with an AI host

FlashBoards user skill, version 1.2.3 (2026-10-13).

On the board, read these guides with `list_skills` and `get_skill` when the assistant exposes them; otherwise use the hosted index through an available read-only retrieval tool. Use that runtime’s actual model discovery, current page context and guarded board actions for execution. Keep native readiness, approval and cost gates; do not claim a guide was read when retrieval is unavailable.

Read related guides with `get_skill({skillId:"<id>"})` or the [hosted index](https://pub-78da82d51ed14147ac554d38094b0c0b.r2.dev/user-skills/1.2.3/index.html). Reading a guide does not start or authorize a paid generation.

Work for the person's own character: their look sheet and saved voice.

Slots: {character} · {look sheet} · {voice} · {topic} · {studio} · {reference} (a breakout episode found with vidIQ).

## Entry level — the quick route first

Make everything first on the cheap route: pictures on GPT Image 2.5 Flare 2K (`gpt-image-25-flare`, `quality: "low"`), the host on H3 Max Turbo (`minimax-h3-max-turbo`) at 480P. Write the script to the promised length (about 150 words a minute). "Make it longer" means new segments from a fresh start frame, not more Extend steps on the tail. After a result the person likes: a Seedance 2.5 re-shoot or a video enhancement only on their pick.

## References first — offer them in the first reply

Offer to look at references together ("Show me references" / "I have my own" / "Skip"): `vidiq_research` with `tool: "outliers"` or `"youtube_search"` on {topic}. The pick sets the idea and its packaging. Show at most three picks, one line each (the hook and why it works). Each vidIQ call is paid by the person (its description names the price; the same question within 12 hours is free): one call per question.

## FlashBoards choice — an episode like a breakout on the topic

1. **What to make** — `vidiq_research` with `tool: "outliers"` on {topic} (breakouts: far more views than the channel usually gets) and `tool: "keyword_research"` for demand; `trending_videos` for what is rising now. Offer at most three ideas, one line each.
2. **Reference** — take the chosen breakout's structure and length (welcome → hook → turn → images → one small thing to do → goodbye), never its words, title or thumbnail.
3. **Script** — the person's own words in that structure, in segments of about 45 s of speech.
4. **Voice** — `generate_voice_audio` with {voice}, `model: "eleven_v4"` (`reels-voice`), one file per segment.
5. **Host video** — `avatar-podcast`: two start frames of {studio} (medium + close-up, 16:9), one chain per segment with `output: "continuation"`, the angles alternating, joined with `concat_videos`.
6. **Packaging** — titles with vidIQ scores (`youtube-packaging`) or written for the idea (three options), a description with chapters from the measured segment start times in the final join (`0:00 …`), tags, and a thumbnail drawn from {look sheet} (`avatar-podcast`, step 8). Keep the packet as a note on the board (`execute_board_action` with `addTextNote`).
7. **Publish** — the person uploads the file on YouTube and pastes the title, description, chapters and tags; where this client offers `social_publish`, draft it with `social` for their approval instead.

**Quality route — Seedance 2.5**: up to 30 s a call with the same prompt (`avatar-podcast`); quote both routes before the paid video.

## Classify

| The job | Go to |
|---|---|
| Ideas, what works on the topic, keyword demand | `vidiq_research`: `outliers`, `trending_videos`, `keyword_research`, `youtube_search` |
| The person's channel: what works on it and why, how it is going | `youtube-checkup` |
| Titles with scores, a thumbnail and its score | `youtube-packaging` |
| A solo podcast or a host talking to camera, 16:9, a minute and longer | `avatar-podcast` |
| One segment, one angle, standing or seated | `avatar-long-speech` |
| A Short for the same channel (9:16, up to 15 s) | `reels` |
| The voice: pick, clone, emotion | `reels-voice`, `reels-voice-clone`, `reels-emotion-tags` |
| A thumbnail with the character | `generate_image` with {look sheet} (`avatar-podcast`) |
| The finished video: will it work before posting | `viral-score` |
| Ready to post: versions per platform, the platform checks, the AI label and a caption | `viral-publish` |

## Global rules

1. **Structure from the reference, words of your own.** Never reuse a reference's sentences, title or thumbnail.
2. **Extend with `continuation`**, never `extended` — `extended` softens the picture step by step.
3. **Cut to the other angle every 40–50 s** of speech: a fresh stub per segment keeps the face sharp.
4. **Publish the clips' own sound**, never the original voice files under the video — the lips follow the clip.
5. One vidIQ call per question, at most 10 results: each call is paid by the person.

## Execute through MCP or on the board

Use the person's FlashBoards account; never ask for a personal provider key or run the source's local scripts. Discover `get_account`, `list_generation_models` and the tools of this client first: a published guide does not prove a feature is deployed.

**Headless, no open board.** Quote with `estimate_generation_cost` (skill models: `estimate_skill_model`), then run `generate_image`, `generate_video`, `generate_audio` or `run_skill_model` with one stable `generationAttemptId` per logical attempt. Pass `maxCostUsd` only when the current operation and selected model support it; otherwise use the quoted cost and the person's explicit approval with the supported controls. Never silently ignore an unsupported spending cap; make one `get_generation` check after `retryAfterSeconds`. Pass the person's own results by `generationId`: images in `referenceGenerationIds`, `firstFrameUrl` and `endFrameUrl`, audio in `referenceAudioUrls` or `targetAudioUrl`, videos in `referenceVideoGenerationIds`. They are read on the server; signed result links do not work as public URLs. Every `generationId` a tool returns stays valid: a later read of the same result gives a different string, and both work. Film frames and gallery pictures go in by `previewHandle`: `referencePreviewHandles` of the generation tools, a `{previewHandle}` source of `arrange_images`, `crop_image` and `pad_image`, and `describe_media`. New files come from `show_media_upload_picker` as receipts. The person's character comes in as its sheet, by `generationId` or as an upload; there is no search by name. If the person names a character without the sheet, ask for it or make one with `character-sheet`; do not scan recent results for it. Free server steps: `trim_video`, `concat_videos`, `conform_video`, `replace_video_audio`, `extract_video_frame`, `extract_video_audio`, `detect_video_cuts`, `crop_image`, `pad_image`, `arrange_images`, `cut_audio_span`, `concat_audio_tracks`, `mix_audio_tracks`, `fit_audio_duration`, `add_audio_reverb`. Check every result with `describe_media` (a question about an image; `model`, `mode` and `sourceRange` only for a video) and `transcribe_media` for speech. Both checks are paid: `describe_media` costs a fraction of a cent for an image and about 2–4 ¢ for a short video (more for a long one), `transcribe_media` under 1 ¢ a minute — count the checks you plan in the price you name before the first paid step. `describe_media` is not reliable about sound: it misses effects mixed under music and can hear voices or instruments that are not there. Check speech with `transcribe_media` and ask the person to listen for effects and music. Never repay an uncertain submission; reuse an attempt ID only for the identical request. Make each new `requestId` or `generationAttemptId` unique, for example the task, the date and a short random suffix: an ID used before, even in another chat, replays that earlier request or answers `REQUEST_ID_CONFLICT`.

**On the board.** Inspect with `list_board_sessions` and `get_board_snapshot` and carry the same `sessionId` and a fresh `activeBoardId` as `expectedBoardId`. Native cards: `execute_board_action` (`listNativeModels`, `setModel`), `prepare_board_generation` with ordered board items or owned outputs, then one `generate_on_board` within the authorized budget. Board media tools: `list_media_tools` → `start_media_tool` → `get_media_tool_run`. Put headless results on a board with `add_media_to_board`.

Keep mandatory safety settings and the live limits of each model. Prices, timings, endpoints and "free retry" claims in the sources are historical, not FlashBoards contracts. If a step this guide needs is not available or is refused (a tool error, `audio_not_configured`, a missing model or input), keep the finished assets, tell the person which step is blocked and why, and ask how to go on. A single generation that ends `failed` is not a blocked step: submit it once more with a new `generationAttemptId` (reworded if it may have hit the content checker), and stop to ask only if it fails again. A failed attempt is not always refunded, so the retry may be paid again and `maxCostUsd` caps each request on its own: count both against the budget the person approved. Never swap in another route on your own: no image model redrawing a layout or a frame, no `describe_media` in place of the frames it should check, no clip generated only to take its sound, no picture drawn where the guide takes a film frame.

## Source and related guides

- [Original Learn guide](https://flashboards-h01.vercel.app/learn/formats-and-exhibition/ai-talking-avatar/skills/youtube.md)
- Updated from the owner's skill sources of 2026-10-11.

Read: `youtube-checkup`, `youtube-packaging`, `social`, `avatar`, `avatar-podcast`, `avatar-long-speech`, `reels`, `reels-voice`, `character-sheet`. Source experiments and demo materials are historical; use the person's own approved media.
