← Plugin catalog
Productivity

transcribe.so

transcribe.so v1.8.0

Who said what, and when

Create a free account to save this plugin.

From the developer

Listing not observed in the last 24 hours. Check collection status.

Declared capabilities

  • Transcribe audio and video links
  • Find who said what, and when
  • Answer questions with timestamped citations

Cost & access

transcribe.so sells nothing inside ChatGPT: no checkout, payment form, upgrade prompt or purchase flow. Users sign in to an existing transcribe.so account and use what that account already includes. Before a job that uses the account, getQuote reports the job's length and what it would use so the user can decide, and transcribe accepts a per-job ceiling (max_charge_usd) that the server enforces. For clips, getClipQuote reports what a clip would use before anything is rendered, and renderClip accepts the same per-call ceiling (max_charge_usd) that the server enforces. When the account cannot cover a job the plugin says so and stops; it does not link to a checkout or upgrade page.

Declared limitations

  • Local file path from chat: the plugin cannot read files on the user's computer.
  • Request unrelated to transcription.
  • Delete without explicit confirmation.

Onboarding example

Transcribe this YouTube video and list the chapters with timestamps
Sources & dates

Developer declarations; not independently tested. Listing last checked Nov 7, 2026. Package observed Nov 7, 2026.

View package source →

Description

From the marketplace listing

Turn a YouTube video, podcast episode or audio link into a speaker-labelled, timestamped transcript without leaving the chat. Ask who said something and when: answers quote the exact line, the speaker label and the timestamp. Ask questions about one recording or your whole library and get timestamped citations. Export subtitles (SRT, VTT), chapter timestamps for YouTube, Spotify and Apple Podcasts, and show notes. Built for podcasters, researchers, journalists and teams who need exact quotes from recordings. Works with links ChatGPT can reach (YouTube, podcast pages, direct media URLs); files on your computer are uploaded in the transcribe.so web app. Deleting a recording always asks you first. Sign in with your existing transcribe.so account.

Language: English · Automatically detected from descriptions.

Matches for “script”

Exact text from the indicated source. A mention alone does not establish support for your task.

Publisher keywords · listing

transcription speech-to-text subtitles captions youtube podcast meetings diarization mcp

Publisher description

Transcribe audio and video (YouTube, podcasts, meetings, uploads) into speaker-labelled transcripts with chapters, cited Q&A, word timings, subtitles, and hosted captioned clips.

Publisher full description

Turn a YouTube video, podcast episode or audio link into a speaker-labelled, timestamped transcript without leaving the chat. Ask who said something and when: answers quote the exact line, the speaker label and the timestamp. Ask questions about one recording or your whole library and get timestamped citations. Export subtitles (SRT, VTT), chapter timestamps for YouTube, Spotify and Apple Podcasts, and show notes. Built for podcasters, researchers, journalists and teams who need exact quotes from recordings. Works with links ChatGPT can reach (YouTube, podcast pages, direct media URLs); files on your computer are uploaded in the transcribe.so web app. Deleting a recording always asks you first. Sign in with your existing transcribe.so account.

What changed

· 5 observations

Capabilities & instructions

Full description changed from “Loom),” to “Loom, public TikTok, X and Facebook video posts),”. Skill instructions changed from “Loom), direct file URL, or local file upload into speaker-labelled, timestamped segments with chapters, sections, and cited Q&A. Use when the user wants a...” to “Loom, public TikTok, X and...

View comparison →
Capabilities & instructions

Skill instructions changed from “does not check what the account can cover or how many clips are already rendering; `renderClip` enforces those when it runs. - `renderClip`: hosted captioned...” to “takes the same options as `renderClip`, and the figure does not depend on the output or style. It does not check what...

View comparison →
Capabilities & instructions

Long description changed from “account; your recordings stay private to you.” to “account.”. Skill “transcribe-audio” description changed from “Loom),” to “Loom, public TikTok, X and Facebook video posts),”. Skill “transcribe-audio” short description changed from “Loom),” to “Loom, public TikTok, X and Facebook...

View comparison →

Technical updates · 1

Package or technical metadata updated

View technical comparison →

Keywords

Files & skills

File archives

Plugin package7 files · 280 KBBrowse files →
Skill instructions
get-transcript6.94 KB

View saved version →

---
name: get-transcript
description: "Retrieve a finished transcription from transcribe.so: chapters, sections, cited Q&A, speaker-labelled timestamped segments, word-level timings, subtitle files (SRT/VTT/karaoke), paste-ready timestamps, hosted captioned MP4 clips, and live cited Q&A over one transcription or the whole library. Use when the user asks for a transcript, subtitles, show notes, quotes, clips, or answers grounded in their recordings."
---

# Get a transcript and derived artifacts

All tools below live on the bundled `transcribe-so` MCP server. They work for
jobs submitted from this plugin, the REST API, or the transcribe.so web app:
same library everywhere.

## Reading results

- `getTranscriptionResult`: the main read. `include` defaults to
  `chapters,sections,qna`; add `segments` (speaker-labelled
  `{start_seconds, end_seconds, speaker, text}`), `acts`, `posting_chapters`,
  or `all`. There is no single full-text field: join segments (or sections).
- `waitForTranscription`: long-poll a running job (~90 s per call;
  `_timed_out: true` = call again).
- `search`: keyword search over titles and transcript text across the
  user's library; `fetch`: one transcription as plain text.
- `searchSegments`: "who said X, and when": each hit is the SEGMENT, with its
  own speaker label, `start_ms`/`end_ms` and a deep-link `url`. Speaker labels
  are recording-local and `null` means unknown; never attribute a `null` line.
- `getTranscript`: the transcript as one text body (`txt` or `md`), built
  from every segment; the source is never capped. The inline `content` is cut
  at this tool's response budget: when `truncated` is true it is a prefix and
  only `download_url` is complete. Use this for full text, not a windowed
  `segments` read.
- `getTranscriptionTimestamps`: paste-ready chapter timestamps (formats:
  youtube, spotify, apple_podcasts, markdown, x, threads, instagram_caption,
  linkedin, plain; variants: standard, highlights, clips, quoted_sections,
  show_notes, original). `cta` is opt-in and off by default. `not_ready` with
  `reason: "artifact_missing"` is fixed by ONE `regeneratePostingChapters`
  call.
- `getTranscriptionWords`: paginated word-level timings in ms (limit up to
  2000/page; check `available`; `no_word_timestamps` means sentence-level
  only). For karaoke captions and overlays, not for reading.
- `getSubtitles`: SRT / VTT / karaoke VTT / JSON subtitle file (`content`
  inline up to 60k chars, `download_url` beyond; presets: youtube,
  tiktok-shorts, instagram-reels, netflix, podcast, broadcast).

## Clips

- `getClipQuote`: preview before rendering. Pass `transcription_id`,
  `start_seconds` and `end_seconds`; it renders nothing and writes nothing,
  and returns `charge_usd` (what `renderClip` would use from the user's
  existing transcribe.so account for that range) plus the normalized range and
  `clip_seconds`. It runs the same range checks as `renderClip`, so it doubles
  as a dry run. It takes the same options as `renderClip`, and the figure
  does not depend on the output or style. It does not check what the account
  can cover or how many clips are already rendering; `renderClip` enforces
  those when it runs.
- `renderClip`: hosted clip of a 1-60 s range (up to 180 s where enabled) of
  a completed transcription with word timestamps. `output`: `audiogram`
  (default: MP4 with captions over a generated background), `video` (the
  source video with captions burned in) or `audio` (M4A, no captions).
  Video needs the source video: for a link source pass `rights_affirmed:
  true` only after the user confirms they own the video or may reuse it (else
  `invalid_request` with `error.reason: rights_required`); for an upload, the
  original video must first be added in the web app. `video_unavailable`
  means video cannot be made for this transcription: offer the audiogram,
  which still works. `style`, `caption_position`, `words_per_line`,
  `highlight_color` and `framing` tune the result; an 

Preview of the first 4,000 characters. Read full instructions →

transcribe-audio4.82 KB

View saved version →

---
name: transcribe-audio
description: Transcribe audio or video from a YouTube URL, platform URL (Apple Podcasts, SoundCloud, Vimeo, Twitch, Loom, public TikTok, X and Facebook video posts), direct file URL, or local file upload into speaker-labelled, timestamped segments with chapters, sections, and cited Q&A. Use when the user wants a transcript, show notes, chapters, or analysis of any recording.
---

# Transcribe audio or video

The bundled `transcribe-so` MCP server turns recordings into speaker-labelled,
timestamped transcripts with automatic chapters, sections, and cited Q&A.

## Sources

- `youtube`: a YouTube video URL
- `platform_url`: a public page URL on a supported platform (Apple Podcasts,
  SoundCloud, Vimeo, Twitch, Loom and similar, plus public TikTok, X and
  Facebook video posts)
- `external_url`: a direct http(s) link to an audio or video file
- `upload`: a local file (shell agents only): call `createUpload` for a presigned PUT URL
  (15 minute TTL), PUT the bytes, then pass the returned `upload_id` together
  with `duration_seconds`

## Flow

1. Preview before creating a job: call `getQuote` first. It starts nothing;
   it returns the length, the detected title and what the job would use from
   the user's existing transcribe.so account (`retail_usd`, 0 when the account
   already includes it). When `retail_usd` is 0, or within a limit the user
   already gave, go ahead; otherwise tell the user the figure and wait for a
   go-ahead. Pass the figure the user agreed to as `max_charge_usd` to
   `transcribe`; the server enforces it: if the real figure is higher the call
   is refused with `max_charge_exceeded` and nothing is started. Report the
   refused figure and ask; do not raise the ceiling yourself.
2. Call `transcribe` with the source. It returns `id` immediately; jobs are
   asynchronous.
3. For short recordings, long-poll with `waitForTranscription` (each call
   covers ~90 s; `_timed_out: true` means still processing; call it again,
   this is the expected loop, not an error). For long recordings, hand the
   user the dashboard link (https://transcribe.so/transcriptions); they also
   get a completion email.
4. Retries: pass `idempotency_key`; without one `transcribe` is not idempotent
   (check `listTranscriptions` before retrying a timed-out call). Keep the
   SAME key unless one of the NEW-key cases below applies:
   - SAME key: a retry with the same arguments replays the first result.
     After `queue_full` or a server error (neither is stored under the key),
     wait `retry_after` seconds first. If reading the source took longer than
     45 seconds, retry the same key once; if that is refused the same way,
     stop and tell the user (for `external_url`, pass `duration_seconds` if
     you know the length). On `not_ready` saying the earlier call is already
     in flight, it is still running and the server ends its preview within
     45 seconds: keep retrying the same key. A `not_ready` saying the earlier
     request just completed with an error recorded nothing: retry, same key.
   - `not_ready` with `stale: true` (no result recorded after 120 seconds):
     check `listTranscriptions` for the `client_reference` you sent. A job
     there in ANY status counts as found, so do not create another; if it is
     still `quoted` (not started yet), tell the user. Only if none is listed
     use a new key. If you sent no `client_reference`, do not switch keys on
     your own: tell the user.
   - NEW key: refusals are replayed under the key for 24 hours too, so a new
     key is needed only after a refusal you actually received that says
     nothing was started, once its cause is fixed (for example
     `insufficient_funds` or `max_charge_exceeded` after the user resolved
     it, or a corrected input), or in the `stale` case above. Changed
     arguments after such a refusal are a new request and take the new key.
   - Key rejected because the arguments differ, and you never got an answer
    

Preview of the first 4,000 characters. Read full instructions →

Release notes

MCP server 1.8.0: where available, clips can also be the source video with captions (when it can be used) or audio only, and captions take position, words per line, framing and highlight color; public TikTok, X and Facebook video links can be transcribed. Everything from the first release stays: transcribe a link and get the result in the same chat; who said what with exact quotes, speaker labels and timestamps; cited questions over one recording or the whole library; subtitles (SRT, VTT), chapter timestamps and show notes; captioned clips, with a preview before anything renders; deletes always ask first.

Declared in the saved package. Remote tools may change independently.

Package details

Publisher declarations from the archived package. These are separate from our research and the live service's terms.

Package license
MIT
Package author
transcribe.so
Keywords
See keywords
Commerce declaration
Does not support commerceThis does not establish whether access is free or paid.
Review scenarios
5 positive · 3 negativeScenario counts, not test results.

Declared capabilities

  • Transcribe audio and video links
  • Find who said what, and when
  • Answer questions with timestamped citations
  • Export subtitles and chapter timestamps

Package observed Nov 7, 2026.

Technical details
First seen
Oct 24, 2026 · 12:40 UTC
Last seen
Nov 7, 2026 · 18:00 UTC
Latest observed change
Nov 7, 2026 · 12:59 UTC
Collection status
Collected

plugin_asdk_app_6abdf8e086608191944bc78ebef760d8

Download plugin data (JSON)

Plugin details: served from cache. Prepared . Refreshed when plugin data changes or after 6 hours. Your account and Follow status are live.