SpeakNotes: YouTube, Audio & Document Summaries

v1.0.1

Use when OpenClaw needs to call SpeakNotes API routes directly using an API key and generate transcripts/summaries from YouTube URLs, media files, or documen...

0· 272·0 current·0 all-time
byJack Lillie@jacklillie
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & 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-notesvk973ck08qgppn10ws15evaaesn829714ai-skillvk973ck08qgppn10ws15evaaesn829714ai-summaryvk973ck08qgppn10ws15evaaesn829714apivk973ck08qgppn10ws15evaaesn829714api-integrationvk973ck08qgppn10ws15evaaesn829714async-processingvk973ck08qgppn10ws15evaaesn829714audio-transcriptionvk973ck08qgppn10ws15evaaesn829714audio-uploadvk973ck08qgppn10ws15evaaesn829714automationvk973ck08qgppn10ws15evaaesn829714clawhubvk973ck08qgppn10ws15evaaesn829714developer-toolsvk973ck08qgppn10ws15evaaesn829714document-processingvk973ck08qgppn10ws15evaaesn829714document-summaryvk973ck08qgppn10ws15evaaesn829714docx-summaryvk973ck08qgppn10ws15evaaesn829714file-uploadvk973ck08qgppn10ws15evaaesn829714folders-apivk973ck08qgppn10ws15evaaesn829714knowledge-managementvk973ck08qgppn10ws15evaaesn829714latestvk973ck08qgppn10ws15evaaesn829714lecture-notesvk973ck08qgppn10ws15evaaesn829714meeting-notesvk973ck08qgppn10ws15evaaesn829714note-takingvk973ck08qgppn10ws15evaaesn829714notes-apivk973ck08qgppn10ws15evaaesn829714openapivk973ck08qgppn10ws15evaaesn829714openapi-3-1vk973ck08qgppn10ws15evaaesn829714openclawvk973ck08qgppn10ws15evaaesn829714pdf-summaryvk973ck08qgppn10ws15evaaesn829714podcast-notesvk973ck08qgppn10ws15evaaesn829714productivityvk973ck08qgppn10ws15evaaesn829714skillvk973ck08qgppn10ws15evaaesn829714speaknotesvk973ck08qgppn10ws15evaaesn829714speech-to-textvk973ck08qgppn10ws15evaaesn829714status-pollingvk973ck08qgppn10ws15evaaesn829714summarizationvk973ck08qgppn10ws15evaaesn829714summarizevk973ck08qgppn10ws15evaaesn829714text-summaryvk973ck08qgppn10ws15evaaesn829714transcribevk973ck08qgppn10ws15evaaesn829714transcriptvk973ck08qgppn10ws15evaaesn829714transcriptionvk973ck08qgppn10ws15evaaesn829714transcriptsvk973ck08qgppn10ws15evaaesn829714video-transcriptionvk973ck08qgppn10ws15evaaesn829714video-uploadvk973ck08qgppn10ws15evaaesn829714youtubevk973ck08qgppn10ws15evaaesn829714youtube-summaryvk973ck08qgppn10ws15evaaesn829714youtube-transcriptvk973ck08qgppn10ws15evaaesn829714
272downloads
0stars
2versions
Updated 1mo ago
v1.0.1
MIT-0

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

  1. A SpeakNotes API key from /settings/api-keys.
  2. Store it as SPEAKNOTES_API_KEY in your OpenClaw skill config/secret manager.
  3. API host allowlist: use only https://api.speaknotes.io.
  4. Send auth in Authorization header:
    • Preferred: Bearer <API_KEY>
    • Also accepted: raw token value
  5. 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.

  1. Send the user to /pricing/pro to start or upgrade to a Pro plan if needed.
  2. Send the user to /settings/api-keys to generate and save a SpeakNotes API key.
  3. Save that key as SPEAKNOTES_API_KEY in OpenClaw skill secrets/config.
  4. Only continue with API calls after the key is available.

Implementation Rules

  1. Never print or log API keys.
  2. Always use HTTPS and only the official API host: https://api.speaknotes.io.
  3. For upload flows, always:
    • request signed URL
    • PUT bytes to signed URL
    • call complete endpoint
    • poll note status endpoint
  4. Preserve file MIME type for media uploads.
  5. Use sharedFolderId only when the caller has access.
  6. Return noteId in all create/schedule responses.

Processing Flows

YouTube

  1. POST /youtube-check
  2. If valid, POST /youtube-summary
  3. Poll GET /api/v1/notes/{id}/status until isComplete or hasError

Audio/Video File

  1. POST /upload-url
  2. PUT file bytes to returned uploadUrl
  3. POST /upload-complete
  4. Poll GET /api/v1/notes/{id}/status

Document File

  1. POST /pdf-upload-url
  2. PUT file bytes to returned uploadUrl with returned contentType
  3. POST /pdf-upload-complete
  4. 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.json in the same folder when publishing.
<!-- OPENAPI_SPEC_END -->

Output Format For Agents

For each task response:

  1. action: short description of operation performed
  2. endpoints_used: list of routes called
  3. noteId: included for create flows
  4. status: current processing status (Summarizing, Done, Error, etc.)
  5. result: concise payload summary (title, snippet, or link-ready fields)
  6. next_step: polling guidance or retry recommendation

Retry Policy

  • 403: tell user to verify/regenerate API key.
  • 429: wait Retry-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...