{"slug":"video-seo-distribution","title":"Video SEO & Distribution — Full SOP","tags":["video-seo","youtube-seo","distribution","schema","podbean","soundcloud"],"agent_summary":"End-to-end video SEO and distribution: YouTube upload optimization, description/chapter formula, VideoObject schema, blog-to-video (Pictory/Visla), SoundCloud audio syndication, and Podbean podcast upload.","trigger_phrases":["video seo","youtube optimization","video distribution","videoobject schema","youtube description formula","video podcast seo","podbean upload","soundcloud video","blog to video"],"runnable":true,"markdown":"\n# Video SEO & Distribution — Full SOP\n\nComplete SOP for creating, uploading, optimizing, and syndicating video and audio for local SEO and YouTube authority.\n\n## YouTube Upload Optimization Checklist\n\n### Title Formula\n\n```\n[Primary Keyword] — [Secondary Keyword] | [Brand/Year]\n```\n\n- 50-60 characters visible in search\n- Lead with primary keyword\n- Year optional for evergreen content\n\n### Description Formula\n\n```\n[Primary keyword + value prop — visible before \"Show More\"] (first 2 lines)\n\n[Timestamps/Chapters]\n00:00 - Intro\n01:30 - [Keyword-rich chapter name]\n04:15 - [Keyword-rich chapter name]\n08:45 - Final Tips\n\n[Full context with natural keyword usage — 300-500 words]\n\n[Links — money page, GMB, website]\n\n[Social proof — reviews, testimonials link]\n```\n\nFirst 150 characters = search snippet target. Include primary keyword in those first 150.\n\n### Tags\n\n- 5-10 tags total (not 50)\n- Primary keyword\n- Long-tail variants\n- Brand name\n- Topic cluster terms\n\n### Upload Steps (Full)\n\n1. Title (formula above)\n2. Description (formula above)\n3. Tags\n4. Thumbnail (custom — hand brief to Picasso)\n5. End screen (subscribe + recent video, hold 2s minimum)\n6. Cards (link to money page at 20% and 75% of video)\n7. Captions: upload accurate .srt (not auto-captions)\n8. Chapters: add timestamps in description with keyword-rich labels\n9. Playlist: add to keyword-titled playlist immediately\n10. Category: select relevant category\n11. Location: add city for local business videos\n\n## VideoObject Schema (Website Embeds)\n\nAdd to any page that embeds a YouTube video:\n\n```json\n{\n  \"@context\": \"https://schema.org\",\n  \"@type\": \"VideoObject\",\n  \"name\": \"[Keyword-Rich Title]\",\n  \"description\": \"[Description with target keywords]\",\n  \"thumbnailUrl\": \"[Thumbnail URL]\",\n  \"uploadDate\": \"2026-05-12T00:00:00Z\",\n  \"duration\": \"PT3M30S\",\n  \"contentUrl\": \"https://www.youtube.com/watch?v=VIDEO_ID\",\n  \"embedUrl\": \"https://www.youtube.com/embed/VIDEO_ID\",\n  \"hasPart\": [\n    {\n      \"@type\": \"Clip\",\n      \"name\": \"Chapter Name\",\n      \"startOffset\": 90,\n      \"endOffset\": 270,\n      \"url\": \"https://www.youtube.com/watch?v=VIDEO_ID&t=90\"\n    }\n  ]\n}\n```\n\n## Blog-to-Video (Pictory AI / Visla)\n\nGMB posts with video get 50% more calls. Convert top PAA blog posts to video first.\n\nPriority content for video conversion:\n1. PAA blog posts (highest engagement)\n2. Service explanation pages\n3. Customer testimonials\n4. Before/after showcases\n\n### Script Template for Blog Conversion\n\n```\n[HOOK — 0:00-0:05]\n\"Are you looking for [service] in [city]?\"\n\n[PROBLEM — 0:05-0:15]\nState the problem your local audience faces.\n\n[SOLUTION — 0:15-0:45]\nYour service/answer with local context.\n\n[PROOF — 0:45-1:00]\nLocal testimonial or statistic.\n\n[CTA — 1:00-1:10]\n\"Call [Business] at [phone] or visit [URL]\"\n```\n\n## SoundCloud Audio Syndication\n\nRe-upload video audio to SoundCloud for additional local SEO signal.\n\nAuth: `D:\\Ecosystem\\secrets\\MASTER_API_KEYS.env`\n- `SOUNDCLOUD_CLIENT_ID`\n- `SOUNDCLOUD_CLIENT_SECRET`\n- `SOUNDCLOUD_REFRESH_TOKEN` — expires hourly, must refresh before each upload\n\n```bash\n# Refresh token first (always)\ncurl -X POST \"https://api.soundcloud.com/oauth2/token\" \\\n  -d \"grant_type=refresh_token&client_id=$SC_CLIENT_ID&client_secret=$SC_CLIENT_SECRET&refresh_token=$SC_REFRESH_TOKEN\"\n\n# Then upload\ncurl -X POST \"https://api.soundcloud.com/tracks\" \\\n  -H \"Authorization: Bearer $NEW_ACCESS_TOKEN\" \\\n  -F \"track[title]=Your Title\" \\\n  -F \"track[asset_data]=@audio.mp3\"\n```\n\n## Podbean Podcast Upload\n\n```bash\ncurl -X POST \"https://api.podbean.com/v1/episodes\" \\\n  -H \"Authorization: Bearer $PODBEAN_ACCESS_TOKEN\" \\\n  -F \"title=Episode Title\" \\\n  -F \"content=Episode description\" \\\n  -F \"media_key=$MEDIA_KEY\" \\\n  -F \"status=publish\"\n```\n\nPodbean auth: `PODBEAN_CLIENT_ID` + `PODBEAN_CLIENT_SECRET` from MASTER_API_KEYS.\n\n## Distribution Checklist — Every Video\n\n- [ ] YouTube upload + all metadata\n- [ ] SoundCloud audio upload (refresh token first)\n- [ ] Podbean podcast episode\n- [ ] GMB video post (if local service)\n- [ ] Social post on all active channels\n- [ ] VideoObject schema on embedding page\n- [ ] Internal link from related blog post to YouTube embed\n\n## KPIs to Track\n\n| Metric | Target | Tool |\n|--------|--------|------|\n| CTR | >5% | YouTube Studio |\n| Average View Duration | >50% | YouTube Studio |\n| Watch Time growth | Month-over-month | YouTube Studio |\n| Podcast downloads | Trending up | Podbean Analytics |\n| GMB views from video | Track weekly | GMB Insights |\n\n## Related Topics\n\n- [[long-form-video-seo-2026]] — deep dive on YouTube ranking factors\n- [[youtube-titles-thumbnails]] — CTR optimization\n- [[video-podcast-local-seo]] — Pictory AI and GMB video SOP detail\n- [[dfy-video-pipeline]] — full agency pricing and delivery framework\n\n#video-sop #video-seo #youtube-seo #distribution #schema #podbean #soundcloud\n","html":"<h1>Video SEO &#x26; Distribution — Full SOP</h1>\n<p>Complete SOP for creating, uploading, optimizing, and syndicating video and audio for local SEO and YouTube authority.</p>\n<h2>YouTube Upload Optimization Checklist</h2>\n<h3>Title Formula</h3>\n<pre><code>[Primary Keyword] — [Secondary Keyword] | [Brand/Year]\n</code></pre>\n<ul>\n<li>50-60 characters visible in search</li>\n<li>Lead with primary keyword</li>\n<li>Year optional for evergreen content</li>\n</ul>\n<h3>Description Formula</h3>\n<pre><code>[Primary keyword + value prop — visible before \"Show More\"] (first 2 lines)\n\n[Timestamps/Chapters]\n00:00 - Intro\n01:30 - [Keyword-rich chapter name]\n04:15 - [Keyword-rich chapter name]\n08:45 - Final Tips\n\n[Full context with natural keyword usage — 300-500 words]\n\n[Links — money page, GMB, website]\n\n[Social proof — reviews, testimonials link]\n</code></pre>\n<p>First 150 characters = search snippet target. Include primary keyword in those first 150.</p>\n<h3>Tags</h3>\n<ul>\n<li>5-10 tags total (not 50)</li>\n<li>Primary keyword</li>\n<li>Long-tail variants</li>\n<li>Brand name</li>\n<li>Topic cluster terms</li>\n</ul>\n<h3>Upload Steps (Full)</h3>\n<ol>\n<li>Title (formula above)</li>\n<li>Description (formula above)</li>\n<li>Tags</li>\n<li>Thumbnail (custom — hand brief to Picasso)</li>\n<li>End screen (subscribe + recent video, hold 2s minimum)</li>\n<li>Cards (link to money page at 20% and 75% of video)</li>\n<li>Captions: upload accurate .srt (not auto-captions)</li>\n<li>Chapters: add timestamps in description with keyword-rich labels</li>\n<li>Playlist: add to keyword-titled playlist immediately</li>\n<li>Category: select relevant category</li>\n<li>Location: add city for local business videos</li>\n</ol>\n<h2>VideoObject Schema (Website Embeds)</h2>\n<p>Add to any page that embeds a YouTube video:</p>\n<pre><code class=\"language-json\">{\n  \"@context\": \"https://schema.org\",\n  \"@type\": \"VideoObject\",\n  \"name\": \"[Keyword-Rich Title]\",\n  \"description\": \"[Description with target keywords]\",\n  \"thumbnailUrl\": \"[Thumbnail URL]\",\n  \"uploadDate\": \"2026-05-12T00:00:00Z\",\n  \"duration\": \"PT3M30S\",\n  \"contentUrl\": \"https://www.youtube.com/watch?v=VIDEO_ID\",\n  \"embedUrl\": \"https://www.youtube.com/embed/VIDEO_ID\",\n  \"hasPart\": [\n    {\n      \"@type\": \"Clip\",\n      \"name\": \"Chapter Name\",\n      \"startOffset\": 90,\n      \"endOffset\": 270,\n      \"url\": \"https://www.youtube.com/watch?v=VIDEO_ID&#x26;t=90\"\n    }\n  ]\n}\n</code></pre>\n<h2>Blog-to-Video (Pictory AI / Visla)</h2>\n<p>GMB posts with video get 50% more calls. Convert top PAA blog posts to video first.</p>\n<p>Priority content for video conversion:</p>\n<ol>\n<li>PAA blog posts (highest engagement)</li>\n<li>Service explanation pages</li>\n<li>Customer testimonials</li>\n<li>Before/after showcases</li>\n</ol>\n<h3>Script Template for Blog Conversion</h3>\n<pre><code>[HOOK — 0:00-0:05]\n\"Are you looking for [service] in [city]?\"\n\n[PROBLEM — 0:05-0:15]\nState the problem your local audience faces.\n\n[SOLUTION — 0:15-0:45]\nYour service/answer with local context.\n\n[PROOF — 0:45-1:00]\nLocal testimonial or statistic.\n\n[CTA — 1:00-1:10]\n\"Call [Business] at [phone] or visit [URL]\"\n</code></pre>\n<h2>SoundCloud Audio Syndication</h2>\n<p>Re-upload video audio to SoundCloud for additional local SEO signal.</p>\n<p>Auth: <code>D:\\Ecosystem\\secrets\\MASTER_API_KEYS.env</code></p>\n<ul>\n<li><code>SOUNDCLOUD_CLIENT_ID</code></li>\n<li><code>SOUNDCLOUD_CLIENT_SECRET</code></li>\n<li><code>SOUNDCLOUD_REFRESH_TOKEN</code> — expires hourly, must refresh before each upload</li>\n</ul>\n<pre><code class=\"language-bash\"># Refresh token first (always)\ncurl -X POST \"https://api.soundcloud.com/oauth2/token\" \\\n  -d \"grant_type=refresh_token&#x26;client_id=$SC_CLIENT_ID&#x26;client_secret=$SC_CLIENT_SECRET&#x26;refresh_token=$SC_REFRESH_TOKEN\"\n\n# Then upload\ncurl -X POST \"https://api.soundcloud.com/tracks\" \\\n  -H \"Authorization: Bearer $NEW_ACCESS_TOKEN\" \\\n  -F \"track[title]=Your Title\" \\\n  -F \"track[asset_data]=@audio.mp3\"\n</code></pre>\n<h2>Podbean Podcast Upload</h2>\n<pre><code class=\"language-bash\">curl -X POST \"https://api.podbean.com/v1/episodes\" \\\n  -H \"Authorization: Bearer $PODBEAN_ACCESS_TOKEN\" \\\n  -F \"title=Episode Title\" \\\n  -F \"content=Episode description\" \\\n  -F \"media_key=$MEDIA_KEY\" \\\n  -F \"status=publish\"\n</code></pre>\n<p>Podbean auth: <code>PODBEAN_CLIENT_ID</code> + <code>PODBEAN_CLIENT_SECRET</code> from MASTER_API_KEYS.</p>\n<h2>Distribution Checklist — Every Video</h2>\n<ul>\n<li>[ ] YouTube upload + all metadata</li>\n<li>[ ] SoundCloud audio upload (refresh token first)</li>\n<li>[ ] Podbean podcast episode</li>\n<li>[ ] GMB video post (if local service)</li>\n<li>[ ] Social post on all active channels</li>\n<li>[ ] VideoObject schema on embedding page</li>\n<li>[ ] Internal link from related blog post to YouTube embed</li>\n</ul>\n<h2>KPIs to Track</h2>\n<p>| Metric | Target | Tool |\n|--------|--------|------|\n| CTR | >5% | YouTube Studio |\n| Average View Duration | >50% | YouTube Studio |\n| Watch Time growth | Month-over-month | YouTube Studio |\n| Podcast downloads | Trending up | Podbean Analytics |\n| GMB views from video | Track weekly | GMB Insights |</p>\n<h2>Related Topics</h2>\n<ul>\n<li>[[long-form-video-seo-2026]] — deep dive on YouTube ranking factors</li>\n<li>[[youtube-titles-thumbnails]] — CTR optimization</li>\n<li>[[video-podcast-local-seo]] — Pictory AI and GMB video SOP detail</li>\n<li>[[dfy-video-pipeline]] — full agency pricing and delivery framework</li>\n</ul>\n<p>#video-sop #video-seo #youtube-seo #distribution #schema #podbean #soundcloud</p>\n"}