Use Transcriptor MCP from n8n (or other MCP clients) to build workflows that search videos, fetch transcripts, and process playlists — without writing code.
- You build automation workflows in n8n or similar tools that support MCP (Model Context Protocol).
- You need pipelines like: search videos → get transcript → summarize or analyze, or batch process a playlist and get all transcripts.
- You want streamable HTTP so the MCP server runs on a host (e.g. your server or Docker) and n8n connects by URL.
-
Run the MCP server over HTTP (streamable HTTP on port 4200):
- Docker:
docker run -p 4200:4200 -e MCP_PORT=4200 -e MCP_HOST=0.0.0.0 artsamsonov/transcriptor-mcp npm run start:mcp:http - Or use
docker-compose/ your own host; see quick-start.mcp.md.
- Docker:
-
In n8n, add the MCP server (MCP Client Tool or equivalent):
- MCP Server URL:
http://<host>:4200/mcp(streamable HTTP). - If your server uses
MCP_AUTH_TOKEN, configure the client to sendAuthorization: Bearer <token>.
- MCP Server URL:
-
Proxy note: If n8n runs behind a reverse proxy that sets
X-Forwarded-For, you may need to setN8N_PROXY_HOPS(e.g.1) so the server does not reject requests. See the main README for details.
- Trigger (schedule, webhook, or manual).
- MCP tool: search_videos
query: e.g. "product launch keynote 2024"limit: 5- Output: list of videos with
videoId,title,url,uploader,viewCount.
- Process first result (e.g. get
urlfrom first item). - MCP tool: get_transcript
url: from step 2.- Output: cleaned plain text (first chunk).
- Send to LLM or another node for summarization, extraction, or storage.
For full transcript (long videos), use get_raw_subtitles with response_limit and repeat with next_cursor until is_truncated is false.
- Trigger with a playlist URL (e.g.
https://www.youtube.com/playlist?list=...). - MCP tool: get_playlist_transcripts
url: playlist URL (or watch URL withlist=parameter).- Optional:
playlistItems: "1:10"(first 10),maxItems: 20,lang: "en",type: "auto". - Output:
resultsarray of{ videoId, text }.
- Loop or process each item (e.g. save to DB, send to NLP, or aggregate for a report).
You can combine with get_video_info per videoId if you need metadata (title, channel, duration) alongside the transcript.
For long videos where you need the full SRT/VTT or exact timestamps:
- MCP tool: get_raw_subtitles
url: video URLresponse_limit: 50000 (default; max 200000)- Optional:
type,lang,format(srt, vtt, ass, lrc).
- If the response has
is_truncated: true, call get_raw_subtitles again with the sameurlandnext_cursorfrom the previous response. - Repeat until
is_truncatedis false, then concatenate or store the chunks.
| Tool | Typical use in n8n |
|---|---|
| search_videos | Find videos by query; optional uploadDateFilter, matchFilter, limit, offset. |
| get_transcript | Plain-text transcript (URL only; auto language). Good for summaries and LLM input. |
| get_raw_subtitles | Raw SRT/VTT with pagination (response_limit, next_cursor) for long content. |
| get_playlist_transcripts | Batch transcripts for many videos from one playlist URL. |
| get_video_info | Metadata (title, channel, duration, tags, etc.) for SEO or filtering. |
| get_available_subtitles | List official/auto languages before choosing type/lang in get_raw_subtitles. |
All tools accept a video URL from any supported platform (YouTube, Twitter/X, Instagram, TikTok, Twitch, Vimeo, Facebook, Bilibili, VK, Dailymotion, Reddit) or a YouTube video ID.
- MCP quick start — HTTP/SSE and Docker setup.
- Search and get transcript — tool sequence for search + transcript.
- Configuration — env vars (e.g. rate limits, Redis) when running the server.