Reads your recent uploads and drafts alternative titles, a fuller description and tags for each into a Google Doc.

UsesClaudeGoogle DocsYouTube

Draft better titles, descriptions and tags for your videos

ScheduleRun every Monday at 09:00.Run every Monday at 09:00.
ValuesSet channelId to blank.Set channelId to blank.
ValuesSet videosToDraft to 5.Set videosToDraft to 5.
ValuesSet titleOptionsPerVideo to 3.Set titleOptionsPerVideo to 3.
ValuesSet audienceNotes to blank.Set audienceNotes to blank.
YouTubeYouTubeGet the details of channelId. Save it as channel.Get the details of channelId. Save it as channel.
ValuesSet channelName to your channel.Set channelName to your channel.
Decisions & LoopsIf a step below fails, save the error as channelNameErrorIf a step below fails, save the error as channelNameError
Try
TextTrim channel.title and save it as channelName.Trim channel.title and save it as channelName.
On error
ValuesShow in the output: That channel came back without a name; calling it 'your channel'..Show in the output: That channel came back without a name; calling it 'your channel'..
Decisions & LoopsIf channelName is emptyIf channelName is empty
Yes
ValuesChange channelName to your channel.Change channelName to your channel.
No
No steps
ValuesSet uploadsPlaylistId to blank.Set uploadsPlaylistId to blank.
Decisions & LoopsIf a step below fails, save the error as uploadsErrorIf a step below fails, save the error as uploadsError
Try
TextTrim channel.related_playlists.uploads and save it as uploadsPlaylistId.Trim channel.related_playlists.uploads and save it as uploadsPlaylistId.
On error
ValuesShow in the output: That channel did not come back with an uploads playlist..Show in the output: That channel did not come back with an uploads playlist..
Decisions & LoopsIf uploadsPlaylistId is emptyIf uploadsPlaylistId is empty
Yes
Decisions & LoopsStop and report a problem: YouTube did not return an uploads playlist for that channel, so there are no videos to read. Check the value in the 'channelId' step is a channel ID starting with UC, not a channel name, a handle or a video link.Stop and report a problem: YouTube did not return an uploads playlist for that channel, so there are no videos to read. Check the value in the 'channelId' step is a channel ID starting with UC, not a channel name, a handle or a video link.
No
No steps
YouTubeYouTubeList the videos in uploadsPlaylistId. Save it as uploads.List the videos in uploadsPlaylistId. Save it as uploads.
ValuesSet videos to uploads.items.Set videos to uploads.items.
ValuesSet videoCount to 0.Set videoCount to 0.
Decisions & LoopsIf a step below fails, save the error as videoListErrorIf a step below fails, save the error as videoListError
Try
ListsCount the items in videos and save it as videoCount.Count the items in videos and save it as videoCount.
On error
ValuesShow in the output: YouTube did not return a list of videos for that playlist..Show in the output: YouTube did not return a list of videos for that playlist..
Decisions & LoopsIf videoCount is 0If videoCount is 0
Yes
Decisions & LoopsStop and report a problem: That channel's uploads playlist came back with no videos, so there is nothing to draft. No document was created.Stop and report a problem: That channel's uploads playlist came back with no videos, so there is nothing to draft. No document was created.
No
No steps
ValuesSet taskBrief to:Set taskBrief to:You are helping a video creator improve the metadata on one of their own YouTube videos. Work only from the facts about that video given at the end of this message. Reply using exactly these three headings, in this order, and nothing else. TITLES
ValuesSet titleInstruction to Write titleOptionsPerVideo alternative titles, one per line, each under 70 characters. Do not number them.Set titleInstruction to Write titleOptionsPerVideo alternative titles, one per line, each under 70 characters. Do not number them. DESCRIPTION Four to six sentences saying what the video actually covers, written for someone deciding whether to watch it. TAGS One line of 10 to 15 comma-separated tags.
ValuesSet groundingRules to:Set groundingRules to:Rules you must follow: - Use only what the current title and description below actually say. Do not invent facts, names, numbers, products, dates, guests or claims that are not there. - Do not promise anything the video may not contain. - Keep the creator's subject matter. You are rewording what is already there, not pitching something new. - If the current title and description together do not say enough about the video to write honest metadata, reply with exactly NOT ENOUGH INFORMATION and nothing else.
ValuesSet audienceLine to blank.Set audienceLine to blank.
Decisions & LoopsIf audienceNotes isn't blankIf audienceNotes isn't blank
Yes
ValuesChange audienceLine to Change audienceLine to About this channel and who it is for, from the creator: audienceNotes .
No
No steps
MathSet promptPreamble to taskBrief plus titleInstruction plus groundingRules plus audienceLine.Set promptPreamble to taskBrief plus titleInstruction plus groundingRules plus audienceLine.
Dates & TimesGet today's date and save it as runDate.Get today's date and save it as runDate.
ValuesSet docTitle to Video metadata drafts - channelName - runDate.Set docTitle to Video metadata drafts - channelName - runDate.
Google DocsGoogle DocsCreate the document docTitle. Save it as newDoc.Create the document docTitle. Save it as newDoc.
ValuesSet docId to blank.Set docId to blank.
Decisions & LoopsIf a step below fails, save the error as docErrorIf a step below fails, save the error as docError
Try
TextTrim newDoc.document_id and save it as docId.Trim newDoc.document_id and save it as docId.
On error
ValuesShow in the output: Google Docs did not return an id for the new document..Show in the output: Google Docs did not return an id for the new document..
Decisions & LoopsIf docId is emptyIf docId is empty
Yes
Decisions & LoopsStop and report a problem: Google Docs did not return an id for the new document, so there is nowhere to write the drafts. Check the Google Docs connection and run it again.Stop and report a problem: Google Docs did not return an id for the new document, so there is nowhere to write the drafts. Check the Google Docs connection and run it again.
No
No steps
ValuesSet introText to Drafted runDate for channelNameSet introText to Drafted runDate for channelName These are drafts, not changes. Nothing on your YouTube channel has been touched - this workflow can only read your videos, so copy anything you want to keep into YouTube Studio yourself. Every suggestion below was written from that video's own current title and description. Where there was not enough to go on, the video is listed as skipped instead of being given an invented title.
Google DocsGoogle DocsAdd text to docId.Add text to docId.introText
ValuesSet draftedCount to 0.Set draftedCount to 0.
ValuesSet skippedCount to 0.Set skippedCount to 0.
Decisions & LoopsFor each video in videos:For each video in videos:
Decisions & LoopsIf a step below fails, save the error as videoErrorIf a step below fails, save the error as videoError
Try
TextTrim video.video_id and save it as videoId.Trim video.video_id and save it as videoId.
TextTrim video.title and save it as videoTitle.Trim video.title and save it as videoTitle.
Decisions & LoopsIf videoId is empty or videoTitle is emptyIf videoId is empty or videoTitle is empty
Yes
ValuesShow in the output: Skipped a playlist entry with no video id or title..Show in the output: Skipped a playlist entry with no video id or title..
ValuesAdd 1 to skippedCount.Add 1 to skippedCount.
No
YouTubeYouTubeGet the details of videoId. Save it as details.Get the details of videoId. Save it as details.
ValuesSet currentDescription to blank.Set currentDescription to blank.
Decisions & LoopsIf a step below fails, save the error as descriptionErrorIf a step below fails, save the error as descriptionError
Try
TextTrim details.description and save it as currentDescription.Trim details.description and save it as currentDescription.
On error
ValuesShow in the output: That video came back without a description..Show in the output: That video came back without a description..
Decisions & LoopsIf currentDescription is emptyIf currentDescription is empty
Yes
ValuesChange currentDescription to (this video has no description on YouTube).Change currentDescription to (this video has no description on YouTube).
No
No steps
ValuesSet videoFacts to Set videoFacts to The video: Current title: videoTitle Current description: currentDescription .
MathSet prompt to promptPreamble plus videoFacts.Set prompt to promptPreamble plus videoFacts.
ClaudeClaudeAsk Claude: prompt. Save it as draft.Ask Claude: prompt. Save it as draft. Maximum response length: 900
TextTrim draft.response_text and save it as draftText.Trim draft.response_text and save it as draftText.
Decisions & LoopsIf draftText is empty or draftText starts with NOT ENOUGH INFORMATION (ignoring…If draftText is empty or draftText starts with NOT ENOUGH INFORMATION (ignoring…
Yes
ValuesShow in the output: Not enough in the current title and description to draft metadata for: videoTitle.Show in the output: Not enough in the current title and description to draft metadata for: videoTitle.
ValuesAdd 1 to skippedCount.Add 1 to skippedCount.
No
Google DocsGoogle DocsAdd the heading videoTitle to docId.Add the heading videoTitle to docId.
ValuesSet videoBlock to Watch: https://www.youtube.com/watch?v=@videoIdSet videoBlock to Watch: https://www.youtube.com/watch?v=@videoId draftText .
Google DocsGoogle DocsAdd text to docId.Add text to docId.videoBlock
ValuesAdd 1 to draftedCount.Add 1 to draftedCount.
On error
ValuesShow in the output: Could not draft metadata for one video: videoError as text.Show in the output: Could not draft metadata for one video: videoError as text.
ValuesAdd 1 to skippedCount.Add 1 to skippedCount.
ValuesSet summaryText to Set summaryText to Drafted draftedCount of videoCount videos. Skipped skippedCount.
Google DocsGoogle DocsAdd text to docId.Add text to docId.summaryText
Decisions & LoopsIf draftedCount is 0If draftedCount is 0
Yes
ValuesShow in the output: None of the videos read had enough in their current title and description to draft honest metadata from..Show in the output: None of the videos read had enough in their current title and description to draft honest metadata from..
No
No steps