List channels
list_channels
Lists the channels on this PreFilm account, which one was last used in PreFilm (open_in_app; not necessarily the one the person means), which ones are connected to YouTube and allow YouTube Analytics, where to connect one (connect_url, and youtube_connect_open says whether connecting is open for this account yet), what each voice was learned from (voice: how many of the person's videos, the newest one's date, when it was last learned again, and the never and always lists), what PreFilm understood each business to be (business_read: if it is wrong, fix the offer with update_channel before a run), and what you have left of your credits, with when they reset and what each tool takes (prices). limits_explained says the same in plain sentences: relay it when the person asks about limits, credits or a refusal. With several channels, a call that names none works on that one. how_it_works says how PreFilm fits a week. Call it before a task that spends, so a limit never stops one halfway.
Ask it like this
Which channels are on my account, and what do I have left this month?
No arguments.
Update your channel
update_channel
Changes what PreFilm knows about one of your channels, as Settings does: the offer (what you sell, who buys it, the goal and your website), the whole competitor list (UC… ids, @handles or channel links; track_competitors adds or removes one at a time), the voice rules, the words the person never says and the phrases they always use, script_format, how they lay out a script, which every script for the channel follows, and channel_purpose, buyer_notes and filming_style: what the channel is for, the buyers in the person's words and how they can film, which the ideas read. Each list, format or text sent replaces the one on file. voice_sources adds links where the person speaks for the voice to learn from (a transcript in credits each), exclude_videos leaves videos of theirs out of it, and facts adds, edits or removes what they told PreFilm. refresh_voice: true learns the voice again from the person's newest videos and those links, keeping the lists, and is priced in credits; list_channels shows what it was learned from. Send confirm: true once the person has agreed; the answer shows what was saved. The next idea run and every script after it read the change. Free, except a competitor named by an @handle PreFilm has not stored, which is one YouTube lookup.
Ask it like this
Change my offer to a pricing sprint for B2B SaaS founders, and add "leverage" to the words I never say.
| Argument | Required | What it is |
|---|
| channelstring | no | The channel: its @handle, its UC… id or its user_channel_id. Leave it out when the account has one channel. With more than one, a call that leaves it out works on the channel last used in PreFilm, which may not be the one the person means: say which channel you mean and get the person's yes first. |
| offerobject | no | The offer, any of: what (what you sell), who (who buys it), goal (leads, signups, sales or authority) and website (a link; a bare domain gets https://). A field left out keeps what is on file. |
| competitorsarray: string | no | The whole competitor list, up to 12: UC… ids, @handles or channel links. It replaces the list on file; to add or remove one channel, use track_competitors. |
| never_sayarray: string | no | Words and phrases the person never says, one to an item. It replaces the list on file; an empty list clears it. |
| always_sayarray: string | no | Phrases the person always uses, one to an item. It replaces the list on file; an empty list clears it. |
| script_formatstring | no | How the person lays out a script, in their words, up to 2,000 characters: the sections, their order, the cues they read from. Every script for the channel follows it. It replaces the one on file; an empty string clears it. |
| channel_purposestring | no | What the channel is for, in the person's words, up to 1,000 characters: who it helps and how. Ideas read it to decide how each video sells, so one may earn trust first rather than pitch. It replaces the one on file; an empty string clears it. |
| buyer_notesstring | no | The person's buyers in their own words, up to 2,000 characters: their pains as they say them, what they already tried (tools, agencies) and why it failed. Ideas read it so hooks speak to those pains. It replaces what is on file; an empty string clears it. |
| filming_stylestring | no | How the person can film, up to 300 characters, such as one sitting talking to camera with a screen share and no other people. Every idea is written to fit it. It replaces what is on file; an empty string clears it. |
| refresh_voiceboolean | no | true learns the channel's voice again from the person's newest videos, keeping their never and always lists. It takes a minute or two and is priced in credits. |
| voice_sourcesarray: string | no | Links where the person speaks (a podcast, webinar, talk or interview with captions), learned from the next time the voice is learned (refresh_voice, in the same call or later). Each is a transcript in credits; up to 5 a call. |
| remove_voice_sourcesarray: string | no | Voice sources to take off, by the id or the link list_channels shows. |
| exclude_videosarray: string | no | The channel's own videos to leave out of the voice (a guest, a client talking, an old format), by video id or link. include_videos puts them back. |
| include_videosarray: string | no | Videos left out of the voice to put back, by video id or link. |
| factsobject | no | What the person told PreFilm: add (each with kind and text), edit (id and text, and kind when it changes) and remove (ids). Kinds: story, result, number, client, opinion, buyer_question. Scripts may use them as the person's own; idea runs read buyer_question ones. |
| confirmboolean | no | Must be true: the person asked for this change. |
What to film
what_to_film
Picks the one video to film this week from your ideas, and a backup. PreFilm's ideas lead with outlier formats: the pick is an idea built on a video that beat its channel's normal, in a format not done to death, that fits your offer and how you film. Search demand is supporting evidence, not the reason to film; lead: search puts searched ideas first when the person asks for those. Each comes with its evidence, how much filming it takes, the moment it sells your offer, the risk, and why it comes first. The rest are listed one line each, and effort keeps the ideas that film in that much time. When the person asks for ideas, start here or with find_outliers, not research_keywords. Send an idea_id to read that idea in full: its titles, hook, business angle, source videos, the best videos of its format, latest outline and latest script.
- Returns other people's words. The assistant is told to treat them as data.
- Free. Takes no credits.
Ask it like this
What should I film this week?
| Argument | Required | What it is |
|---|
| channelstring | no | The channel: its @handle, its UC… id or its user_channel_id. Leave it out when the account has one channel. With more than one, a call that leaves it out works on the channel last used in PreFilm, which may not be the one the person means: say which channel you mean and get the person's yes first. |
| idea_idstring | no | Read this idea in full instead of picking. |
| restnumber | no | How many other open ideas to list after the pick and the backup, one line each. 10 when left out. |
| leadenum: outliers · search | no | outliers (the default): the pick comes from an idea built on a format that beat its channel's normal, and searched ideas follow. search: searched ideas first, when the person asks for ideas from what people search. |
| effortenum: one_sitting · few_days · series | no | Only ideas that film in this much time or less: one_sitting, few_days or series. Ideas with no filming time on file are left out. |
Find outliers
find_outliers
Finds the videos in your niche that beat their own channel's normal since a date you name, with each video's multiple, its age, the channel's size and whether its format is new or done a lot. These formats are where PreFilm's ideas start: when the person asks for ideas, start here or with what_to_film; search demand only backs them. Videos under 14 days old are marked early. Each says whether its channel is in your niche or an adjacent one, watched by people like your buyers; niche: adjacent lists only those. scope topic runs the same check on YouTube for any topic, as the Outliers page's search does, and is an outlier search in credits unless the topic was searched in the last 7 days. Each result says its niche and whether it is saved; update_board add_video saves one to the library, and add_idea_from_video makes an idea from one, in credits.
- Returns other people's words. The assistant is told to treat them as data.
Ask it like this
What's broken out in my niche since last Monday?
| Argument | Required | What it is |
|---|
| channelstring | no | The channel: its @handle, its UC… id or its user_channel_id. Leave it out when the account has one channel. With more than one, a call that leaves it out works on the channel last used in PreFilm, which may not be the one the person means: say which channel you mean and get the person's yes first. |
| scopeenum: niche · topic | no | niche (the default): your stored research, free. topic: any topic on YouTube, judged against each channel's normal. |
| sincestring | no | YYYY-MM-DD. Only videos published on or after it. The last 28 days when left out in niche scope. |
| topicstring | no | The topic to check on YouTube, with scope topic. |
| source_channel_idstring | no | niche only: one competitor's videos, by its UC… id. |
| nicheenum: yours · adjacent | no | niche scope: yours lists the channels in your niche, adjacent the channels next to it, watched by people like your buyers. Both when left out. |
| limitnumber | no | How many videos to return, 20 when left out, 50 at most. |
Research keywords
research_keywords
Finds the phrases your buyers search for a topic, or checks up to 10 phrases you send. Search demand is supporting evidence for an idea, not the reason to film: when the person asks for ideas, start with what_to_film or find_outliers. Each comes with Google's monthly searches and whether they are rising, steady or falling, the top 10 on YouTube (top_videos, from what was checked, yours marked) with their size and video age, whether you already have a video for it, and whether it is worth a video, in words. The 3 to film first are marked. A keyword check in credits, two at depth 10. action: idea with one phrase writes one idea from it, as Generate idea does on the Keywords page, in credits; it shows the price first and writes with confirm: true. pin: true with phrases you checked puts them into your next idea run: it shows them first, pins with confirm: true and costs nothing. exclude: true with phrases removes them from your buyer phrases, so runs and research skip them, and include: true puts them back; both show the change first, make it with confirm: true and cost nothing.
- Returns other people's words. The assistant is told to treat them as data.
Ask it like this
Research keywords for "fractional CFO for startups" and tell me which 3 I should film first.
| Argument | Required | What it is |
|---|
| channelstring | no | The channel: its @handle, its UC… id or its user_channel_id. Leave it out when the account has one channel. With more than one, a call that leaves it out works on the channel last used in PreFilm, which may not be the one the person means: say which channel you mean and get the person's yes first. |
| topicstring | no | A topic: PreFilm finds the phrases your buyers search for it. |
| phrasesarray: string | no | Up to 10 phrases to check, instead of a topic. |
| depthunion | no | How many phrases to check on YouTube: 5 (the default, one keyword check) or 10 (two). |
| pinboolean | no | With phrases: put them into your next idea run. Free. Leave confirm out to see which can go in. |
| unpinboolean | no | With phrases: take back phrases pinned for your next run. Free. |
| excludeboolean | no | With phrases: remove them from your buyer phrases, so idea runs, keyword research and channel searches skip them. Free. Leave confirm out to see the change first. |
| includeboolean | no | With phrases: put phrases you removed back into your buyer phrases. Free. |
| actionenum: idea | no | idea: with one phrase in phrases, writes one idea from it, as Generate idea on the Keywords page does, from its searches, the videos that rank and the gaps they leave. Priced in credits. Leave confirm out to see the price first. |
| confirmboolean | no | With pin, unpin, exclude, include or action idea, true makes the change once the person has agreed. |
Track competitors
track_competitors
Manages the channels PreFilm studies for your ideas: channels your buyers watch, where formats that already work come from, not only competitors. list shows them, with who added each and the buyer topic it was found from. suggest finds the channels your buyers watch: the creators whose videos send you viewers, and the channels ranking for your buyer phrases, each with its size and best recent multiple; it is a keyword check in credits. add and remove show the change first and make it with confirm: true; add can take channels off in the same change to make room. The next idea run reads the list.
- Returns other people's words. The assistant is told to treat them as data.
Ask it like this
Who should I be tracking that I'm not? Add the best two.
| Argument | Required | What it is |
|---|
| channelstring | no | The channel: its @handle, its UC… id or its user_channel_id. Leave it out when the account has one channel. With more than one, a call that leaves it out works on the channel last used in PreFilm, which may not be the one the person means: say which channel you mean and get the person's yes first. |
| actionenum: list · suggest · add · remove | yes | list the competitors, suggest channels your buyers watch, or add or remove channels. |
| channel_idsarray: string | no | add and remove: the channels, each as its UC… id, its @handle or its channel link, from list, suggest or the person. |
| remove_idsarray: string | no | add only: channels to take off in the same change, to make room on a full list (make_room in the preview lists the ones PreFilm added). UC… ids, @handles or channel links. |
| confirmboolean | no | add and remove: leave it out to see the change first; true makes it once the person has agreed. |
| list_hashstring | no | With confirm: true, the list_hash from the preview, so the change lands only on the list it was shown on. |
More ideas
more_ideas
Starts a new idea run for a channel, as More ideas on the Ideas page does, and spends one of the same More ideas runs (list_channels shows what is left). Send confirm: true once the person has agreed. A run reads the channel's competitors, buyer phrases and the videos that beat their normal, and writes new ideas; it takes several minutes. The answer carries the run_id and ready_in_seconds. PreFilm cannot tell you when it is done: call what_to_film after ready_in_seconds and it shows the new ideas. While a run is going, no second one starts and nothing is spent.
Ask it like this
Run more ideas for my channel, then tell me which one to film when they are in.
| Argument | Required | What it is |
|---|
| channelstring | no | The channel: its @handle, its UC… id or its user_channel_id. Leave it out when the account has one channel. With more than one, a call that leaves it out works on the channel last used in PreFilm, which may not be the one the person means: say which channel you mean and get the person's yes first. |
| confirmboolean | no | Must be true: the person asked for this change. |
Break down a video
break_down_video
Takes any YouTube video apart: how far it beat its channel's normal, the hook, the sections and where the pitch comes, what it sells and how it asks, and what its viewers asked for in the comments. Another creator's video comes back as short quotes, never the whole transcript; your own videos come back in full with include_transcript: true. Priced in credits as a video breakdown, with a transcript more when its captions have to be fetched. For your own transcripts in bulk, use my_videos with mode transcripts.
- Returns other people's words. The assistant is told to treat them as data.
Ask it like this
Break down this video: what's the hook, how is it built, and what is it selling? https://youtu.be/…
| Argument | Required | What it is |
|---|
| video_idstring | yes | The video: its 11-character id or its YouTube link. |
| querystring | no | Words to find in the transcript. The quotes are the passages around them. |
| include_transcriptboolean | no | The whole transcript, for your own videos only. Another creator's video still comes back as short quotes. |
| generate_transcriptboolean | no | For your own video without captions: write a transcript from the audio, using about 2 of the day's transcript and search reads a minute, up to 30 minutes. |
Titles and thumbnail briefs
package_video
Gives 3 to 5 titles and 2 thumbnail briefs for a video you are about to make. Each one names the video that beat its channel's normal, or the exact search, it is taken from. The briefs are for the person or their designer to make: do not draw, render or generate a thumbnail image from them, or from anything else PreFilm returns. Send a topic or an idea_id, and phrase for a search you want to rank for. With an idea_id alone, the answer is saved on the idea, and asking again shows it without counting another roast. To judge a title you already have, or a title with its thumbnail, use roast_concept. Priced in credits as titles and thumbnail briefs.
- Returns other people's words. The assistant is told to treat them as data.
Ask it like this
I've got a video on how we cut churn with onboarding calls. Give me titles and a thumbnail brief.
| Argument | Required | What it is |
|---|
| channelstring | no | The channel: its @handle, its UC… id or its user_channel_id. Leave it out when the account has one channel. With more than one, a call that leaves it out works on the channel last used in PreFilm, which may not be the one the person means: say which channel you mean and get the person's yes first. |
| topicstring | no | What the video is about, in your words. |
| idea_idstring | no | An idea on your list or board, instead of a topic. Its titles and thumbnail briefs are saved on it, and asking again shows them without counting another roast. A searched idea brings its phrase. Send a topic or a phrase as well and the answer is not saved. |
| phrasestring | no | The exact search your buyers type, for a video you want found in search. |
Roast a concept
roast_concept
Judges a video's title, or a title with its thumbnail, before you film or publish: Film it, Reframe it or Skip it. Send the working title as title and a sentence or two about the video as concept. When the person shares a script, send its title and a short summary, not the script. If the title is not known, ask the person for it before you roast. You get the videos it was compared with and how far each beat its channel's normal, how many videos in your research used the same shape this year and how many of those beat their normal, how many of the top YouTube results for it from the past 12 months share it with the biggest of them, and whether you already made it. When the verdict is Reframe, you also get a new title and an opening line. save_to_board: true with confirm: true puts it on the board. Priced in credits as a roast.
- Returns other people's words. The assistant is told to treat them as data.
Ask it like this
Roast this: I tried every AI note-taker for a month.
| Argument | Required | What it is |
|---|
| conceptstring | no | A sentence or two about the video, as context for the title. When the person shares a script, send its title as title and a short summary here, never the script. Sent without a title, it is judged as the title. |
| titlestring | no | The video's working title, as the person would publish it. This is what PreFilm judges. Send the thumbnail with it to have both judged. If the title is not known, ask the person for it before roasting. |
| thumbnail_urlstring | no | The thumbnail: an https link to the image. |
| thumbnail_base64string | no | The thumbnail as base64, with thumbnail_media_type, up to 3 MB. A bigger image goes as thumbnail_url. |
| thumbnail_media_typeenum: image/png · image/jpeg · image/webp · image/gif | no | The image type of thumbnail_base64. |
| channelstring | no | The channel: its @handle, its UC… id or its user_channel_id. Leave it out when the account has one channel. With more than one, a call that leaves it out works on the channel last used in PreFilm, which may not be the one the person means: say which channel you mean and get the person's yes first. |
| save_to_boardboolean | no | Put the roast on the board as a card. Needs confirm: true. |
| confirmboolean | no | With save_to_board, true makes the card once the person has agreed. |
Write a script
write_script
Writes a script for an idea in your voice, with the offer placed where the evidence says it works. The voice is the founder's own, learned from their recent videos. PreFilm is told to use only facts from their own videos, the notes you send and the offer on file, to leave a [YOUR STORY] or [YOUR NUMBER] slot for anything else, and to list in unchecked what its check could not ground. A fact that is not in the notes most likely came from their videos or their offer; do not call it invented. Before you write, ask the person for what they have not already said: which channel, when the account has more than one and none was named; how long the video should run (under 10, 10 to 15, 15 to 20 or over 20 minutes, or leave length out and PreFilm picks from their past videos); and "Anything the script should know", such as a story to open with, a client to name, a claim to leave out or the points to cover. Send that as notes, up to 8,000 characters. Notes are optional and rough notes are fine. When the idea needs the person's own take, or list_channels says the channel is thin, offer the interview first: mode interview with the idea_id gives 5 to 8 short questions to answer by voice, and the replies go back as answers. Otherwise write the script as soon as they answer. It takes about three minutes. Call write_script with mode read and the script_id it returns: that call waits up to 50 seconds, so call it again while it says the script is still writing. A finished script comes with unchecked, your_story_slots, checks_finished, how_written, and brief: the script laid out to record from, to paste into a doc. mode outline writes the outline alone, an outline in credits, or saves outline_text free; outline_id writes the script to a saved outline. mode rewrite changes one passage (script_id, passage, change), in credits. A script is priced in credits; reading one is free.
Ask it like this
Write the script for the idea about pricing pages, then show me the hook.
| Argument | Required | What it is |
|---|
| modeenum: write · read · rewrite · interview · outline | no | write (the default) starts a script. read returns one by script_id, or the latest for an idea_id, with brief, the script laid out to record from; with outline_id it reads that outline. outline writes an outline for an idea_id, with notes, length and answers, an outline in credits; with outline_text it saves the person's own outline, free. rewrite changes one passage of a finished script by script_id. interview gives 5 to 8 short questions for an idea_id to ask the person before writing. rewrite and interview are priced in credits too. |
| idea_idstring | no | The idea to write the script for, from what_to_film. mode interview: the idea to ask about. mode read: the idea whose latest finished script to read; the answer says when a newer version is being written or has stopped. |
| answersarray: object | no | The person's answers to the interview, each with its question and the kind mode interview gave it. They go to the script with the notes and are kept as this channel's founder facts, which is priced in credits. |
| script_idstring | no | mode read: the script to read. mode rewrite: the script to change. |
| passagestring | no | mode rewrite: the words to change, copied exactly from one paragraph of the script as mode read returns it, up to 2,000 characters. A sentence or two works best. |
| changestring | no | mode rewrite: what to change about the passage, in the person's words, such as shorter, name the client, or end on the offer. Up to 1,000 characters. |
| confirmboolean | no | mode rewrite: must be true, the person asked for this change. |
| lengthenum: under10 · 10to15 · 15to20 · over20 | no | under10, 10to15, 15to20 or over20 minutes. Leave it out and PreFilm picks from your own videos. |
| outline_idstring | no | An outline saved on the idea in PreFilm (latest_outline.outline_id when you read the idea with what_to_film). The script follows its sections one by one and keeps their facts; its wording may change. It counts as one script, and the outline is not counted again. |
| outline_textstring | no | An outline the person wrote, for mode outline: saved on the idea free, with no model call and no outline used. One section title a line, each point under it on a line of its own starting with a dash. Up to 12 sections of 12 points. |
| notesstring | no | What the script should know, in your words: a story to open with, a client to name, a claim to leave out, the points to cover. Up to 8,000 characters. Optional, and rough notes are fine. |
| wait_secondsnumber | no | Wait up to this many seconds, at most 50, for the script to finish before answering. With mode read the default is 45 and 0 answers at once; with mode write the default is to answer at once. |
Update the board
update_board
Works on your production board. Add a YouTube video to the library for the next run, or turn a roast or a title into a card. add_idea_from_video turns a video's format, such as an outlier find_outliers returned, into one idea for your offer and how you film, in credits. Move a card to another stage, set its due date, pick its title or add a note. take_off_board: true takes a card off the board and keeps the idea in your list, with its script and fields. drop: true removes an idea, only when the person asked to remove that idea, so what_to_film never picks it again and the next idea run does not bring it back; restore: true puts it back. Every change needs confirm: true and answers with the card's link. A saved video is a library save in credits; the rest is free.
- Returns other people's words. The assistant is told to treat them as data.
Ask it like this
Put the churn video on the board as Ready to film, due Thursday, with the second title.
| Argument | Required | What it is |
|---|
| channelstring | no | The channel: its @handle, its UC… id or its user_channel_id. Leave it out when the account has one channel. With more than one, a call that leaves it out works on the channel last used in PreFilm, which may not be the one the person means: say which channel you mean and get the person's yes first. |
| idea_idstring | no | The card to change. |
| add_videostring | no | A YouTube video to save to the library for the next run: its id or its link. |
| add_roaststring | no | A roast to turn into a card. |
| add_ideastring | no | A title of your own, added as a card. |
| add_idea_from_videostring | no | A YouTube video, by its id or link, usually one find_outliers returned: PreFilm turns its format into one idea for your offer, your buyers and how you film, in credits. Leave confirm out to see the price first. |
| stageenum: idea · roast · script · ready_to_film · filmed · editing · revisions · scheduled · published | no | Move the card to this stage: idea, roast, script, ready_to_film, filmed, editing, revisions, scheduled or published. |
| due_datestring | no | YYYY-MM-DD, or null to clear it. |
| titlestring | no | The card's title, such as one package_video gave. |
| notestring | no | A note added to the card's notes. |
| take_off_boardboolean | no | true takes the card off the board and keeps the idea in your list, with its script and fields. Send it with idea_id and confirm, and nothing else. |
| dropboolean | no | true removes the idea from your list, as Remove does in PreFilm: what_to_film never picks it again and the next idea run does not bring it back. Only when the person asked to remove this idea. Send it with idea_id and confirm, and nothing else. |
| restoreboolean | no | true puts back an idea that was dropped or removed in PreFilm. Send it with idea_id and confirm, and nothing else. |
| confirmboolean | no | Must be true: the person asked for this change. |
Check an upload
check_upload
Checks a video's title, description and tags before you publish, as PreFilm's extension does in YouTube Studio. The title and the description each get one word, Strong, Needs work or Weak, with the reason behind each check: a buyer phrase or checked keyword and how early it comes, the length, whether the title's shape beat its channel's normal in your research this year, whether it repeats one of your own titles, the words you never say, and YouTube's limits; for the description, whether its first two lines ask the viewer to act and carry a link, whether your offer's link is in it, and its length. Tags to add come from your buyer phrases, your checked keywords, the matching idea on your board and the tags the videos ranking for that phrase use. When the title matches an idea that already has titles saved on it, those titles come back free. Free; suggest: true adds 3 to 5 titles from your research, priced in credits. Nothing is changed: to change a video already on YouTube, use update_video with the YouTube connection.
- Returns other people's words. The assistant is told to treat them as data.
Ask it like this
Check this title and description before I upload: How We Cut Churn in 90 Days.
| Argument | Required | What it is |
|---|
| channelstring | no | The channel: its @handle, its UC… id or its user_channel_id. Leave it out when the account has one channel. With more than one, a call that leaves it out works on the channel last used in PreFilm, which may not be the one the person means: say which channel you mean and get the person's yes first. |
| titlestring | yes | The video's title as it stands. |
| video_idstring | no | The id of a video already on the person's own channel, when the title is that video's: PreFilm then says how it did and never counts the title as its own repeat. |
| descriptionstring | no | The description as it stands, whole. Left out, only the title and tags are checked. |
| tagsarray: string | no | The tags on the video now, one to an item. |
| suggestboolean | no | true adds 3 to 5 titles written for this video from your research, priced in credits. |
Read your videos and their links
my_videos
Your own channel's videos, private and unlisted ones included. mode list shows each one's title, privacy, date, views, length and the hash a change needs; until the channel is connected it lists the public videos PreFilm has stored, each with its multiple, and none that are private. mode transcripts returns the whole transcripts of your own videos, newest first: 20 at most, long videos only (include_shorts: true adds Shorts), video_ids picks videos and offset pages. Transcripts PreFilm has stored are free and need no connection; fetch_missing: true reads the missing ones from YouTube's captions, a transcript in credits each. Use it, not break_down_video, whenever the person wants their own transcripts. mode search finds every video with some text in its description, title or tags, with the lines it is on. mode audit_links checks every link in every description for the dead ones, the redirects and the ones still pointing at an earlier offer rather than the one on file, and lists the videos that ask nothing of the viewer in the first two lines. The list is kept for 24 hours; refresh: true reads YouTube again, a fresh read in credits. Descriptions come back with invisible characters removed, so change part of one with a find and replace rather than sending the whole text back. Private videos, search, audit_links and changes need the YouTube connection.
- Needs the YouTube connection, which opens in Settings for every account once Google finishes reviewing PreFilm.
Ask it like this
List my videos and find every description that still links to my old site.
| Argument | Required | What it is |
|---|
| channelstring | no | The channel: its @handle, its UC… id or its user_channel_id. Leave it out when the account has one channel. With more than one, a call that leaves it out works on the channel last used in PreFilm, which may not be the one the person means: say which channel you mean and get the person's yes first. |
| modeenum: list · transcripts · search · audit_links | no | list (the default): the videos. transcripts: the whole transcripts of your own videos, newest first. search: the videos holding some text. audit_links: every link in every description, checked, and the videos with no call to action. |
| refreshboolean | no | Read YouTube again rather than the list kept for 24 hours. Counts as a fresh read. |
| privacyarray: public · unlisted · private | no | Only videos with these privacy settings. |
| includearray: description · tags | no | list: add each video's full description, its tags, or both. |
| querystring | no | search: the text to look for, such as a link. |
| fieldenum: title · description · tags | no | search: where to look, description (the default), title or tags. |
| matchenum: ignore_case · exact | no | search: ignore_case (the default) or exact, case and all. |
| limitnumber | no | list: videos to return (50 by default, 200 at most). transcripts: videos to read (20 by default and at most). search: matches to return (200 by default). audit_links: videos in each list (50 by default). |
| offsetnumber | no | list and transcripts: videos to skip, for the next page. |
| video_idsarray: string | no | transcripts: read only these videos of yours, by id or link. Up to 20. |
| include_shortsboolean | no | transcripts: true also reads Shorts and videos under 3 minutes, which are left out by default. |
| fetch_missingboolean | no | transcripts: true reads the transcripts PreFilm has not stored from YouTube's captions and stores them. Each counts as one of the day's transcript and search reads. Left out, the missing ones are listed and nothing is spent. |
Change one video
update_video
Changes one of your own videos: its title, description or tags, or a find and replace inside them. It takes two calls. The first, with the hash from my_videos, changes nothing: it reads the video and answers each field before and after, with a preview_id. Show that to the person. The second sends the same change with that preview_id and confirm: true, and only then does the video change. A preview works once, for 30 minutes, for that video and that change alone, and a call that differs is refused. PreFilm reads the video again before it writes, refuses if it changed since the preview, and keeps everything you did not ask to change. mode undo with the edit_id puts a change back while the video still says what the change left. A new title with a word PreFilm keeps out of its own writing gets a warning and still changes. Priced in credits as a video change, an undo too.
- Needs the YouTube connection, which opens in Settings for every account once Google finishes reviewing PreFilm.
- Changes your channel. It shows the change first and can undo it.
Ask it like this
Change the title of my newest video to How We Cut Churn in 90 Days. I confirm.
| Argument | Required | What it is |
|---|
| channelstring | no | The channel: its @handle, its UC… id or its user_channel_id. Leave it out when the account has one channel. With more than one, a call that leaves it out works on the channel last used in PreFilm, which may not be the one the person means: say which channel you mean and get the person's yes first. |
| modeenum: edit · undo | no | edit (the default) changes the video. undo puts a change back by its edit_id. |
| video_idstring | no | The video: its 11-character id or its YouTube link. |
| titlestring | no | The new title, whole. |
| descriptionstring | no | The new description, whole. |
| tagsarray: string | no | The new tags, the whole list. |
| findstring | no | Text to find. It becomes replace. |
| replacestring | no | What find becomes. Empty removes it. |
| inarray: title · description · tags | no | Where find and replace applies: description when left out. |
| matchenum: exact · url_prefix | no | exact (the default): the text, case and all. url_prefix: every whole link that starts with find. |
| expected_hashstring | no | edit: the video's hash from my_videos. |
| preview_idstring | no | The preview_id the first call answered. Send it with the same change and confirm: true to make the change. |
| edit_idstring | no | undo: the edit id of an earlier change, or one from a replace job's changed list. An undo itself is never undone. |
| confirmboolean | no | Must be true, with preview_id: the person asked for this change after seeing its preview. |
Change text across all your videos
replace_across_videos
Changes the same text across every video on your channel, in titles, descriptions, tags or any mix: an old link for a new one, or 2025 for 2026 in every title. Preview first. It lists every video that would change with each field before and after, the videos that cannot change and why, the YouTube quota it needs and what it costs in credits. Titles and descriptions of public videos preview without the connection. Then apply with the preview_id and confirm: true: up to 5 videos change at once and the rest over the following hours or days, each checked against the preview first. {video_id} in the replacement puts each video's own id into its description, such as utm_content={video_id} on a link, so your own site's analytics shows which video sent each visit. match: exact (the default) swaps the text, case and all, and keeps what follows it, and matches a link only where its host ends, so https://old.link leaves https://old.linkedin.com alone; url_prefix swaps every link that starts with find, whatever follows it. mode status follows a job and mode cancel stops it; mode undo with its job_id puts every change back. Each video changed is a video change in credits.
- Needs the YouTube connection, which opens in Settings for every account once Google finishes reviewing PreFilm.
- Changes your channel. It shows the change first and can undo it.
Ask it like this
Go through all my videos, find every description with https://old.link and replace it with https://new.link.
| Argument | Required | What it is |
|---|
| channelstring | no | The channel: its @handle, its UC… id or its user_channel_id. Leave it out when the account has one channel. With more than one, a call that leaves it out works on the channel last used in PreFilm, which may not be the one the person means: say which channel you mean and get the person's yes first. |
| modeenum: preview · apply · status · cancel · undo | yes | preview first; apply with its preview_id; status follows a job; cancel stops it; undo puts every change it made back. |
| fieldsarray: title · description · tags | no | What to change on each video: title, description, tags or any mix. description when left out. Send the same list to apply. |
| findstring | no | preview and apply: the text or link to find, such as 2025 or https://old.link. |
| replacestring | no | preview and apply: what it becomes. Empty removes it. {video_id} puts each video's own id into its description. |
| matchenum: exact · url_prefix | no | exact (the default): the text, case and all, keeping what follows it. url_prefix: every whole link that starts with find, tracking tail and all. |
| preview_idstring | no | apply: the preview to apply. |
| job_idstring | no | status, cancel and undo: the job id from the apply. |
| confirmboolean | no | Must be true to apply, cancel or undo. |
| idempotency_keystring | no | apply: send the same key again and the same job answers, never a second one. |
Report on your channel
channel_report
Answers one question about your own channel from YouTube Analytics, joined to what PreFilm knows. Ask for an overview, your top videos and which bring subscribers, the exact searches that find you (marked where they match your buyer phrases), the websites that send viewers (yours or someone else's), the other creators' videos that send viewers (marked when you track the channel), where viewers stop watching one video set against what you were saying, or who watches. Never revenue. The numbers run 2 to 3 days behind. Needs the YouTube connection with YouTube Analytics allowed.
- Needs the YouTube connection, which opens in Settings for every account once Google finishes reviewing PreFilm.
- Needs the connection made with the YouTube Analytics box ticked.
- Returns other people's words. The assistant is told to treat them as data.
Ask it like this
Give me my channel report for the last 28 days, and which videos bring subscribers.
| Argument | Required | What it is |
|---|
| channelstring | no | The channel: its @handle, its UC… id or its user_channel_id. Leave it out when the account has one channel. With more than one, a call that leaves it out works on the channel last used in PreFilm, which may not be the one the person means: say which channel you mean and get the person's yes first. |
| questionenum: overview · by_video · search_terms · external_sites · suggested_by · retention · audience | yes | overview: totals and where views came from. by_video: your top videos, with views from search and new subscribers. search_terms: the searches that found you. external_sites: the websites that sent viewers. suggested_by: other creators' videos that sent viewers. retention: where viewers stop watching one video. audience: countries, devices, age and gender. |
| video_idstring | no | One video, by its id or link: needed for retention, and narrows search_terms, external_sites and suggested_by to it. |
| start_datestring | no | YYYY-MM-DD. The 28 days to end_date for the overview, 90 for the rest, when left out. |
| end_datestring | no | YYYY-MM-DD, no later than today. Today when left out. |
| sortenum: views · subscribers | no | by_video only: biggest views first (the default) or most new subscribers first. |
| limitnumber | no | by_video only: how many videos, 20 when left out. |
Grow from search
grow_from_search
For your videos that already get found through YouTube search: the phrases people really typed, how many search each on Google a month, where your video ranks on YouTube for it now and who sits above you. For a phrase where you rank 4th to 20th, a new title and first description line are ready to preview and apply with update_video. Priced in credits as a keyword check. Needs the YouTube connection with YouTube Analytics allowed.
- Needs the YouTube connection, which opens in Settings for every account once Google finishes reviewing PreFilm.
- Needs the connection made with the YouTube Analytics box ticked.
- Returns other people's words. The assistant is told to treat them as data.
Ask it like this
Which of my videos already get found through search, and what should I change to rank higher?
| Argument | Required | What it is |
|---|
| channelstring | no | The channel: its @handle, its UC… id or its user_channel_id. Leave it out when the account has one channel. With more than one, a call that leaves it out works on the channel last used in PreFilm, which may not be the one the person means: say which channel you mean and get the person's yes first. |