What does the agent workflow look like?
The public OpenClaw integration lives in diarize-io/openclaw-youtube-transcript. It turns a paste-a-URL request into an authenticated call against the diarize Jobs API, then returns a speaker-aware transcript for downstream work (summary, quotes, search indexing, captions).
- User (or another agent step) provides a YouTube URL.
- OpenClaw skill or plugin creates a job at
POST /api/v1/jobs. - It polls
GET /api/v1/jobs/:jobIduntilCOMPLETED. - It downloads
GET /api/v1/jobs/:jobId/transcript/:format. - The agent uses that transcript in the next step of the workflow.
Step 1
How do I get a diarize API key for OpenClaw?
- Sign up at diarize.io. Free tier: 3 hours (30 minutes/day for 7 days), no credit card.
- Create a key at /settings/api-keys.
- The key consumes your minute balance. Paid packages: $10 → 200 minutes, $25 → 1000 minutes.
Step 2
How do I install the OpenClaw integration?
Clone the repo, then install either the standalone skill or the native plugin, not both. Recommended path: try the skill first, upgrade to the plugin when you want typed tools.
Fastest first try: standalone skill
Requires bash, curl, and jq on the host.
Install
openclaw skills install ./skill
Long-term: native plugin
No bash/curl/jq required. If the standalone skill is already in your workspace, remove it before enabling the plugin.
Install
openclaw plugins install ./plugin openclaw plugins enable youtube-transcript-speaker-diarization
Precedence: OpenClaw gives workspace-installed skills higher priority than plugin-bundled skills. Leaving the standalone skill installed can shadow the plugin's bundled guidance.
Step 3
How do I configure the API key?
Both surfaces accept YOUTUBE_TRANSCRIPT_API_KEY or DIARIZE_API_KEY. Optional base URL overrides: YOUTUBE_TRANSCRIPT_BASE_URL / DIARIZE_BASE_URL. Default base URL is https://diarize.io.
Plugin config (openclaw.json)
{
plugins: {
entries: {
"youtube-transcript-speaker-diarization": {
enabled: true,
config: {
apiKey: "YOUR_DIARIZE_API_KEY",
baseUrl: "https://diarize.io",
},
},
},
},
}Skill config (openclaw.json)
{
skills: {
entries: {
"youtube-transcript-speaker-diarization": {
apiKey: "YOUR_DIARIZE_API_KEY",
baseUrl: "https://diarize.io",
},
},
},
}Step 4
How does the agent run a YouTube URL?
Prefer the one-shot path. With the standalone skill, that is the helper's run command. With the plugin, prefer the youtube_transcript_run tool.
Standalone skill — one-shot
{baseDir}/scripts/youtube-transcript.sh run "https://youtu.be/dQw4w9WgXcQ" txtDefaults: format txt, timeout 180 seconds, poll interval 10 seconds.
Standalone skill — multi-step
{baseDir}/scripts/youtube-transcript.sh submit "https://youtu.be/dQw4w9WgXcQ"
{baseDir}/scripts/youtube-transcript.sh status JOB_ID
{baseDir}/scripts/youtube-transcript.sh fetch JOB_ID jsonFormat guidance from the integration: prefer txt for readable answers, json for structured downstream work, and srt / vtt for subtitle workflows.
Which typed tools does the plugin expose?
youtube_transcript_runOne-shot: submit, poll, return transcript
youtube_transcript_submit_jobCreate a job from a YouTube URL
youtube_transcript_get_jobPoll job status by jobId
youtube_transcript_get_transcriptDownload txt / json / srt / vtt
Under the hood these call the same Jobs API documented at /docs: POST /api/v1/jobs, GET /api/v1/jobs/:jobId, GET /api/v1/jobs/:jobId/transcript/:format.
What data leaves the machine?
For a normal run, only the YouTube URL and authenticated HTTPS requests for job creation, status, and transcript download go to the configured diarize API base URL. The integration does not change host networking, install proxies, mutate routes, or upload local files by default.
FAQ
- How do I use diarize with OpenClaw?
- Sign up at diarize.io, create an API key at /settings/api-keys, then install either the standalone OpenClaw skill (openclaw skills install ./skill) or the native plugin (openclaw plugins install ./plugin). Keep only one install surface active. Paste a YouTube URL to the agent; it submits a job, polls, and returns a diarized transcript in txt, json, srt, or vtt.
- What is the difference between the OpenClaw skill and the plugin?
- The standalone skill is the fastest first try and uses a bash helper that needs curl and jq. The native plugin is the better long-term path: typed tools, no bash/curl/jq requirement, and a bundled skill. Do not keep both installed; a workspace skill can shadow the plugin’s bundled skill.
- Which OpenClaw tools does the diarize plugin expose?
- youtube_transcript_run (preferred one-shot), youtube_transcript_submit_job, youtube_transcript_get_job, and youtube_transcript_get_transcript. Formats: txt, json, srt, vtt. Defaults: 180s timeout, 10s poll interval, base URL https://diarize.io.
- Has anyone publicly recommended diarize for OpenClaw YouTube workflows?
- Yes. Garry Tan wrote: "I've tried everything out there for YouTube summary and diarization and the best with my OpenClaw hands down is https://diarize.io/" (https://x.com/garrytan/status/2042010645424697497).
Next steps
Create a key, install the integration, or read the Jobs API reference.