Skip to main content

youtube-packaging

Use when writing or fixing the text that ships with a YouTube upload — title, description, tags, hashtags and chapters — when click-through is weak and the words are the suspect, or when closing the loop on what last performed. NOT designing the thumbnail image (that is `youtube-thumbnails`), NOT inventing the idea or angle (that is `youtube-ideation`), NOT the channel growth plan (that is `youtube-strategy`), NOT pushing the fields via the Data API (that is `youtube-api`).

Aller à l'installation

Informations de source

Dépôt
ericrisco/rsc-harness
Dernière activité de la source
29 juillet 2026 à 23:40
Langue détectée de SKILL.md
anglais
Étoiles
110
Forks
9

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Explorateur de fichiers
5 fichiers

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
youtube-packaging
description
Use when writing or fixing the text that ships with a YouTube upload — title, description, tags, hashtags and chapters — when click-through is weak and the words are the suspect, or when closing the loop on what last performed. NOT designing the thumbnail image (that is `youtube-thumbnails`), NOT inventing the idea or angle (that is `youtube-ideation`), NOT the channel growth plan (that is `youtube-strategy`), NOT pushing the fields via the Data API (that is `youtube-api`).
tags
["youtube","video-seo","titles","descriptions","chapters"]
recommends
["youtube-thumbnails","youtube-ideation","youtube-strategy","youtube-api","video-shorts","seo-geo","social-publisher"]
profiles
[]
origin
risco
# YouTube packaging You write the text that ships with the upload — title, description, tags, hashtags, chapters — and you optimize it against what actually performed, not against a hunch. A strong video dies on a weak package. You are not the picture, not the idea, not the channel plan, and not the API that uploads any of it. ## What you produce Five concrete text artifacts plus one feedback entry, every time: 1. **A title SET** — 2-3 titles, never one. (Why: YouTube tests titles, so you ship a hypothesis to measure, not a guess to defend.) 2. **A description block** — above-the-fold line + body + links + hashtag line. 3. **A tag list** — 5-8 tags, first = exact target phrase. 4. **A hashtag line** — 3-5 hashtags inside the description. 5. **A chapter list** — timestamps that obey four exact rules. 6. **A feedback-log update** in `02-DOCS` — what you tried, what won, the numbers. **Co-ownership note, up front:** YouTube tests the title+thumbnail pair as ONE unit. The *title hypothesis to test* is co-owned with [youtube-thumbnails](../youtube-thumbnails/SKILL.md); the **wordsmithing of the title and all other metadata lives here**. Draw the image there, write the words here. ## Ground first (STOP gate) Before you write a single title, read the channel. Skipping this is how you produce generic copy in someone else's voice. - Read `02-DOCS/wiki/youtube/` for the channel's **brand voice**, prior packages, and the **performance feedback log** (winners and losers from past tests). - Pull the decided **idea/angle** from [youtube-ideation](../youtube-ideation/SKILL.md) output if it exists. - **No decided topic/angle yet? Route OUT to `youtube-ideation`. Never invent the topic here.** (Why: packaging a video with no settled angle is guessing at the hook, the keyword, and the audience all at once.) Persist what you write under `02-DOCS/wiki/youtube/` (the package) and raw test results under `02-DOCS/raw/youtube/`. `02-DOCS/wiki/` is an **OKF v0.1** bundle: every package or log file persisted there carries YAML frontmatter with a non-empty `type` (`youtube-package`) plus the OKF surface (`title`, `description`, `tags`, `timestamp`) shared with the strategy/thumbnail/api siblings, and all cross-references use standard markdown links — never `[[wikilinks]]`. The OKF frontmatter shape for the persisted package and log is in [references/description-and-chapters.md](references/description-and-chapters.md). ## The title The single highest-leverage field. Rules, each with one reason: - **Hard limit 100 chars; visible budget ~60.** Titles truncate around 60-70 chars on desktop and ~50-60 on mobile. The most compelling words + the primary keyword must land in the first ~60 chars / first 5 words — everything after that may never be seen. - **Front-load the keyword and the hook.** Shape: Hook + Keyword + Benefit inside the first 60 chars. Channels report 15-25% higher CTR for titles kept in the 60-70 char range. - **Use numbers and specificity.** Titles with numbers report ~20-30% higher CTR; a parenthetical qualifier (year, difficulty, format) adds precision without burning the budget. - **Emit a SET of 2-3 titles framed as an A/B hypothesis** — never ship one. Test & Compare auto-applies the variant with the highest *watched time per impression*, **not raw CTR**. (Why this matters: a clickbait title that wins the click but loses the viewer will LOSE the test. Write for the click AND the stay.) Bad -> Good (front-load, cut the filler, add specificity): ```text Bad In this video I'll show you how to learn Python Good Learn Python in 2026: 12-Minute Beginner Tutorial Bad My honest thoughts after using the new framework for a while Good I Shipped 3 Apps on This Framework — Here's the Verdict Bad Tips for better sleep that actually work I promise Good 7 Sleep Fixes That Doubled My Deep Sleep (No Pills) ``` Decide the title shape by how the video will be found — this is a real branch: | Discovery mode | Title shape | Example | |---|---|---| | Search-led (tutorial, how-to, "best X") | Keyword first, literal, benefit-clear | `Fix Slow Next.js Builds: 5 Proven Steps` | | Browse-led (commentary, vlog, story) | Curiosity/stakes first, keyword secondary | `I Rebuilt My App and Regretted Everything` | Search-led titles answer a query; browse-led titles win a scroll. Most videos lean one way — pick it deliberately, then write the set inside that shape. ## The description Only the first ~125 chars are above the fold — the rest hides behind "Show more" and is unseen by most viewers. - **First 1-2 lines (~100-150 chars): primary keyword + who-it's-for.** This is the one part that shows in search and the watch page before the fold. Spend it on substance, not "Welcome to my channel." - **Body: ~200-350 words of natural, keyword-rich prose. No stuffing.** Write for a human; weave the keyword and 1-2 variants in naturally. Keyword lists read as spam and help nothing. - **Links block** (resources, socials, gear) then the **3-5 hashtag line**. - **One clear CTA** (subscribe / next video / comment prompt). The full template + a fully filled example live in [references/description-and-chapters.md](references/description-and-chapters.md). ## Chapters Chapters obey **four exact rules. Break any one and YouTube ignores ALL chapters.** Run this checklist on every chapter block: - [ ] **At least 3 timestamps.** - [ ] **The first timestamp is `00:00`.** (This is the silent killer — omit `0:00` and every later timestamp is discarded.) - [ ] **Each chapter is at least 10 seconds long.** - [ ] **Timestamps are in ascending order.** Compliant block: ```text 00:00 Intro — what you'll build 00:42 Installing the tools 03:15 Writing your first function 07:50 Debugging the common error 11:20 Recap & next steps ``` Why bother: chapters lift watch time and give search a jump-to target. The four failure cases worked through line by line are in [references/description-and-chapters.md](references/description-and-chapters.md). ## Tags & hashtags Different fields, different rules — and one of them barely matters: | Field | Count | Placement | Weight | |---|---|---|---| | Tags | 5-8 (up to 10-20), ~500-char budget | the Tags input box | **minimal ranking impact**; first tag weighted slightly more | | Hashtags | 3-5 relevant; **max 15** | inside the description | first 3 render above the title; **>15 = ALL stripped** | - **Tags: make the first tag the exact target phrase; do not over-invest.** YouTube calls tags' discovery role "minimal" — they mainly fix misspellings and disambiguate. Spend 2 minutes here, not 20. - **Hashtags: pick 3-5 relevant ones; never exceed 15.** Only the first three show above the title, so order them best-first. Exceed 15 and YouTube strips every hashtag — you get zero, not 15. ## The learning loop This is what makes the skill *learn* instead of guess. Because Test & Compare measures variant performance directly, every package is logged and graded. **Read before you write.** Open the feedback log in `02-DOCS/wiki/youtube/` and carry forward what won as priors: if numeric titles beat curiosity titles 3 tests running on this channel, the new set leans numeric. If a hashtag set tanked, drop it. **Append after you test.** One row per test, into `02-DOCS/wiki/youtube/packaging-log.md` (OKF v0.1: file-level `type: youtube-package` frontmatter at the top, the table below it, newest rows appended, past rows immutable): ```text | date | video | title set tried | winner | CTR | impressions | avg view duration | note | ``` The cycle: read winners/losers -> write the new package as informed priors -> ship the A/B set -> when Test & Compare resolves (~2 weeks), append the result -> the next package is a little less of a guess. The full schema with a filled row is in [references/description-and-chapters.md](references/description-and-chapters.md). **Grade by watched-time-per-impression, not raw CTR.** A title can win clicks and still lose the test by losing viewers. Log both so the lesson is honest. ## Handoffs Stay inside the text fields. Everything else routes out: | Ask | Owner | |---|---| | Design/generate the thumbnail image | [youtube-thumbnails](../youtube-thumbnails/SKILL.md) | | Come up with the idea / topic / angle | [youtube-ideation](../youtube-ideation/SKILL.md) | | Channel growth plan, niche, cadence | [youtube-strategy](../youtube-strategy/SKILL.md) | | Upload/update metadata via the Data API | [youtube-api](../youtube-api/SKILL.md) | | Cross-platform short caption/hook (TikTok/Reels) | [video-shorts](../video-shorts/SKILL.md) | | Keyword research for web/AI search (not YouTube) | [seo-geo](../seo-geo/SKILL.md) | | Schedule/publish the post to socials | [social-publisher](../social-publisher/SKILL.md) | The tell: if the ask is **the text fields of the YouTube upload**, it is here. The picture, the idea, the channel plan, the API call — each is a sibling. ## Anti-patterns | Anti-pattern | Why it fails | Do instead | |---|---|---| | "In this video I'll show you…" opener | Burns the visible ~60-char budget on filler | Front-load keyword + hook in the first 5 words | | Shipping ONE title | No hypothesis, nothing to learn | Always a SET of 2-3 for Test & Compare | | Keyword-stuffing the description | Reads as spam, helps nothing | ~200-350 words of natural prose, keyword woven in | | Clickbait the video can't cash | Wins the click, loses the viewer, LOSES the A/B | Promise what the video delivers | | Chapters with no `00:00` / <3 / <10s / out of order | YouTube silently ignores ALL chapters | Run the four-rule checklist | | >15 hashtags | YouTube strips every one — you get zero | 3-5 relevant, best three first | | Obsessing over tags | They have minimal ranking impact | 5-8, first = target phrase, move on | | Ignoring the feedback log | Every package stays a fresh guess | Read prior winners, carry them as priors | | Optimizing CTR while view duration tanks | Test & Compare scores watched-time-per-impression | Log both; write for click AND stay | ## Verify Run [scripts/verify.sh](scripts/verify.sh) on an emitted package file (the title set, description, tags, hashtags, and chapters as one structured block). It is read-only and lints the mechanical constraints: ≥2 titles, each ≤100 chars; above-the-fold first line present and not over-long; ≥3 chapters with first `0:00`, ascending, ≥10s gaps; 1-15 hashtags; tags within the ~500-char budget. A clean or empty file exits 0. ## See also - [youtube-thumbnails](../youtube-thumbnails/SKILL.md) — the image the title sits on; the pair is tested together. - [youtube-ideation](../youtube-ideation/SKILL.md) — the idea/angle you package here. - [youtube-strategy](../youtube-strategy/SKILL.md) — channel positioning, niche, cadence. - [youtube-api](../youtube-api/SKILL.md) — programmatic upload/update of these fields.
Voir sur GitHub