---
url: https://superduperai.co/library/youtube-upload-checklist-private-then-phone-then-public/
title: YouTube upload checklist: gate the file, publish private, watch on a phone
description: Cheap checks first, upload last: title under 100 characters, the real shooting date and chapters in the description, captions as tracks, Shorts linked both ways, a private publish watched on a phone.
category: growth
platforms: [youtube, shorts]
works_with: [claude-code, manual]
tags: [youtube, upload, checklist, publishing, youtube-channel, shorts]
difficulty: intermediate
verified: false
created: 2026-11-01
skill: youtube-channel
---

# YouTube upload checklist: gate the file, publish private, watch on a phone

Cheap checks first, upload last: title under 100 characters, the real shooting date and chapters in the description, captions as tracks, Shorts linked both ways, a private publish watched on a phone.

## Prompt

```text
Before uploading {file} to YouTube, check in this order and stop at the first failure:

FILE
[ ] Title 100 characters or fewer (over 100 is invalidTitle and creates nothing). In the language of the audience the video is for.
[ ] Description file exists and starts with the real shooting date (from container metadata, not the file name), then one paragraph, then chapters as timestamps starting at 0:00, then a 'Shorts from this video' block with links.
[ ] Thumbnail extracted and looked at.
[ ] Playlist resolved.
[ ] Caption files parse. Long video: an .srt per language as tracks, never burned. Short: burned in, 1-2 word lines.
[ ] Branded outro present if the channel uses one.
[ ] Third-party music checked for Content ID (strip it first if any).
[ ] Audio timestamps: packet pts match index*1024/sample_rate after loudnorm (asetpts=N/SR/TB last in the chain).

PUBLISH
[ ] Upload PRIVATE.
[ ] Watch it on a phone, start to end, sound on: the joins, the captions, the outro, the first 3 seconds.
[ ] Set privacy to public (videos.update of status.privacyStatus).
[ ] Read the description back after 10 s; read-after-write is stale, and a second write can put the old text back.

LINK
[ ] The Short's description links to the long video; the long video's description lists its Shorts.
[ ] 'Related video' on the Short set by hand in Studio (the API accepts relatedVideoId with 200 and does not save it).

MEASURE
[ ] Judge at 48 h, not at 1 h; 0 views an hour after publish is normal.
```

## Steps

1. Run the FILE block as a script before the first byte goes up; an upload costs 1,600 of the day's 10,000 quota units, so a failed one is 16 % of the day.
2. Keep the phone watch honest: full length, not the first minute.
3. Hide a weak video by setting it unlisted, never delete; deletion loses the URL and the stats.

## Tips

- Quota resets at midnight Pacific; 5-6 uploads a day in practice. Plan a batch of Shorts against it and push the rest to tomorrow instead of failing mid-batch.
- A week in, nobody can tell the days apart; the real shooting date in every description is what makes a series navigable.
- In Claude Code, `/youtube-channel` runs this gate, uploads private, publishes and reads the Analytics API after 48 h.

## Works with

- Claude Code: Runs as a skill or a prompt in the terminal; can read your files and write the result.
- By hand: No tool needed: a checklist or a technique.
