ReelScribe

io.github.rara-cyberPublished by GitHub account rara-cyberv2.4.0Updated Nov 7, 2026

Transcribe social videos, selected comments, URL batches and Instagram channels.

VerifiedStreamable HTTPWeb executableWeb Search & ScrapingMedia & Design

Overview

AI-generated overview

ReelScribe transcribes Instagram, TikTok, YouTube and other social videos into text, with optional top-comment extraction, from an AI assistant.

What you can do
  • Submit a single video URL for transcription, optionally including a selection of top comments
  • Retrieve a transcript by ID, list your transcriptions with filters, and search by original video URL
  • Check whether a URL is supported before spending a credit
  • Submit batches of URLs, including lists read from CSV, and scrape paid Instagram channels
  • Check credit balance, subscription tier and retention, and page through batch or channel jobs
When to use it
Useful when you want transcripts of social videos, or a quick check of what a video says, without leaving the assistant. Also fits workflows that need many videos transcribed at once or a channel's recent reels collected.
Requirements
Remote endpoint with OAuth sign-in to a ReelScribe account, or a local npx package configured with a REELSCRIBE_API_KEY. A paid credit balance is needed beyond the 25 free signup credits; each new transcription costs 1 credit.
Before you install
Transcriptions and batch or channel submissions spend credits, so costs accrue with use. Batch and channel tools need the extra reelscribe:manage consent or an API key. The local setup stores an API key in client configuration. Transcripts and comment data are held by the service under tier-based retention.

Installation

In SourceWeft

  1. Open ReelScribe in the dashboard and add it to a workspace.
  2. Connect the required credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.rara-cyber%2Freelscribe/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.

{
  "mcpServers": {
    "reelscribe": {
      "type": "http",
      "url": "https://reelscribe.app/api/mcp"
    }
  }
}

README

ReelScribe MCP Server

An MCP (Model Context Protocol) server that connects AI assistants to ReelScribe — transcribe Instagram Reels, TikTok videos, and YouTube videos directly from Claude, Cursor, Windsurf, and other MCP-compatible clients.

Setup

Hosted connector (Cloudflare Workers)

The endpoint is https://reelscribe.app/api/mcp. Add it as a remote connector in Claude or as an MCP connection in ChatGPT developer mode, then sign in to your ReelScribe account and approve access. Directory publication is a separate review process.

Hosted transcription returns a requestId immediately. Use get_transcription with that ID to retrieve the transcript after processing; submitting a duplicate returns the existing transcript. Account administration is available on the website.

Deploying
  1. Deploy the accompanying ReelScribe API OAuth change, including the Convex includeRetention response on /admin/get-user-by-clerk-id.
  2. In the production Clerk instance, create and advertise the custom scope reelscribe:mcp, with consent text explaining permission to read transcripts and credit balance, and submit transcriptions that spend credits. Enable CIMD client onboarding, require S256 PKCE, and set the default scopes to reelscribe:mcp. For expanded workflows register an optional separate reelscribe:manage scope, retained under its existing name for compatibility. Its consent text must explain only batch/channel submissions that spend credits. Default scopes are reelscribe:mcp reelscribe:manage; a single-video client may request only reelscribe:mcp. Existing connections must explicitly approve the extra transcription permission on reconnect. Keep opaque access tokens enabled. Allow the intended clients to request the custom scope; enable DCR only for clients needing it.
  3. Authenticate Wrangler with permission to deploy Workers in the SIÁN account. If Wrangler lists multiple accounts, set CLOUDFLARE_ACCOUNT_ID to that account.
  4. Run bun run typecheck, bun test, bun run worker:build, then bun run worker:deploy.
  5. Verify /health, the public OAuth metadata, an unauthenticated /mcp 401 challenge, and the complete sign-in and transcription flow in both clients.

The branded URL is forwarded by the ReelScribe website to the existing Cloudflare Worker with branded=1, which selects matching OAuth resource metadata. The original https://reelscribe-mcp.sian-agency.workers.dev/mcp endpoint and its OAuth discovery remain available for existing connections. The domain is managed outside Cloudflare, so a direct Worker custom subdomain would require DNS changes.

The Worker holds no shared user API key or Clerk secret. It forwards each caller's token to ReelScribe's API, which verifies it with Clerk and resolves only that token's user. The base OAuth scope permits transcript, credit and job reads and single-video submission. Batch/channel submissions require separately granted reelscribe:manage consent. Despite its legacy name, this scope grants only transcription submission. Even existing management grants cannot access downloads, deletion, analytics or settings.

Local stdio setup remains available below.

1. Get an API Key

Sign up at reelscribe.app (25 free credits) and generate an API key from your API settings.

2. Configure Your MCP Client

Add to your MCP client configuration:

Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):

json
{  "mcpServers": {    "reelscribe": {      "command": "npx",      "args": ["-y", "reelscribe-mcp-server"],      "env": {        "REELSCRIBE_API_KEY": "rs_your_api_key_here"      }    }  }}

Claude Code (~/.claude.json or project .mcp.json):

json
{  "mcpServers": {    "reelscribe": {      "command": "npx",      "args": ["-y", "reelscribe-mcp-server"],      "env": {        "REELSCRIBE_API_KEY": "rs_your_api_key_here"      }    }  }}

Cursor (Settings > MCP):

json
{  "mcpServers": {    "reelscribe": {      "command": "npx",      "args": ["-y", "reelscribe-mcp-server"],      "env": {        "REELSCRIBE_API_KEY": "rs_your_api_key_here"      }    }  }}

Available Tools

ToolDescription
transcribe_videoSubmit a video URL (1 credit). Optional includeComments for Instagram, TikTok and YouTube. Hosted server returns a job ID; local server waits for the result.
get_transcriptionGet a transcription by ID or requestId. Returns full transcript text.
list_transcriptionsList one page of your transcriptions (default 20, max 200), newest first. Status, platform, creator, Reel Board topic and sub-topic, date, job and request filters.
search_transcriptionsFind transcriptions by the original video URL, within a bounded recent window.
get_creditsCheck credit balance, subscription tier, stored transcription count, and retention.
validate_urlCheck if a URL is supported without submitting.

| transcribe_bulk | Submit a URL list (including URLs read from CSV); tier limits and 1 credit per new video apply. | | transcribe_instagram_channel | Paid Instagram channel scraping, 1–50 reels and optional date filter. Can continue a channel with older reels or new posts. | | list_jobs | Read progress and page through owned batch/channel jobs. |

The nine tools focus on transcription. Downloads, library management, retries, cancellation, analytics, settings and billing are available in the web app. Batch and channel submissions require an API key or explicit additional reelscribe:manage transcription consent; legacy base-only OAuth tokens cannot perform them. Facebook comments remain unsupported. Since 2.3.0 the tools also accept Threads, LinkedIn, X and Bluesky links.

Comment extraction

Set includeComments: true on transcribe_video to request a selection of top comments alongside a new Instagram, TikTok or YouTube transcription. It is off by default and the total cost remains 1 credit. Pinned and creator comments are prioritized where available; YouTube does not expose a pinned flag. Facebook comment extraction is unsupported. This is not a full comment-thread export.

Completed results include a comments array with text, author, likes, isPinned and isCreator; it is null when no comments were returned. stats.comments is the video's total comment count, separate from those rows. Existing matching transcripts are reused as-is, without adding new comments.

json
{ "url": "https://www.youtube.com/watch?v=vXUPEow4Itw", "includeComments": true }

Pagination

list_transcriptions returns a page, never a whole library. Pass nextCursor back as cursor while hasMore is true to walk the rest.

The API does not report a library total, so this server does not invent one: libraryTotal is a number only when a response provably covers the entire result set (first page, no further pages), and null otherwise. For a library-wide figure, get_credits reports library.completedTranscriptions — itself a bounded count, flagged with library.isCapped when the real number is higher.

Transcripts in list results are 500-character previews with the full length in transcriptChars; call get_transcription with an id to read one in full.

Storage and retention

There is no storage quota. Per-tier count limits were retired on 2026-07-31 — a library is bounded by time instead, and get_credits reports the retention that applies to the account (unlimited while subscribed, a rolling window otherwise). Transcriptions created before the policy date are never auto-deleted.

Supported Platforms

  • Instagram — Reels, Posts (/p/), IGTV (/tv/)
  • TikTok — Videos, short links (vm.tiktok.com, vt.tiktok.com)
  • YouTube — Videos, Shorts, short links (youtu.be)
  • Facebook — Videos (/watch?v=, /videos/), Reels, short links (fb.watch)
  • Threads — Video posts (threads.com / threads.net, share links)
  • LinkedIn — Public video posts (/posts/, /feed/update/, embed links)
  • X — Video posts (x.com / twitter.com, t.co, fxtwitter-style mirrors)
  • Bluesky — Video posts (bsky.app/profile/…/post/…)

Example Usage

"Transcribe this TikTok video: https://www.tiktok.com/@user/video/123456"

"Check my credit balance"

"List my completed transcriptions"

"Did I already transcribe this video? https://www.instagram.com/reel/ABC123/"

Pricing

  • Free: 25 credits on signup
  • Creator: $9.99/mo — 1,000 credits
  • Agency: $24.99/mo — 3,000 credits
  • Enterprise: $59.99/mo — 10,000 credits

Each transcription costs 1 credit. View pricing

Changelog

2.4.0

  • list_transcriptions filters by Reel Board topic and subTopic, and shows each reel's topic. Only sorted reels have one.
  • owner now ignores capitals, spaces and @, and matches the handle or the display name.
  • transcribe_instagram_channel continues a channel with direction: older for reels you do not have yet, newer for posts since your latest one.

2.1.0

  • Optional includeComments on transcribe_video for Instagram, TikTok and YouTube, forwarded through the existing API without an extra credit charge.
  • Typed comment rows in retrieved transcripts; unsupported Facebook requests are rejected before creating a job.

2.0.0

Compatibility with the ReelScribe /v1 API changes of 2026-07-31. 1.0.5 and earlier report wrong numbers against the current API and should be upgraded.

Breaking:

  • list_transcriptions no longer reports total. That field became the length of the page when the endpoint went cursor-paginated, so 1.0.5 answered "how many transcriptions do I have?" with the page size — 100 for a library of 2,000 — and nothing in the response revealed it. Replaced by returned (this page), libraryTotal (a number only when the response covers everything, otherwise null), hasMore and nextCursor.
  • list_transcriptions returns 500-character transcript previews plus transcriptChars, not full transcript text. Use get_transcription for the full text.
  • get_credits no longer reports storage.limit. Per-tier storage caps were retired; the API now returns -1 ("no limit") for every tier, which rendered as "unlimited" and hid a real 30-day retention window. Replaced by library.completedTranscriptions / library.isCapped and a retention block.

Added:

  • cursor and limit parameters on list_transcriptions (default 20, max 200).
  • Facebook video and Reel URLs are validated locally, which the API has accepted all along — validate_url and transcribe_video used to reject them before a request was made.
  • search_transcriptions reports matchesReturned and states that its window is bounded, so found: false is no longer readable as "never transcribed".

Links

License

MIT

Source: README.md at commit f1d00fc

Tools

0
This server asks you to sign in, so SourceWeft could not read its tools without an account and has not indexed them. What a connected account sees can depend on that account and its permissions.

Version history

3
  1. v2.4.0LatestNov 7, 2026
  2. v2.3.0Oct 26, 2026
  3. v2.2.1Oct 15, 2026

Score

85% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts