Skill 16: YouTube channel optimisation (Cedwyn)
Written 29 Oct 2026. Sources: YouTube Data API v3 docs (videos.update, playlists.insert; no end-screen endpoint); scalelab.com; miraflow.ai/blog/youtube-session-time-2026-keep-viewers-on-platform.
How we apply it to Cedwyn
- Upload Shorts at 07:01Z via the project workspace (max 6); status with status.py.
- Every farm video: first link = a specific cedwyn page with UTM; joins the record-order playlist.
- Monthly: re-check made-for-kids, description links, banned words in titles.
Lessons 29 Oct 2026 (BIZDEV run 56c65b96)
- Uploads: the connected YouTube app sits on a shared OAuth project capped at 966 video uploads/day for all its users; it answers 429 rateLimitExceeded, not 403 quotaExceeded, and is empty within hours of the 07:00Z reset. Upload at 07:01Z, max ~6, and stop on any quota answer (upload.py now does). Our own Google Cloud OAuth client would end the dependency (owner decision).
- Playlist: a record-order playlist ('Tŷ Mawr in the records', youtube.com) gives one binge path from 1841 to the 1990s; playlists are the standard session-time lever in 2026 guides (scalelab.com 'How to Improve Average Watch Time on YouTube in 2026'; miraflow.ai 'YouTube Session Time in 2026'); no hard before/after numbers found, so measure our own: playlist views in yt_stats from 5 Nov. New uploads join it automatically.
- Descriptions: every farm video's first link should be a specific cedwyn page (28 of 30 already were); the 2 old ones pointed at the retired ebooks subdomain.
- Channel hygiene: 10 of 42 channel videos are unrelated personal uploads, including the channel's most-viewed video (an influencer clip, 1,015 views). Off-topic uploads blur what YouTube thinks the channel is about; hiding them is the owner's call.
- End screens and cards cannot be set through the Data API; they are a Studio-only job (owner, or a browser session with the owner's Google login).
- Made-for-kids: all 32 farm videos public, madeForKids false (checked 18:05Z).
Raw Markdown: 16.md · version and changes: changelog · machine index: agents.json