transcriber
Enables transcription of Instagram videos by downloading the audio and extracting the spoken text locally with Whisper.
Enables transcription of TikTok videos by downloading the muxed video to capture the real audio track, then extracting the spoken text locally with Whisper.
Enables transcription of YouTube videos by downloading the audio and extracting the spoken text locally with Whisper.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@transcribercan you transcribe this TikTok? https://vm.tiktok.com/ZMabc123/"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
whisper-video-transcriber
Paste a TikTok, YouTube or Instagram link and get the spoken text back. Audio is transcribed locally with faster-whisper on the CPU, so no cloud service hears your videos. Optionally, Claude breaks the transcript down: hook, structure with timestamps, why it works, call to action and an idea for your own content.
It also runs as an MCP server, so Claude Code (or any MCP client) can call it as a tool: "transcribe this TikTok and tell me why the hook works".
Built for content research in a homelab. On an 8-core LXC (AMD Ryzen 9 mini PC, Whisper medium, int8), a 45 s TikTok took 13.5 s and a 208 s video 53.5 s, roughly 4x faster than real time.
Full walkthrough (Proxmox LXC, Docker, Caddy, firewall, Claude Code):
English: https://mapplebox.com/self-hosted-video-transcriber-whisper/
Deutsch: https://mapplebox.de/tiktok-videos-transkribieren-whisper-selbst-hosten/
What's inside
File | What it does |
| FastAPI app: yt-dlp download, faster-whisper transcription, optional Claude analysis, REST API, MCP server at |
| Small web UI (German labels) |
| Python 3.12 image with ffmpeg, data volume |
| Settings you fill in |
Related MCP server: whipscribe-mcp
Quick start
Needs Docker with the Compose plugin on a Linux host (a Debian LXC on Proxmox works fine) and about 2 GB of disk for the Whisper medium model, which downloads on the first job.
git clone https://github.com/mapplebox/whisper-video-transcriber.git
cd whisper-video-transcriber
cp .env.example .env && chmod 600 .env # then edit .env
mkdir -p data
docker compose up -d --build
curl http://127.0.0.1:8000/healthOpen http://<host>:8000/ for the web UI.
Settings
In .env (never commit it):
Variable | Meaning |
| Optional. Enables the Claude analysis. Without it you only get transcripts. |
| Optional, default |
| Required for |
| Comma-separated host names (or |
| Optional Bearer token for |
In docker-compose.yml: WHISPER_MODEL (small is faster, large-v3 most accurate), WHISPER_COMPUTE, WHISPER_THREADS, DEFAULT_LANGUAGE (empty = auto-detect), MAX_DURATION_SECONDS (default 900).
Security
This is an internal tool. /api/* has no authentication unless you set API_TOKEN, and anyone who can call it can spend your Anthropic credit.
Put it behind a reverse proxy that only allows your LAN / VPN (e.g. Caddy with
remote_ip), never expose port 8000 to the internet.Docker-published ports bypass normal
INPUTfirewall rules. Restrict port 8000 in theDOCKER-USERchain so only the proxy can reach it, for example:iptables -I DOCKER-USER -i eth0 -p tcp --dport 8000 ! -s <proxy-ip> -j DROPOr publish it on127.0.0.1:8000:8000if the proxy runs on the same host.Keep
.envat mode 600.
Claude Code
claude mcp add --transport http --scope user transcriber https://transcribe.example.com/mcp \
--header "Authorization: Bearer YOUR-MCP-TOKEN"Tools: transcribe_video, list_transcripts, get_transcript, analyze_transcript. Every transcribe_video call runs the analysis by default (costs API credit); ask for "without analysis" if you only want the text.
Notes
TikTok: the audio-only stream is often just the attached sound (music), not the voice. The app downloads the smallest muxed video instead, which carries the real audio track.
YouTube: at the time of writing, yt-dlp needs a JavaScript runtime for full YouTube support. Add Deno to the image:
COPY --from=denoland/deno:bin-2.9.7 /deno /usr/local/bin/denoand installyt-dlp[default].Instagram: often needs cookies from a logged-in account; this code doesn't pass any.
Updating yt-dlp: it's unpinned on purpose, rebuild with
docker compose build --no-cache.The analysis prompt and the web UI are in German. Change
ANALYSIS_PROMPTinapp/main.py(keep the JSON keys, the UI reads them) and the labels inindex.htmlfor another language.Only use it for your own research and respect the platforms' terms and creators' rights. Don't republish other people's content.
License
MIT, see LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for RiverScript, an AI transcription platform - fetches transcripts shared via a link.
Publish and schedule videos to TikTok, YouTube Shorts, Instagram, Facebook, LinkedIn, Pinterest, Bluesky, Threads and X from Claude, Cursor or any MCP client. Upload once, post everywhere, track views in unified analytics, and retry failed posts. Official platform APIs only, free plan available. Docs: https://docs.multi-upload-tool.com/mcp
Transcribe public videos & audio (YouTube, TikTok, IG) into accurate, timestamped text via API.
Transcribe TikTok, Instagram Reels, X, Facebook and MP4 videos to text with Whisper.
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables high-quality transcription and subtitle generation from local media files or URLs using Faster Whisper on local hardware. It supports automatic language detection and integration with MCP clients for seamless speech-to-text workflows.3-
- AlicenseAqualityBmaintenanceMCP server for Whipscribe — transcribe audio and video from a URL or local file via Claude Desktop, Claude Code, Cursor, Windsurf, or any MCP-compatible client.637 PyPI1Apache 2.0
- FlicenseAqualityDmaintenanceProvides YouTube video transcripts (text and metadata) as MCP tools for AI hosts like Claude Code, enabling summarization, search, and Q&A without watching the video.2-
- AlicenseNot gradedqualityCmaintenanceMCP server that transcribes local media files and URLs via Deepgram, writing Markdown transcripts to disk with strict per-job cost ceilings and caching. It also provides a CLI and optional transcript formatting through a language model.MIT