publish.youtube
Operation: publish.youtube
Category: publish
Tags: youtube, upload, publish, video
Upload a video to YouTube via the Data API v3 resumable upload protocol
Runtime
Section titled “Runtime”Type: Native (built-in)
Timeout: 600s
Retries: 2 (ExponentialWithJitter)
Inputs
Section titled “Inputs”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
video_path | String | Yes | — | Local path or URL to the video file |
title | String | Yes | — | Video title |
description | String | No | — | Video description |
tags | JSON | No | — | Array of tag strings |
category_id | String | No | — | YouTube category ID (default 22 — People & Blogs) |
privacy_status | String | No | — | Privacy: public, unlisted, or private (default private) |
thumbnail_path | String | No | — | Thumbnail image path |
Outputs
Section titled “Outputs”| Name | Type | Description |
|---|---|---|
video_id | String | YouTube video ID |
url | String | Full YouTube watch URL |
status | String | Upload status |
Default Configuration
Section titled “Default Configuration”{ "api_key_context": "__secret.youtube"}import { WorkflowBuilder } from "@fabric-platform/sdk";
const workflow = new WorkflowBuilder("my-workflow") .node("publish-youtube", "tool", (n) => n.config({ operation: "publish.youtube", // ... node-specific config }) ) .build();from fabric_platform import FabricClient
fabric = FabricClient(api_key="fab_xxx")
wf_id = fabric.upsert_workflow("my-workflow", nodes=[ { "key": "publish-youtube", "kind": "tool", },])use fabric_sdk::FabricClient;
let client = FabricClient::new("http://localhost:3001", api_key)?;
let wf_id = client.upsert_workflow("my-workflow", serde_json::json!({ "nodes": [{ "key": "publish-youtube", "kind": "tool" }]})).await?;curl -X POST http://localhost:3001/v1/workflow-definitions \ -H "Authorization: Bearer $FABRIC_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "my-workflow", "nodes": [{ "key": "publish-youtube", "kind": "tool" }] }'