Upload a video
upload_videoUpload a video from a local file or public URL to YouTube with resumable, checkpointed progress; optionally schedule it, set a thumbnail, add playlists, and attach captions.
Instructions
Upload a video file from this computer (file_path) or a public URL to YouTube with a resumable, checkpointed upload that survives network drops and restarts. Optionally schedule it (publish_at), set a thumbnail, add it to playlists and attach captions in the same call. Runs in the background: returns a job_id right away (or the finished video if it completes within wait_seconds). Poll get_upload_status. Private uploads start immediately; public, unlisted and scheduled uploads need the user’s confirmation first. Tip: write metadata first (generate_metadata, then preview_metadata).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Public http(s) URL to download the video from instead of a file. | |
| tags | No | Tags (total under 500 characters). | |
| title | Yes | Video title (max 100 characters; about 70 show on mobile). | |
| channel | No | Which connected channel: channel ID (UC...), @handle or name. Omit to use the default channel. | |
| license | No | ||
| privacy | No | private (default), unlisted or public. | private |
| template | No | Template name from list_templates (adds title format, footer, tags, hashtags, playlists). | |
| file_path | No | Absolute path to the video on this computer, e.g. ~/Videos/recap.mp4. | |
| playlists | No | Playlist ids or exact names to add the video to. | |
| embeddable | No | ||
| publish_at | No | Schedule: ISO 8601 date-time when the video goes public. Uploads as private until then. | |
| category_id | No | YouTube category id, e.g. 22 People & Blogs, 27 Education, 28 Science & Technology. See list_categories. | |
| description | No | Description. Template header/footer/hashtags are added automatically. | |
| wait_seconds | No | Wait this long for the upload before returning the job status. | |
| captions_path | No | .srt or .vtt captions file to attach. | |
| made_for_kids | No | COPPA: is this video made for kids? Defaults to false (or the template value). | |
| recording_date | No | ISO date the video was recorded. | |
| thumbnail_path | No | JPG/PNG up to 2 MB to set as the custom thumbnail after upload. | |
| default_language | No | Language of title/description, e.g. "en". | |
| captions_language | No | Captions language, e.g. "en". Defaults to default_audio_language or "en". | |
| confirmation_token | No | Only after the user approved: the confirmation_token returned by the previous call with identical arguments. | |
| notify_subscribers | No | ||
| default_audio_language | No | Spoken language, e.g. "en", "hi". | |
| contains_synthetic_media | No | Altered or synthetic content disclosure: true if realistic content was made or altered with AI. | |
| create_missing_playlists | No | Create (private) playlists named in `playlists` that do not exist yet. |