youtube-marketing
YouTube Marketing
Overview
This skill helps AI agents create high-performing YouTube content and integrate with the YouTube Data API. It covers long-form video strategy, Shorts, SEO optimization, thumbnail design, upload automation, analytics, monetization paths, and growth strategies for YouTube's search-and-recommendation algorithm.
Instructions
Algorithm & Discovery
Search (YouTube is the #2 search engine): title/description/tags keyword matching, video transcript indexed, engagement rate (CTR + watch time), fresh content boost.
Recommendations (70%+ of views): click-through rate (thumbnail + title), average view duration, session time, viewer satisfaction (likes, shares, comments), upload consistency.
What kills reach: clickbait without delivery, long intros, inconsistent uploads, misleading thumbnails.
Content Formats
Long-Form (8-20 min): Hook (0-30s) -> Context (30s-1min) -> Main content -> CTA. Specs: 1080p minimum (4K preferred), MP4 H.264, clear audio at -14 to -12 LUFS. Retention techniques: pattern interrupts every 30-60s, open loops, chapters/timestamps, visual variety.
Shorts (under 60s, 9:16 vertical): Hook in first 1 second, single focused idea, loop-friendly endings, use as funnel to long-form. Post 3-5 Shorts/week.
Community Posts (500+ subscribers): Polls, images, video teasers. Post 2-3x/week between uploads.
YouTube SEO
Title: 60-70 chars, primary keyword near start, number + benefit works. Formula: [Primary Keyword] — [Benefit/Hook] ([Modifier]). Example: "Next.js Authentication — Complete Guide (2026)".
Description: First 150 chars appear in search (front-load keywords). Include timestamps/chapters (min 3). 150-300 words total. Links below the fold.
Tags: 5-15 per video, primary keyword first, mix exact match + broader terms.
Thumbnail: 1280x720px, high contrast, expressive face, 3-5 words max bold text, consistent branding, rule of thirds.
Captions: Upload accurate SRT (auto-captions have errors). YouTube indexes caption text for search. Multi-language subtitles expand global reach.
YouTube Data API v3
import { google } from 'googleapis';
const oauth2Client = new google.auth.OAuth2(
process.env.GOOGLE_CLIENT_ID, process.env.GOOGLE_CLIENT_SECRET, process.env.GOOGLE_REDIRECT_URI
);
oauth2Client.setCredentials(tokens);
const youtube = google.youtube({ version: 'v3', auth: oauth2Client });
// Upload video
const res = await youtube.videos.insert({
part: ['snippet', 'status'],
requestBody: {
snippet: {
title: 'Next.js Authentication — Complete Guide (2026)',
description: 'Learn how to implement auth in Next.js...\n\n0:00 Introduction\n1:23 Setup',
tags: ['nextjs', 'authentication', 'tutorial'],
categoryId: '28',
},
status: { privacyStatus: 'private', publishAt: '2026-03-01T15:00:00.000Z', selfDeclaredMadeForKids: false },
},
media: { body: fs.createReadStream('/path/to/video.mp4') },
});
await youtube.thumbnails.set({ videoId: res.data.id, media: { body: fs.createReadStream('/path/to/thumb.jpg') } });
// Upload Short (vertical video + #Shorts in title)
await youtube.videos.insert({
part: ['snippet', 'status'],
requestBody: {
snippet: { title: '3 Git Commands You Didn\'t Know #Shorts', tags: ['shorts', 'git'], categoryId: '28' },
status: { privacyStatus: 'public', selfDeclaredMadeForKids: false },
},
media: { body: fs.createReadStream('/path/to/short-vertical.mp4') },
});
// Create playlist and add video
const playlist = await youtube.playlists.insert({
part: ['snippet', 'status'],
requestBody: { snippet: { title: 'Next.js Complete Course' }, status: { privacyStatus: 'public' } },
});
await youtube.playlistItems.insert({
part: ['snippet'],
requestBody: { snippet: { playlistId: playlist.data.id, resourceId: { kind: 'youtube#video', videoId: 'abc123' } } },
});
Analytics
const youtubeAnalytics = google.youtubeAnalytics({ version: 'v2', auth: oauth2Client });
// Channel stats
const stats = await youtubeAnalytics.reports.query({
ids: 'channel==MINE', startDate: '2026-01-01', endDate: '2026-02-18',
metrics: 'views,estimatedMinutesWatched,averageViewDuration,subscribersGained',
dimensions: 'day', sort: '-day',
});
// Top videos
const top = await youtubeAnalytics.reports.query({
ids: 'channel==MINE', startDate: '2026-01-01', endDate: '2026-02-18',
metrics: 'views,estimatedMinutesWatched,averageViewDuration,likes',
dimensions: 'video', sort: '-views', maxResults: 20,
});
Monetization
YPP requirements: 1,000 subscribers + 4,000 watch hours (12 months) or 10M Shorts views (90 days).
Revenue streams: Ad revenue ($3-8 CPM tech niche), channel memberships, Super Chat/Thanks, YouTube Shopping, Shorts revenue sharing.
Beyond YPP: Sponsorships ($50-200/1K views for tech), affiliate links, own products/courses, consulting.
Growth Strategy
Upload 1-2 long-form/week + 3-5 Shorts/week. Content mix: 50% tutorials, 25% Shorts, 15% trend-jacking, 10% community. First 48 hours: share everywhere, reply to every comment, pin a question comment, post to relevant communities.
Examples
Example 1: Optimize and schedule a tutorial video upload
User prompt: "Upload my Next.js authentication tutorial video to YouTube with proper SEO, a custom thumbnail, and schedule it for Saturday at 3 PM UTC."
The agent will:
- Call
youtube.videos.insertwithprivacyStatus: 'private'andpublishAt: '2026-03-07T15:00:00.000Z' - Set the title to "Next.js Authentication — Complete Guide (2026)" with primary keywords front-loaded
- Write a 200-word description with timestamps, keywords, and resource links below the fold
- Add 10 relevant tags mixing exact-match and broader terms
- Upload the custom thumbnail via
youtube.thumbnails.set
Example 2: Analyze channel performance and identify growth opportunities
User prompt: "Pull my YouTube analytics for the last 30 days and tell me which videos are driving the most subscribers and where my traffic is coming from."
The agent will:
- Query
youtubeAnalytics.reportswithdimensions: 'video'andmetrics: 'subscribersGained,views,averageViewDuration'sorted by subscribers gained - Query traffic sources with
dimensions: 'insightTrafficSourceType'to identify search vs. browse vs. suggested splits - Present the top 5 subscriber-driving videos with their view duration and CTR metrics
- Recommend content strategy adjustments based on which traffic sources are strongest
Guidelines
- Thumbnail + title are 80% of the click decision — spend time on them
- First 30 seconds determine if people stay — hook immediately, no long intros
- Upload as unlisted, set thumbnail, add end screen, then publish (avoid low CTR on default thumbnail)
- Chapters in description improve retention (viewers jump to relevant parts instead of leaving)
- Cards and end screens — always point to your best-performing video or relevant playlist
- Upload SRT captions — auto-captions have errors, YouTube indexes caption text for search
- Consistency beats virality — 1 video/week for 2 years beats random posting
- Shorts and long-form serve different purposes: Shorts for reach, long-form for watch time and monetization
- Study Analytics Audience tab for optimal posting times
- Every video should answer: "Why click THIS video instead of the other 10 on this topic?"