What this site is
InstaScript turns Instagram Reels, video files and audio files into text inside the browser. Nothing is uploaded: the audio is processed on the visitor's own device with an in-browser Whisper model (whisper-tiny.en, WASM build). Output can be downloaded as .txt or .srt.
What it supports
- Uploaded files: MP4, MOV, WebM, MP3, WAV, M4A, OGG — up to 100 MB.
- Pasted links: public Instagram post and Reel URLs only. TikTok and Facebook videos must be saved as a file and uploaded.
- English only. Audio is processed in roughly 30-second chunks.
Machine-readable resources
- OpenAPI description of the public read-only API.
- API catalog (RFC 9727, application/linkset+json).
- MCP endpoint (Streamable HTTP, JSON-RPC 2.0) with tools:
find_page,get_benchmark,site_info. - MCP server card.
- Agent Skill artifact and the skills discovery index.
- ARD capability manifest.
- Service index in I-Lang (advertised in DNS via
_index._agents.instascript.app). - Every page also has a Markdown variant: send
Accept: text/markdown.
Public read-only API
GET /api/pages?q=WORDS— find the public page that matches a task. Emptyqlists all pages.GET /api/benchmark?length_seconds=30— measured in-browser transcription times. Without a parameter it returns all measured rows.POST /api/extract— resolve a public Instagram URL to a video URL and caption. Instagram hosts only; other domains are rejected.
These endpoints are read-only, need no key and return JSON with source_url fields pointing at the underlying data.
Limits and honesty rules
- The service cannot transcribe a remote video on your behalf, except public Instagram links through
/api/extract. - Benchmark rows are single measurements on one machine (WASM build, no WebGPU). They are a shape, not a promise.
- Authentication is not available. Advertised OAuth endpoints are a planned contract and answer HTTP 503.
Provenance
Pages: the published HTML of this site. Benchmark: whisper-tiny-en-browser-benchmark.csv with method notes in the benchmark README.