Install
openclaw skills install youtube-video-publisherUpload videos and Shorts to YouTube. Use when the user says 'upload to YouTube', 'publish YouTube video', 'post a YouTube Short', 'upload video with thumbnail', or wants to upload videos with titles, descriptions, tags, thumbnails, and captions to their YouTube channel.
openclaw skills install youtube-video-publisherUpload videos and Shorts to YouTube with full metadata support. Powered by Boring.
https://boring.aiagent-me.com/mcp/t/xxxxx...) contains an embedded authentication token. Treat it like a password — do not share it publicly.Call boring_list_accounts and filter for youtube platform.
YouTube requires a video file. Gather from the user:
Upload files to get public URLs:
boring_upload_file with file_pathboring_upload_from_url to re-hostThe media_urls array follows a specific order:
media_urls: [
"https://...video.mp4", // [0] Video file (required)
"https://...thumbnail.jpg", // [1] Custom thumbnail (optional)
"https://...captions.srt" // [2] Caption/subtitle file (optional)
]
YouTube uses a special text format — title and description are separated by a double newline:
text: "My Video Title\n\nThis is the video description. It can be up to 5,000 characters.\n\n#tag1 #tag2 #tag3"
\n\n = Title (max 100 chars)Call boring_publish_post:
boring_publish_post(
account_id="<youtube_account_id>",
platform="youtube",
text="Video Title\n\nDescription of the video\n\n#shorts #trending",
media_urls=["https://...video.mp4", "https://...thumb.jpg"]
)
For YouTube Shorts: Include #shorts in the title or description, and use vertical (9:16) video under 60 seconds.
Show:
youtube.upload, youtube.readonly| Error | Solution |
|---|---|
MediaRequired | YouTube requires a video file |
VideoProcessingFailed | Check video format (MP4 recommended) or file may be corrupted |
MediaTooLarge | Video file too large |
TextTooLong | Title max 100 chars, description max 5,000 chars |
TokenExpired | Rare — refresh token auto-renews. Reconnect if needed |
Simple video upload:
boring_publish_post(
account_id="abc",
platform="youtube",
text="My Amazing Video\n\nCheck out this cool content!",
media_urls=["https://example.com/video.mp4"]
)
Full upload with thumbnail and captions:
boring_publish_post(
account_id="abc",
platform="youtube",
text="Tutorial: How to Use Boring\n\nStep-by-step guide to social media automation.\n\n#tutorial #automation #socialmedia",
media_urls=[
"https://example.com/tutorial.mp4",
"https://example.com/thumbnail.jpg",
"https://example.com/captions.srt"
]
)
Full API docs: boring-doc.aiagent-me.com