otter-fetch

star 161

Fetch Otter.ai transcript data. Sub-skill used by cache-notes and fill-participants when Notes: contains an Otter URL.

benoror By benoror schedule Updated 6/11/2026

name: otter-fetch description: "Fetch Otter.ai transcript data. Sub-skill used by cache-notes and fill-participants when Notes: contains an Otter URL." license: MIT

Otter Fetch

Single place for obtaining Otter.ai transcript data. No direct slash command — other skills invoke this when they encounter an Otter.ai URL (e.g. in Notes: frontmatter).

Usage

This skill has no slash command. It's a sub-skill: /cache-notes and /fill-participants invoke its workflow (and run parse_otter.js) when a meeting's Notes: contains an https://otter.ai/u/... URL.

When to use

  • cache-notes: When caching a meeting that has https://otter.ai/u/{otid} in Notes: — need callout markdown to embed.
  • fill-participants: When resolving participants for a meeting that only has Otter links (no Google Doc) — need speaker names from the transcript.

How to get the data

Otter has no public API. Use user-pasted JSON:

  1. Extract otid from the URL: https://otter.ai/u/aBcDeFgHiJkLmNoPqRsTotid = aBcDeFgHiJkLmNoPqRsT.
  2. Ask the user to copy the JSON response from GET https://otter.ai/forward/api/v1/speech?otid={otid} (e.g. from DevTools → Network while signed in, or from a signed-in request).
  3. User pastes the JSON; the agent (or script) parses it.

Outputs (same JSON, different consumers)

The pasted JSON has speech with:

Use case What to use How
cache-notes Callout markdown Run parse_otter.js with JSON on stdin → stdout is ## 🤖 AI Notes / ### Otter block with [!otter_notes]-, [!otter_todos]-, [!otter_transcript]-.
fill-participants Speaker names From speech.speakers: array of { speaker_name }. Use those names with people-resolver to build Participants:.

So one paste can serve both skills if needed (e.g. cache-notes runs the script; fill-participants reads speech.speakers from the same JSON or from the cached transcript callout).

Script: parse_otter.js

In this folder: parse_otter.js reads the full Otter speech JSON from stdin and writes callout markdown to stdout (for cache-notes).

node .agents/skills/otter-fetch/parse_otter.js < pasted.json

Output is the exact block to append under ## 🤖 AI Notes (including ### Otter and the three callouts). Caller appends it to the note and sets NotesCached:.

Important notes

  • Always extract otid from the share URL (query params like ?utm_source=copy_url can be ignored).
  • If the user doesn't have the JSON, they can open the Otter meeting page while signed in, open DevTools → Network, reload, and copy the response body of the speech?otid=... request.
Install via CLI
npx skills add https://github.com/benoror/obsidianos_work --skill otter-fetch
Repository Details
star Stars 161
call_split Forks 12
navigation Branch main
article Path SKILL.md
More from Creator