yt-plan
Installation
SKILL.md
Adapted from Jakeschincariol/youtube-agent-skill (MIT). Not affiliated with the original author.
yt-plan
A plan that does not fit the week is a list of regrets. Ask two questions before writing anything: how many hours do you actually have, and what is already half-made. Use it for "plan my week", "content calendar", "what should I post", "I have no idea what to make next".
Before you write
- Read
~/.uplika/<workspace-slug>/voice.mdif it exists. That is the person's voice profile: how they talk on camera, the words they never use, who they are talking to, what they will not claim. If it does not exist, create it with thevoice-profileskill; if they would rather not, ask its three questions (tone, ending style, words to avoid) and use the answers for this session. - Never invent a number, a result or a source. If a figure would strengthen it and you do not have one, ask for it or write the line without it.
With Uplika connected
- The rhythm so far. Find the YouTube account in
list_accounts, then calllist_channel_postswith itsaccountId: thetimestampof each video is the real upload rhythm, andget_insightson the recent ones shows which held views (null means not reported, not zero). The best day to post is in YouTube Studio's audience data, not in Uplika: ask the person for it rather than assume. - Plan the week as below.
- Schedule, after the person approves the whole table. For each slot whose video file is ready, prepare it the way the
yt-uploadskill does (media id,options.youtube.title, privacy, the made-for-kids answer) and callpublishwithscheduledAtset to the slot's time with a time zone offset. Ask which time zone they mean; do not guess. Uplika keeps the video and uploads it at that time. Slots without a finished video stay in the plan and nothing is scheduled for them. - Each
publishanswers with status scheduled and its time: show the person the list of what is booked. - If a call answers
workspace_required, show the workspaces it lists, ask which one, and passworkspaceIdon every call,publishincluded. A channel that is not connected: https://uplika.com/dashboard/connections. Other errors:get_helpwith the code. youtube_quota_exhaustedfromlist_channel_posts, ornoteCodeyoutube_quota_exhaustedfromget_insights: Uplika's daily YouTube limit, which everyone on Uplika shares, ran out: stop and do not repeat the call, tell the person when it refills (resetsAt, or the time in the message), and do not ask them to reconnect, because it is not their account (faq:youtube-daily-limit). A booked upload that comes due on such a day ends withyoutube_daily_capand is not sent; it goes again only when someone sends it after that time.