Skip to content
Automation
Skill

/youtube-studio-setup

Stage 1 of the Ben AI publishing chain. Takes a freshly uploaded video from Studio draft to a saved Unlisted video: puts the title and both thumbnails in place, arms the title-and-thumbnail A/B test, then walks the whole Studio wizard (monetization on with mid-rolls, ad

From plugin
benai-skills
77152 skills17 agents1 hook4 MCP

Claude Code

$ npx -y skills add naveedharri/benai-skills --skill youtube-studio-setup --agent claude-code

SKILL.md

youtube-studio-setup.SKILL.md
name: youtube-studio-setup
description: "Stage 1 of the Ben AI publishing chain. Takes a freshly uploaded video from Studio draft to a saved Unlisted video: puts the title and both thumbnails in place, arms the title-and-thumbnail A/B test, then walks the whole Studio wizard (monetization on with mid-rolls, ad suitability rated, end screen set, checks read, visibility Unlisted). Runs FIRST, before chapters, because a draft has no caption track and Unlisted is the only state where YouTube generates one. Use when someone says \"set up the video in Studio\", \"walk the publishing steps\", \"do the wizard\", \"get it to unlisted\", \"arm the A/B test\", \"set the end screen\", \"rate the ad suitability\", or has just uploaded a video and wants it ready for the rest of the chain."
disable-model-invocation: true

YouTube Studio Setup

Stage 1. Ends with the video saved at **Unlisted**, which is what unlocks everything downstream.

Owns Studio only. Does not touch links, chapters, tags, or the description.

Why this runs first

Found on 2026-08-25. A video sitting as a Studio draft has no caption track, so there is no transcript, so `youtube-chapters-tags` has nothing to read. YouTube generates captions only after the video is saved at a real visibility and its checks finish.

The old chain put chapters first and deadlocked on this. Walk the wizard first.

Before you start

  • The video must already be uploaded. If it is not, say so and stop; uploading is a person's

job and takes two or three minutes.

  • Confirm the video is Ben's: the watch-page fetch returns `author` and `channelId`, which

must be `Ben AI` and `UC3KK7ENB_ierAXvrxVNnbZQ`. Refuse a video that reports public with a view count, because that is not a pre-publish draft.

  • Load the browser tools per `references/studio-chrome.md`. Studio list pages do not render

in the sandbox and YouTube is IP-blocked from it, so all of this runs in Chrome.

Steps

Task Progress:
- [ ] 1. Title and thumbnails in place
- [ ] 2. A/B test armed (up to three variants)
- [ ] 3. Playlist set, Made for kids = No
- [ ] 4. Monetization on, mid-rolls on
- [ ] 5. Ad suitability rated          ← HUMAN CHECKPOINT, permanent
- [ ] 6. End screen set, title read back, duration shortened to the last few seconds
- [ ] 7. Checks read
- [ ] 8. Visibility Unlisted, saved
- [ ] 9. Video ID written to the Notion card

1. Title and thumbnails

Read the chosen titles and thumbnails off the Ship Brief. **The test takes up to three variants**, and the team uses all three; the cards carry three for that reason.

If the thumbnails are not ready yet, put the title in and move on. Stage 2 derives the UTM code from the title, so it is blocked without one, while the A/B test can be armed later.

If the operator has already uploaded them by hand, do not re-upload. Read back what is actually in Studio and confirm it matches the Brief.

Thumbnail upload into the A/B test is unverified against Studio's hidden file input. A JS fetch-and-drop fallback is written into `references/studio-chrome.md`. If the upload will not land, say so and hand that one step to the operator rather than retrying blindly.

2. Arm the A/B test

Every title and thumbnail pair shown in place, in the order the Brief specified, then **Set test**.

3 to 8. The wizard

Read `references/studio-wizard.md` and follow it tab by tab. It carries the exact outcome for each tab, the irreversible stop, and the two failures that showed up on the 2026-08-25 run: the end-screen import landing on the wrong video, and Visibility refusing to save while YouTube's checks are still running.

`read_page` after every Next. The tabs render lazily and clicking blind lands on the wrong control.

9. Write the Video ID to the card

The eleven-character ID, on the Notion card's `Video ID` property. Everything downstream reads it from there. See `youtube-ship/references/notion-card.md`.

The one human checkpoint here

**Before "Submit rating".** The ad-suitability rating is permanent; YouTube will not let it be changed afterwards. Show the title, that every category is unrated, and that "None of the above" is checked. Wait for an explicit go.

Ben's standing answer for a normal tutorial is None of the above. If any category genuinely applies, do not submit. Hand it back, because a wrong permanent rating costs more than a delayed publish.

Hard rules

  • **Visibility ends at Unlisted.** Never Public, never Premiere, never Schedule. Ignore the

"Peak time" Apply button; it schedules the video.

  • **Never select Private as a workaround** when Unlisted refuses to save. Private videos have

no caption track either, so it does not unblock chapters.

  • **Never read an ID off a screenshot.** Read it out of the page.
  • **Shorten the end screen after importing.** "Import from video" copies the source video's

timing and runs far too long. It must sit in the last few seconds only.

  • **No terminal.** Everything here is browser work. Never hand the operator a shell command.

What to do while checks run

Do not poll. Go run `benai-utm-creator` and `youtube-link-setup`, which need only the video's exact title. Come back and set Unlisted when the checks clear.

Read more
@naveedharri
Ships withbenai-skills

Expert automation skills for Claude Code, organized by department.

77152 skills17 agents4 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
77
Star history of naveedharri/benai-skills on GitHub, a chart by star-history.com

Other skills on benai-skills.

ads-audit

ads-audit

Full multi-platform paid advertising audit with parallel subagent delegation. Analyzes Google Ads, Meta Ads, LinkedIn Ads, TikTok…

ads-budget

ads-budget

Budget allocation and bidding strategy review across all ad platforms. Evaluates spend distribution, bidding strategy…

ads-competitor

ads-competitor

Competitor ad intelligence analysis across Google, Meta, LinkedIn, TikTok, and Microsoft. Analyzes competitor ad copy, creative…

ads-creative

ads-creative

Cross-platform creative quality audit covering ad copy, video, image, and format diversity across all platforms. Detects creative…

ads-google

ads-google

Google Ads deep analysis covering Search, Performance Max, Display, YouTube, and Demand Gen campaigns. Evaluates 74 checks across…

ads-landing

ads-landing

Landing page quality assessment for paid advertising campaigns. Evaluates message match, page speed, mobile experience, trust…

More skills from other plugins.

agent-builder

agent-builder

Load immediately after an Agent intent, before the first agent_builder_* call. Governs how you create, configure, test, and…

n8n11d209k
@n8n-io@n8n-ioInstall Skill
browser-use

browser-use

Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…

@browser-use@browser-useInstall Skill
agent-browser

agent-browser

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling…

@vercel-labs-2@vercel-labs-2Install Skill
add-anydoc

add-anydoc

Add local office-document-to-Markdown conversion to NanoClaw agent containers with the pinned Firecrawl AnyDoc CLI. Use when…

@nanocoai@nanocoaiInstall Skill

Questions about youtube-studio-setup.

Which coding agents can use youtube-studio-setup?
youtube-studio-setup installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.