Skip to Content

YouTube Upload API

This section details how to upload videos to YouTube using the API. It supports standard video uploads with extensive metadata customization including privacy settings, scheduling, and COPPA compliance.

Base URL

https://api.multi-upload-tool.com/api/v1

Authentication

All requests require an API Token in the header: x-api-token: YOUR_API_TOKEN


Requirements

YouTube Video Requirements

  • File Size: Maximum: 256 GB
  • Accepted MIME Types: video/*, application/octet-stream
  • Important: Custom thumbnails are not supported for YouTube Shorts; they only apply to standard YouTube videos.

Upload Video

Upload a video file to a connected YouTube channel.

Endpoint

POST /upload/youtube

Content-Type

multipart/form-data

Parameters

ParameterTypeRequiredDescription
accountIdstringYesThe ID of the connected YouTube account.
fileFileYesThe video file to upload.
titlestringYesThe title of the video.
descriptionstringNoThe description of the video.
tagsstring | string[]NoComma-separated tags or array of strings.
categoryIdstringNoYouTube category ID (e.g., “22” for People & Blogs). Default: 22.
privacyStatusstringNoVisibility: public (default), private, or unlisted.
scheduledDatestringNoISO 8601 date string for scheduled publishing. Note: Setting this forces privacyStatus to private initially.
thumbnailFileNoCustom thumbnail image file.
thumbnail_urlstringNoURL of the thumbnail image (alternative to file).
embeddablebooleanNoWhether the video can be embedded on other sites. Default: true.
licensestringNoyoutube (Standard) or creativeCommon. Default: youtube.
publicStatsViewablebooleanNoWhether view counts are publicly visible. Default: true.
madeForKidsbooleanNoWhether the video is made for kids (COPPA compliance). Default: false.
selfDeclaredMadeForKidsbooleanNoSelf-declaration for COPPA.
containsSyntheticMediabooleanNoWhether content is AI-generated or synthetic. Default: false.
hasPaidProductPlacementbooleanNoWhether the video contains paid promotion. Default: false.
defaultLanguagestringNoISO 639-1 language code (e.g., en, fr).
defaultAudioLanguagestringNoISO 639-1 language code for audio.
allowedCountriesstringNoComma-separated list of allowed country codes (ISO 3166-1 alpha-2).
blockedCountriesstringNoComma-separated list of blocked country codes.
recordingDatestringNoDate when the video was recorded (ISO 8601).
notifySubscribersbooleanNoWhether to notify subscribers about the upload. Default: true.

Example Request

curl -X POST https://api.multi-upload-tool.com/api/v1/upload/youtube \ -H "x-api-token: YOUR_API_TOKEN" \ -F "accountId=acc_123456789" \ -F "file=@/path/to/video.mp4" \ -F "title=My Amazing Video" \ -F "description=Check out this cool content!" \ -F "privacyStatus=public" \ -F "tags=vlog,lifestyle,travel" \ -F "madeForKids=false" \ -F "containsSyntheticMedia=true"

Example Response

{ "success": true, "message": "Upload queued successfully", "data": { "uploadId": "upl_987654321", "status": "pending", "jobId": "job_123" } }