{"platforms":{"youtube":{"platform":"youtube","display_name":"YouTube","fields":[{"name":"title","type":"string","required":false,"description":"If empty, uses the content title. YouTube truncates at 100 characters.","default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"text","custom_component":null,"placeholder":"Video title (max 100 characters)","hint":"If empty, uses the content title. YouTube truncates at 100 characters.","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"description","type":"string","required":false,"description":"If empty, uses the content description. Max 5000 characters. Supports links and hashtags.","default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"textarea","custom_component":null,"placeholder":"Video description...","hint":"If empty, uses the content description. Max 5000 characters. Supports links and hashtags.","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"privacy","type":"enum","required":false,"description":"Public: anyone can find and watch. Unlisted: only people with the link. Private: only you.","default":"public","enum_values":["public","private","unlisted"],"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"select","custom_component":null,"placeholder":null,"hint":"Public: anyone can find and watch. Unlisted: only people with the link. Private: only you.","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"category_id","type":"string","required":false,"description":"YouTube video category. Helps with discoverability and recommendations.","default":null,"enum_values":["1","2","10","15","17","19","20","22","23","24","25","26","27","28","29"],"enum_labels":{"1":"Film & Animation","2":"Autos & Vehicles","10":"Music","15":"Pets & Animals","17":"Sports","19":"Travel & Events","20":"Gaming","22":"People & Blogs","23":"Comedy","24":"Entertainment","25":"News & Politics","26":"Howto & Style","27":"Education","28":"Science & Technology","29":"Nonprofits & Activism"},"max_length":null,"min_length":null,"ui_type":"select","custom_component":null,"placeholder":null,"hint":"YouTube video category. Helps with discoverability and recommendations.","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"playlist_id","type":"string","required":false,"description":"Add the video to a YouTube playlist. Requires fetching your playlists from YouTube.","default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"custom","custom_component":"playlist_selector","placeholder":null,"hint":"Add the video to a YouTube playlist. Requires fetching your playlists from YouTube.","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"tags","type":"array[string]","required":false,"description":"Keywords that help viewers find your video. Max 500 tags, each up to 30 characters. If empty, uses content tags.","default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"tag_input","custom_component":null,"placeholder":"Add a tag...","hint":"Keywords that help viewers find your video. Max 500 tags, each up to 30 characters. If empty, uses content tags.","max_count":500,"items_type":"string","items_schema":null,"accept":null},{"name":"notify_subscribers","type":"boolean","required":false,"description":"Send a notification to your subscribers about this upload. Disable if uploading many videos at once.","default":true,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"boolean","custom_component":null,"placeholder":null,"hint":"Send a notification to your subscribers about this upload. Disable if uploading many videos at once.","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"allow_embedding","type":"boolean","required":false,"description":"Allow other websites to embed this video. Disabling restricts playback to YouTube only.","default":true,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"boolean","custom_component":null,"placeholder":null,"hint":"Allow other websites to embed this video. Disabling restricts playback to YouTube only.","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"license","type":"enum","required":false,"description":"Standard YouTube license or Creative Commons (CC-BY). CC-BY allows others to reuse your video.","default":"youtube","enum_values":["youtube","creativeCommon"],"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"select","custom_component":null,"placeholder":null,"hint":"Standard YouTube license or Creative Commons (CC-BY). CC-BY allows others to reuse your video.","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"thumbnail_url","type":"string","required":false,"description":"Custom thumbnail image. Recommended: 1280x720px, max 2MB. JPG, PNG, or GIF. If not set, YouTube auto-generates thumbnails from the video.","default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"image_upload","custom_component":null,"placeholder":null,"hint":"Custom thumbnail image. Recommended: 1280x720px, max 2MB. JPG, PNG, or GIF. If not set, YouTube auto-generates thumbnails from the video.","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"cover_frame_timestamp","type":"number","required":false,"description":"Pick a frame from the video as the thumbnail. Enter the timestamp in seconds. Ignored if a custom thumbnail image is uploaded.","default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"number","custom_component":null,"placeholder":null,"hint":"Pick a frame from the video as the thumbnail. Enter the timestamp in seconds. Ignored if a custom thumbnail image is uploaded.","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"subtitle_url","type":"string","required":false,"description":"Upload an SRT subtitle file for this video","default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"file","custom_component":null,"placeholder":null,"hint":"Upload an SRT subtitle file for this video","max_count":null,"items_type":null,"items_schema":null,"accept":".srt"},{"name":"made_for_kids","type":"boolean","required":false,"description":"Declare if this video is made for children under 13 (required by COPPA law). Affects comments, notifications, and personalized ads.","default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"boolean","custom_component":null,"placeholder":null,"hint":"Declare if this video is made for children under 13 (required by COPPA law). Affects comments, notifications, and personalized ads.","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"self_declared_made_for_kids","type":"boolean","required":false,"description":"Same as Made for Kids — YouTube uses this field internally. Set both to the same value.","default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"boolean","custom_component":null,"placeholder":null,"hint":"Same as Made for Kids — YouTube uses this field internally. Set both to the same value.","max_count":null,"items_type":null,"items_schema":null,"accept":null}],"json_schema":{"description":"YouTube-specific publishing settings.","properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Override Content.title","title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"privacy":{"default":"public","enum":["public","private","unlisted"],"title":"Privacy","type":"string"},"category_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Category Id"},"playlist_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Playlist Id"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Tags"},"notify_subscribers":{"default":true,"title":"Notify Subscribers","type":"boolean"},"allow_embedding":{"default":true,"title":"Allow Embedding","type":"boolean"},"license":{"default":"youtube","enum":["youtube","creativeCommon"],"title":"License","type":"string"},"thumbnail_url":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"URL to custom thumbnail image (replaces auto-generated thumbnails)","title":"Thumbnail Url"},"cover_frame_timestamp":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Timestamp in seconds to extract a frame from the video as the thumbnail. Ignored if thumbnail_url is set. Uses FFmpeg to extract the frame server-side.","title":"Cover Frame Timestamp"},"subtitle_url":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"URL to SRT caption file stored in GCS","title":"Subtitle Url"},"made_for_kids":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Made For Kids"},"self_declared_made_for_kids":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Self Declared Made For Kids"}},"title":"YoutubeSettings","type":"object"}},"instagram":{"platform":"instagram","display_name":"Instagram","fields":[{"name":"caption","type":"string","required":false,"description":"If empty, uses the content description. Max 2200 characters.","default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"textarea","custom_component":null,"placeholder":"Write a caption for your Reel...","hint":"If empty, uses the content description. Max 2200 characters.","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"collaborators","type":"array[string]","required":false,"description":"Invite up to 3 Instagram accounts as co-authors. The Reel appears on both profiles after they accept.","default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"tag_input","custom_component":null,"placeholder":"@username","hint":"Invite up to 3 Instagram accounts as co-authors. The Reel appears on both profiles after they accept.","max_count":3,"items_type":"string","items_schema":null,"accept":null},{"name":"location_id","type":"string","required":false,"description":"Numeric ID of a Facebook Page location. Requires the Page to have a physical address.","default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"text","custom_component":null,"placeholder":"Facebook Page location ID","hint":"Numeric ID of a Facebook Page location. Requires the Page to have a physical address.","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"cover_url","type":"string","required":false,"description":"Upload a custom cover image. If set, the timestamp cover is ignored.","default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"custom","custom_component":"cover_image_upload","placeholder":null,"hint":"Upload a custom cover image. If set, the timestamp cover is ignored.","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"cover_timestamp_ms","type":"integer","required":false,"description":"Pick a frame from the video to use as cover. Ignored if a custom cover image is set.","default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"custom","custom_component":"cover_picker","placeholder":null,"hint":"Pick a frame from the video to use as cover. Ignored if a custom cover image is set.","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"user_tags","type":"array","required":false,"description":"Tag up to 20 Instagram accounts in this Reel. Users already added as collaborators are excluded automatically.","default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"tag_input","custom_component":null,"placeholder":"@username","hint":"Tag up to 20 Instagram accounts in this Reel. Users already added as collaborators are excluded automatically.","max_count":20,"items_type":"object","items_schema":{"username":"string"},"accept":null},{"name":"share_to_feed","type":"boolean","required":false,"description":"When enabled, the Reel also appears in your profile grid. Recommended for reach.","default":true,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"boolean","custom_component":null,"placeholder":null,"hint":"When enabled, the Reel also appears in your profile grid. Recommended for reach.","max_count":null,"items_type":null,"items_schema":null,"accept":null}],"json_schema":{"description":"Instagram-specific publishing settings.","properties":{"caption":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Override Content.description","title":"Caption"},"collaborators":{"anyOf":[{"items":{"type":"string"},"maxItems":3,"type":"array"},{"type":"null"}],"default":null,"title":"Collaborators"},"location_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Location Id"},"cover_url":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"URL to cover image for the Reel","title":"Cover Url"},"cover_timestamp_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Timestamp in ms for video cover frame (thumb_offset). Ignored if cover_url is set.","title":"Cover Timestamp Ms"},"user_tags":{"anyOf":[{"items":{"additionalProperties":{"type":"string"},"type":"object"},"maxItems":20,"type":"array"},{"type":"null"}],"default":null,"description":"User tags: [{'username': 'user1'}, ...] (max 20, excluding collaborators)","title":"User Tags"},"share_to_feed":{"default":true,"title":"Share To Feed","type":"boolean"}},"title":"InstagramSettings","type":"object"}},"facebook":{"platform":"facebook","display_name":"Facebook","fields":[{"name":"title","type":"string","required":false,"description":"Title for your video. If empty, uses the content title.","default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"text","custom_component":null,"placeholder":"Video title (max 255 characters)","hint":"Title for your video. If empty, uses the content title.","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"description","type":"string","required":false,"description":"Description for your video post. Max 5000 characters. If empty, uses the content description.","default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"textarea","custom_component":null,"placeholder":"Write a description for your video...","hint":"Description for your video post. Max 5000 characters. If empty, uses the content description.","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"page_id","type":"string","required":true,"description":"The Facebook Page to publish to. You must have admin access to this Page.","default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"text","custom_component":null,"placeholder":null,"hint":"The Facebook Page to publish to. You must have admin access to this Page.","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"post_type","type":"enum","required":false,"description":"Automatic (the default): a vertical video that meets the Reel requirements is published as a Reel, anything else as a regular video. Reel: short vertical video (3-90s, 9:16, max 1GB), better organic reach. Video: any shape, up to 240min, max 10GB.","default":"auto","enum_values":["auto","reel","video"],"enum_labels":{"auto":"Automatic (Reel for vertical, video otherwise)","reel":"Reel","video":"Regular Video"},"max_length":null,"min_length":null,"ui_type":"select","custom_component":null,"placeholder":null,"hint":"Automatic (the default): a vertical video that meets the Reel requirements is published as a Reel, anything else as a regular video. Reel: short vertical video (3-90s, 9:16, max 1GB), better organic reach. Video: any shape, up to 240min, max 10GB.","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"first_comment","type":"string","required":false,"description":"Automatically post a comment after publishing. Useful for links or hashtags that you don't want in the description.","default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"textarea","custom_component":null,"placeholder":"Write a first comment...","hint":"Automatically post a comment after publishing. Useful for links or hashtags that you don't want in the description.","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"thumbnail_url","type":"string","required":false,"description":"Custom thumbnail for your video. Only available for regular videos — Reels use auto-generated covers. Recommended: 1280x720px.","default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"custom","custom_component":"cover_image_upload","placeholder":null,"hint":"Custom thumbnail for your video. Only available for regular videos — Reels use auto-generated covers. Recommended: 1280x720px.","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"cover_frame_timestamp","type":"number","required":false,"description":"Timestamp in seconds to extract a frame from the video as the thumbnail. Ignored if thumbnail_url is set. Uses FFmpeg to extract the frame server-side. Only for regular videos, ignored for Reels.","default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"number","custom_component":null,"placeholder":null,"hint":null,"max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"embeddable","type":"boolean","required":false,"description":"Allow other websites to embed this video. Only applies to regular videos, not Reels.","default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"boolean","custom_component":null,"placeholder":null,"hint":"Allow other websites to embed this video. Only applies to regular videos, not Reels.","max_count":null,"items_type":null,"items_schema":null,"accept":null}],"json_schema":{"description":"Facebook-specific publishing settings.","properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"page_id":{"description":"Facebook Page ID (required)","title":"Page Id","type":"string"},"post_type":{"anyOf":[{"enum":["auto","reel","video"],"type":"string"},{"type":"null"}],"default":null,"title":"Post Type"},"first_comment":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"First Comment"},"thumbnail_url":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"URL to custom thumbnail image (only for regular videos, ignored for Reels)","title":"Thumbnail Url"},"cover_frame_timestamp":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Timestamp in seconds to extract a frame from the video as the thumbnail. Ignored if thumbnail_url is set. Uses FFmpeg to extract the frame server-side. Only for regular videos, ignored for Reels.","title":"Cover Frame Timestamp"},"embeddable":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"Allow embedding this video on external websites (only for regular videos)","title":"Embeddable"}},"required":["page_id"],"title":"FacebookSettings","type":"object"}},"tiktok":{"platform":"tiktok","display_name":"TikTok","fields":[{"name":"title","type":"string","required":false,"description":"TikTok uses this as the video description/caption. Max 2200 characters. Supports #hashtags and @mentions. If empty, uses the content title.","default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"textarea","custom_component":null,"placeholder":"Write a description for your TikTok...","hint":"TikTok uses this as the video description/caption. Max 2200 characters. Supports #hashtags and @mentions. If empty, uses the content title.","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"privacy","type":"enum","required":false,"description":"Who can view this video after publishing.","default":"public","enum_values":["public","followers","friends","private"],"enum_labels":{"public":"Everyone","followers":"Followers","friends":"Friends (mutual follows)","private":"Only me"},"max_length":null,"min_length":null,"ui_type":"select","custom_component":null,"placeholder":null,"hint":"Who can view this video after publishing.","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"allow_duets","type":"boolean","required":false,"description":"Allow other users to create Duet videos alongside yours.","default":false,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"boolean","custom_component":null,"placeholder":null,"hint":"Allow other users to create Duet videos alongside yours.","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"allow_stitch","type":"boolean","required":false,"description":"Allow other users to use clips from your video in their own (Stitch).","default":false,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"boolean","custom_component":null,"placeholder":null,"hint":"Allow other users to use clips from your video in their own (Stitch).","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"allow_comments","type":"boolean","required":false,"description":"Allow comments on this video.","default":true,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"boolean","custom_component":null,"placeholder":null,"hint":"Allow comments on this video.","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"brand_content_toggle","type":"boolean","required":false,"description":"Enable if this is a paid partnership or sponsored content. Required by TikTok's branded content policy.","default":false,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"boolean","custom_component":null,"placeholder":null,"hint":"Enable if this is a paid partnership or sponsored content. Required by TikTok's branded content policy.","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"brand_organic_toggle","type":"boolean","required":false,"description":"Enable if this promotes your own brand/business but is not a paid partnership.","default":false,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"boolean","custom_component":null,"placeholder":null,"hint":"Enable if this promotes your own brand/business but is not a paid partnership.","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"video_cover_timestamp_ms","type":"integer","required":false,"description":"Choose a frame from the video to use as cover. If not set, TikTok auto-selects a frame.","default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"custom","custom_component":"cover_picker","placeholder":null,"hint":"Choose a frame from the video to use as cover. If not set, TikTok auto-selects a frame.","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"is_aigc","type":"boolean","required":false,"description":"Disclose that this content is AI-generated. Required by TikTok policy when applicable.","default":false,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"boolean","custom_component":null,"placeholder":null,"hint":"Disclose that this content is AI-generated. Required by TikTok policy when applicable.","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"auto_add_music","type":"boolean","required":false,"description":"Let TikTok automatically add background music from their library. The music is chosen based on your video content.","default":false,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"boolean","custom_component":null,"placeholder":null,"hint":"Let TikTok automatically add background music from their library. The music is chosen based on your video content.","max_count":null,"items_type":null,"items_schema":null,"accept":null}],"json_schema":{"description":"TikTok-specific publishing settings.","properties":{"title":{"anyOf":[{"maxLength":2200,"type":"string"},{"type":"null"}],"default":null,"title":"Title"},"privacy":{"default":"public","enum":["public","private","friends","followers"],"title":"Privacy","type":"string"},"allow_duets":{"default":false,"title":"Allow Duets","type":"boolean"},"allow_stitch":{"default":false,"title":"Allow Stitch","type":"boolean"},"allow_comments":{"default":true,"title":"Allow Comments","type":"boolean"},"brand_content_toggle":{"default":false,"title":"Brand Content Toggle","type":"boolean"},"brand_organic_toggle":{"default":false,"title":"Brand Organic Toggle","type":"boolean"},"video_cover_timestamp_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Timestamp in ms for video cover image","title":"Video Cover Timestamp Ms"},"is_aigc":{"default":false,"description":"Disclose AI-generated content (TikTok requirement)","title":"Is Aigc","type":"boolean"},"auto_add_music":{"default":false,"description":"Let TikTok automatically add music to the video","title":"Auto Add Music","type":"boolean"}},"title":"TiktokSettings","type":"object"}},"linkedin":{"platform":"linkedin","display_name":"LinkedIn","fields":[{"name":"title","type":"string","required":false,"description":"This appears as the post text above your video. Max 700 characters. Supports #hashtags and @mentions. If empty, uses the content title.","default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"textarea","custom_component":null,"placeholder":"Write your post text...","hint":"This appears as the post text above your video. Max 700 characters. Supports #hashtags and @mentions. If empty, uses the content title.","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"description","type":"string","required":false,"description":"Description shown on the video embed. Max 3000 characters. If empty, uses the content description.","default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"textarea","custom_component":null,"placeholder":"Video description...","hint":"Description shown on the video embed. Max 3000 characters. If empty, uses the content description.","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"visibility","type":"enum","required":false,"description":"Who can see this post on LinkedIn.","default":"PUBLIC","enum_values":["PUBLIC","CONNECTIONS"],"enum_labels":{"PUBLIC":"Anyone (Public)","CONNECTIONS":"Connections only"},"max_length":null,"min_length":null,"ui_type":"select","custom_component":null,"placeholder":null,"hint":"Who can see this post on LinkedIn.","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"thumbnail_url","type":"string","required":false,"description":"Custom thumbnail for your video post. If not set, LinkedIn auto-generates a thumbnail from the video.","default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"custom","custom_component":"cover_image_upload","placeholder":null,"hint":"Custom thumbnail for your video post. If not set, LinkedIn auto-generates a thumbnail from the video.","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"cover_frame_timestamp","type":"number","required":false,"description":"Timestamp in seconds to extract a frame from the video as the thumbnail. Ignored if thumbnail_url is set. Uses FFmpeg to extract the frame server-side.","default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"number","custom_component":null,"placeholder":null,"hint":null,"max_count":null,"items_type":null,"items_schema":null,"accept":null}],"json_schema":{"description":"LinkedIn-specific publishing settings.","properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"visibility":{"default":"PUBLIC","enum":["PUBLIC","CONNECTIONS"],"title":"Visibility","type":"string"},"thumbnail_url":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"URL to custom thumbnail image for the video post","title":"Thumbnail Url"},"cover_frame_timestamp":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Timestamp in seconds to extract a frame from the video as the thumbnail. Ignored if thumbnail_url is set. Uses FFmpeg to extract the frame server-side.","title":"Cover Frame Timestamp"}},"title":"LinkedinSettings","type":"object"}},"vimeo":{"platform":"vimeo","display_name":"Vimeo","fields":[{"name":"title","type":"string","required":false,"description":null,"default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"text","custom_component":null,"placeholder":null,"hint":null,"max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"description","type":"string","required":false,"description":null,"default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"text","custom_component":null,"placeholder":null,"hint":null,"max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"privacy","type":"enum","required":false,"description":"Who can view this video","default":"anybody","enum_values":["anybody","nobody","unlisted","password"],"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"select","custom_component":null,"placeholder":null,"hint":"Who can view this video","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"password","type":"string","required":false,"description":"Required if privacy is set to password","default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"text","custom_component":null,"placeholder":"Video password","hint":"Required if privacy is set to password","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"thumbnail_url","type":"string","required":false,"description":"Custom thumbnail for this video","default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"image_upload","custom_component":null,"placeholder":null,"hint":"Custom thumbnail for this video","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"tags","type":"array[string]","required":false,"description":"Comma-separated tags","default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"tag_input","custom_component":null,"placeholder":null,"hint":"Comma-separated tags","max_count":null,"items_type":null,"items_schema":null,"accept":null}],"json_schema":{"description":"Vimeo-specific publishing settings.","properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"privacy":{"default":"anybody","enum":["anybody","nobody","unlisted","password"],"title":"Privacy","type":"string"},"password":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Required if privacy='password'","title":"Password"},"thumbnail_url":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Thumbnail Url"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Tags"}},"title":"VimeoSettings","type":"object"}},"vimeo_ott":{"platform":"vimeo_ott","display_name":"Vimeo OTT","fields":[{"name":"title","type":"string","required":false,"description":null,"default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"text","custom_component":null,"placeholder":null,"hint":null,"max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"description","type":"string","required":false,"description":null,"default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"text","custom_component":null,"placeholder":null,"hint":null,"max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"short_description","type":"string","required":false,"description":"Shown in browse/search results","default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"textarea","custom_component":null,"placeholder":"Short description (max 255 chars)","hint":"Shown in browse/search results","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"thumbnail_url","type":"string","required":false,"description":"Custom thumbnail for this video","default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"image_upload","custom_component":null,"placeholder":null,"hint":"Custom thumbnail for this video","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"tags","type":"array[string]","required":false,"description":"Comma-separated tags","default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"tag_input","custom_component":null,"placeholder":null,"hint":"Comma-separated tags","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"collection_id","type":"string","required":false,"description":"Add this video to a collection after upload","default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"text","custom_component":null,"placeholder":"VHX collection ID","hint":"Add this video to a collection after upload","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"content_rating","type":"string","required":false,"description":"Content rating for this video","default":null,"enum_values":["nr","g","pg","pg13","r","nc17","x","unrated"],"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"select","custom_component":null,"placeholder":null,"hint":"Content rating for this video","max_count":null,"items_type":null,"items_schema":null,"accept":null}],"json_schema":{"description":"Vimeo OTT-specific publishing settings.","properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"short_description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Short Description"},"thumbnail_url":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Thumbnail Url"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Tags"},"collection_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Target collection/season on OTT platform","title":"Collection Id"},"content_rating":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Content Rating"}},"title":"VimeoOttSettings","type":"object"}},"mux":{"platform":"mux","display_name":"Mux","fields":[{"name":"title","type":"string","required":false,"description":null,"default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"text","custom_component":null,"placeholder":null,"hint":null,"max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"description","type":"string","required":false,"description":null,"default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"text","custom_component":null,"placeholder":null,"hint":null,"max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"playback_policy","type":"string","required":false,"description":"Public allows anyone with the URL to stream","default":"public","enum_values":["public","signed"],"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"select","custom_component":null,"placeholder":null,"hint":"Public allows anyone with the URL to stream","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"mp4_support","type":"string","required":false,"description":"Enable MP4 download support","default":"capped-1080p","enum_values":["capped-1080p","none","audio-only"],"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"select","custom_component":null,"placeholder":null,"hint":"Enable MP4 download support","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"thumbnail_url","type":"string","required":false,"description":null,"default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"text","custom_component":null,"placeholder":null,"hint":null,"max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"encoding_tier","type":"string","required":false,"description":"Smart encoding optimises quality per title","default":null,"enum_values":["smart","baseline"],"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"select","custom_component":null,"placeholder":null,"hint":"Smart encoding optimises quality per title","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"max_resolution_tier","type":"string","required":false,"description":"Maximum resolution to encode and store","default":null,"enum_values":["1080p","1440p","2160p"],"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"select","custom_component":null,"placeholder":null,"hint":"Maximum resolution to encode and store","max_count":null,"items_type":null,"items_schema":null,"accept":null},{"name":"passthrough","type":"string","required":false,"description":"Arbitrary metadata included in Mux webhooks","default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"text","custom_component":null,"placeholder":"Custom passthrough string","hint":"Arbitrary metadata included in Mux webhooks","max_count":null,"items_type":null,"items_schema":null,"accept":null}],"json_schema":{"description":"Mux-specific publishing settings.","properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"playback_policy":{"default":"public","description":"public or signed","title":"Playback Policy","type":"string"},"mp4_support":{"default":"capped-1080p","description":"capped-1080p or none","title":"Mp4 Support","type":"string"},"thumbnail_url":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Thumbnail Url"},"encoding_tier":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"smart or baseline","title":"Encoding Tier"},"max_resolution_tier":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"1080p, 1440p, or 2160p","title":"Max Resolution Tier"},"passthrough":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Arbitrary metadata stored on the Mux asset","title":"Passthrough"}},"title":"MuxSettings","type":"object"}},"farcaster":{"platform":"farcaster","display_name":"Farcaster","fields":[{"name":"cast_text","type":"string","required":false,"description":"If empty, uses the content title. Max 320 characters including the embedded video URL.","default":null,"enum_values":null,"enum_labels":null,"max_length":null,"min_length":null,"ui_type":"textarea","custom_component":null,"placeholder":"What's this cast about?","hint":"If empty, uses the content title. Max 320 characters including the embedded video URL.","max_count":null,"items_type":null,"items_schema":null,"accept":null}],"json_schema":{"description":"Farcaster-specific publishing settings.\n\nFarcaster publishes a cast embedding an existing video URL; it never\nuploads media. The signer and the video URL are resolved at publish\ntime (from the connected credential and from Firestore respectively),\nso the only configurable field is the cast text.","properties":{"cast_text":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Override the cast text (max 320 chars incl. embed URL). Defaults to the content title.","title":"Cast Text"}},"title":"FarcasterSettings","type":"object"}}}}