360 Secure SkillHub
360 安全技能中心

SpeakNotes: YouTube, Audio & Document Summaries

为 OpenClaw 提供 SpeakNotes 直连 API 的使用契约:以 API Key 鉴权,对 YouTube 链接、音频/视频文件或文档执行转写与摘要,通过签名 URL 上传文件并轮询笔记状态,并覆盖笔记与文件夹查询、重试策略和统一的任务响应格式。实际处理在 SpeakNotes 服务端完成,随包仅含说明文档与 OpenAPI 规范。

jacklillie
jacklillie
热度 81.42
最近更新 2026-05-11 17:28:41
分类:效率依赖:第三方 API / 读写文件应用场景:摘要总结 / 笔记整理 / 工作流 / 自动化脚本 ...

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add speaknotes-youtube-audio-document-summarizer
Metadata
name
speaknotes-openclaw
description
Use when OpenClaw needs to call SpeakNotes API routes directly using an API key and generate transcripts/summaries from YouTube URLs, media files, or document files.
metadata
{"openclaw":{"homepage":"https://speaknotes.io/integrations/openclaw","requires":{"env":["SPEAKNOTES_API_KEY"]},"primaryEnv":"SPEAKNOTES_API_KEY"}}

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

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.

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.