← Back to blog

Post One Short a Day to YouTube, TikTok and Instagram Reels From a Single Folder (Claude Code Recipe)

·auto post youtube shorts tiktok reelsClaude Code scheduled tasksshort video automationcross-post short videoAI agent

Post One Short a Day to YouTube, TikTok and Instagram Reels From a Single Folder (Claude Code Recipe)

If you make short videos, the editing is rarely what stops you. It’s the upload. The same clip goes into YouTube Studio, then TikTok, then Instagram, each with its own caption box and its own wait while the file uploads. Do that daily and it eats an hour you meant to spend filming.

This recipe turns the upload into a queue. You drop finished vertical videos into one folder. Every morning a Claude Code scheduled task takes the oldest one, posts it to YouTube, TikTok and Instagram Reels, moves it to posted/, and writes down the three links.

When you’re done you’ll have:

Setup is about 20 minutes, most of it signing in to three platforms and one supervised first run.

Who this fits: creators with finished videos (or a batch they film on weekends) who want a steady daily cadence across three platforms. The videos already exist; the AI does the uploading and the bookkeeping. It doesn’t edit video. Every post goes out through your own signed-in accounts on your own computer, like one you’d click by hand.

The recipe

You’ll paste this into Claude Code in step 2:

Read https://www.publishport.app/skill.md and follow it to set up PublishPort for me, then check that YouTube, TikTok and Instagram are connected. In this folder, create queue/, posted/ and log.md. For each video in queue/, I will add a text file with the same name holding a title, a caption and a few hashtags. Take the oldest video in queue/, show me the title and caption you plan to use on each platform, and once I approve, publish it to YouTube (public), TikTok and Instagram Reels, give me the three links, move the files to posted/ and add a line to log.md. After that, help me turn this into a Claude Code Desktop scheduled task that does the same every day at 9 am.

The skill file is a short public instruction sheet. It tells the AI how to install itself, ask you for one authorization click, check which accounts are connected, publish, and confirm the post exists. Every AI you authorize shows on your account page, where you can revoke it.

Step 0: Get three things ready

1. Claude Code Desktop. This recipe uses a local scheduled task because your videos live on your computer. Per Anthropic’s docs, local tasks run on your machine with direct access to your files, but only fire while the app is open and the computer is awake. Open the Code tab and check that Scheduled appears in the sidebar. (Cloud tasks, covered in the Claude Code scheduled tasks recipe, can’t see your local folder.)

2. The PublishPort desktop app, signed in to all three platforms. Install it from the download page, open Platform accounts, click Sign in next to YouTube, TikTok and Instagram, and sign in the usual way in the window that opens (walkthrough). For YouTube, use the account that owns your channel.

3. Node.js and an empty folder with one video. The publishing command runs on Node.js: check node -v, or install the LTS release from nodejs.org. Create a folder called shorts with a queue folder inside, and put one finished video in it. Make it a vertical .mp4: Instagram Reels uploads accept .mp4 only, and YouTube counts a vertical or square video up to three minutes as a Short.

Step 1: What each platform’s command can do

Check this before you plan your week (checked against the PublishPort command set, publishport-opencli 1.0.40):

YouTube TikTok Instagram Reels
Upload a video file with a title Yes Yes Caption only, no separate title
Caption / description Yes Yes, with hashtags Yes
Hashtags / tags Yes Yes Put them in the caption
Custom thumbnail Yes No No
Public / unlisted / private Yes No No
Scheduled publish time on the platform No Yes, a --schedule time No
Format Any video file Video file .mp4 only

The practical consequence: only TikTok can be told “publish at 6 pm”. For the other two, the timing comes from your scheduled task, which publishes at the moment it runs. That’s fine for a daily morning post. If you want TikTok at a different hour than the others, say so in the task prompt and the AI will use TikTok’s schedule option.

Step 2: Supervised first run

Open Claude Code Desktop, start a session in the shorts folder and paste the recipe. What happens:

  1. The AI installs the PublishPort skill and runs the login. It gives you an authorization link and a confirmation code. Open the link, sign in or create a PublishPort account, check the code matches and click Authorize. The link lasts 10 minutes; ask for a new one if it expires.

  2. It checks your computer and tells you which of the three platforms show as signed in. If one doesn’t, sign in again under Platform accounts and ask it to re-check.

  3. It creates posted/ and log.md. Now write the text file for your video. If the video is queue/morning-desk-tour.mp4, create queue/morning-desk-tour.txt:

    title: My morning desk setup in 20 seconds
    caption: The three things on my desk I'd keep if I had to cut everything else.
    tags: desksetup, productivity, workfromhome

    Or tell the AI “write the title, caption and tags for me from this one-line idea” and edit its draft.

  4. It shows you the version it will use on each platform. YouTube titles are capped at 100 characters; keep the TikTok and Instagram captions shorter and more conversational than the YouTube description. Edit freely, then approve.

  5. It publishes, one platform after another. Video uploads take a few minutes. It then hands you three links, moves the video and text file into posted/ and adds a line to log.md. Click all three links. Seeing the Short live is your proof the chain works.

Claude Code asks permission before running commands. Approve while you’re watching; step 3 makes that stick.

Step 3: Create the daily task

Ask the AI to create it, or build it by hand. In the Code tab click Scheduled, then New task, and choose Set up manually if offered. Per the docs, the dialog has changed shape between versions: if you see Only on this computer, switch it on; if you see a Local / Cloud menu, pick Local. Pick the shorts folder, choose Daily, and set the time. Anthropic notes each task starts a few minutes after its scheduled time, and the run is skipped if the computer is asleep.

Name it daily-short and paste these instructions:

This is a pre-approved publishing task. Publish without asking me to confirm, but only as the rules below allow.

1. Look in queue/ for video files (.mp4). If there are none, write "queue empty" and stop.
2. Take the oldest one by file name. If log.md already has a line dated today, stop: one video per day.
3. Read the text file with the same name: title, caption, tags. If it is missing, do not publish. Tell me which video has no text file and stop.
4. Check the time. If it is after 2 pm, stop and say the run was late.
5. For each of YouTube (public), TikTok and Instagram Reels, run `publishport guide <platform>` to read the current options, then publish. Use the video's absolute path. YouTube gets the title, caption as description and the tags. TikTok gets the caption and tags. Instagram gets the caption with the hashtags added at the end.
6. If any command fails or times out, do NOT run it again. Look at that account's latest posts first and retry once only if the video is not there. Never publish twice.
7. Move the video and its text file to posted/ only if all three succeeded. Otherwise leave them in queue/. Append one line to log.md: date, file name, the links that worked, and which platform failed, if any.
8. Give me a two-line summary.

Then click Run now once. Watch the session. The first time a command needs permission, choose “always allow”; the docs say later runs of that task then approve the same tools without stalling. Review or revoke those approvals on the task’s detail page. Run it only after step 2: the “one per day” guard will stop a same-day second run, so for a test, put a second video in queue/ and delete today’s line from log.md first.

The rules in the prompt are the point. Each scheduled run starts cold and nobody is watching, so the permission to publish has to be written into it (PublishPort’s skill otherwise has the AI show you the content first). And the guards (one per day, stop if late, never retry blindly, only move files after success) keep a bad morning from becoming a duplicate post.

Your weekly rhythm

If something doesn’t run

Taking it further

Posting is half the job. Once a week of videos has gone out, have the AI answer the comments overnight, and use the weekly analytics review to decide which kind of clip goes into next week’s queue. Prefer text posts? LinkedIn on a weekly cadence uses the same pattern.

The free plan covers setting this up; plan limits and pricing are on the pricing page.