SpeakNotes: YouTube, Audio & Document Summaries
v1.0.1Use when OpenClaw needs to call SpeakNotes API routes directly using an API key and generate transcripts/summaries from YouTube URLs, media files, or documen...
Security Scan
OpenClaw
Benign
high confidencePurpose & Capability
Name/description (YouTube/audio/document summaries) align with the requirements: a single SPEAKNOTES_API_KEY and an OpenAPI contract for SpeakNotes endpoints. There are no unrelated credentials or unexpected binaries requested.
Instruction Scope
SKILL.md prescribes only API calls to the SpeakNotes host, upload flows using signed URLs, and polling for note status. It explicitly warns not to leak API keys and limits the host to https://api.speaknotes.io. Instructions do not request reading arbitrary files, other env vars, or system state outside the described flows.
Install Mechanism
Instruction-only skill with no install spec and no code files to write or execute; minimal disk or execution footprint.
Credentials
Only one required env var (SPEAKNOTES_API_KEY) declared as the primary credential, which is appropriate and necessary for the described API interactions. No other secrets or unrelated tokens are requested.
Persistence & Privilege
Skill is not force-included (always:false) and uses normal autonomous invocation defaults. It does not request elevated platform privileges or modify other skills' config.
Assessment
This skill appears coherent and only needs your SpeakNotes API key. Before installing: (1) store SPEAKNOTES_API_KEY in a secure secret store (do not paste it into chat), (2) verify the domain https://api.speaknotes.io and the SpeakNotes documentation to confirm the endpoints you expect, and (3) be aware upload flows use signed upload URLs (these are typically third-party storage endpoints like S3 for the file bytes) — the SKILL.md states not to send the API key to those signed URLs, which is correct. If you rely on push notifications, the optional fcmToken field can be provided; only supply it if you understand how it will be used. If you want extra assurance, review the included openapi.json to confirm no unexpected endpoints are present.Like a lobster shell, security has layers — review code before you run it.
Runtime requirements
EnvSPEAKNOTES_API_KEY
Primary envSPEAKNOTES_API_KEY
ai-notesai-skillai-summaryapiapi-integrationasync-processingaudio-transcriptionaudio-uploadautomationclawhubdeveloper-toolsdocument-processingdocument-summarydocx-summaryfile-uploadfolders-apiknowledge-managementlatestlecture-notesmeeting-notesnote-takingnotes-apiopenapiopenapi-3-1openclawpdf-summarypodcast-notesproductivityskillspeaknotesspeech-to-textstatus-pollingsummarizationsummarizetext-summarytranscribetranscripttranscriptiontranscriptsvideo-transcriptionvideo-uploadyoutubeyoutube-summaryyoutube-transcript
SpeakNotes OpenClaw Skill
This skill gives OpenClaw a production-ready contract for SpeakNotes direct API usage.
When To Use
- The user wants OpenClaw to transcribe or summarize content via SpeakNotes API.
- Input is one of:
- YouTube URL
- Audio/video file
- Document file (
pdf,docx,txt, etc.)
- The user needs note status polling, note retrieval, or folder retrieval.
Prerequisites
- A SpeakNotes API key from
/settings/api-keys. - Store it as
SPEAKNOTES_API_KEYin your OpenClaw skill config/secret manager. - API host allowlist: use only
https://api.speaknotes.io. - Send auth in
Authorizationheader:- Preferred:
Bearer <API_KEY> - Also accepted: raw token value
- Preferred:
- Never send API keys to any unverified or user-provided host.
OpenClaw config example:
{
"skills": {
"entries": {
"speaknotes-openclaw": {
"apiKey": "YOUR_SPEAKNOTES_API_KEY",
"env": {
"SPEAKNOTES_API_KEY": "YOUR_SPEAKNOTES_API_KEY"
}
}
}
}
}
Setup Phase (If API Key Is Missing)
Run this setup phase before any processing flow when the user has not saved an API key yet.
- Send the user to
/pricing/proto start or upgrade to a Pro plan if needed. - Send the user to
/settings/api-keysto generate and save a SpeakNotes API key. - Save that key as
SPEAKNOTES_API_KEYin OpenClaw skill secrets/config. - Only continue with API calls after the key is available.
Implementation Rules
- Never print or log API keys.
- Always use HTTPS and only the official API host:
https://api.speaknotes.io. - For upload flows, always:
- request signed URL
PUTbytes to signed URL- call complete endpoint
- poll note status endpoint
- Preserve file MIME type for media uploads.
- Use
sharedFolderIdonly when the caller has access. - Return
noteIdin all create/schedule responses.
Processing Flows
YouTube
POST /youtube-check- If valid,
POST /youtube-summary - Poll
GET /api/v1/notes/{id}/statusuntilisCompleteorhasError
Audio/Video File
POST /upload-urlPUTfile bytes to returneduploadUrlPOST /upload-complete- Poll
GET /api/v1/notes/{id}/status
Document File
POST /pdf-upload-urlPUTfile bytes to returneduploadUrlwith returnedcontentTypePOST /pdf-upload-complete- Poll
GET /api/v1/notes/{id}/status
OpenAPI Specification
<!-- OPENAPI_SPEC_START -->Generated by skills/speaknotes-openclaw/scripts/generate-openapi-spec.mjs.
Use ./openapi.json as the authoritative OpenAPI 3.1 contract for this skill.
- Includes YouTube validation/summarization, upload flows, note status, and folder endpoints.
- Keep this file and
openapi.jsonin the same folder when publishing.
Output Format For Agents
For each task response:
action: short description of operation performedendpoints_used: list of routes callednoteId: included for create flowsstatus: current processing status (Summarizing,Done,Error, etc.)result: concise payload summary (title, snippet, or link-ready fields)next_step: polling guidance or retry recommendation
Retry Policy
403: tell user to verify/regenerate API key.429: waitRetry-After(if provided) and retry once.5xx: retry once with exponential backoff; then return actionable failure.- Signed URL upload failures: request a fresh upload URL and retry from step 1.
Comments
Loading comments...
