The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the TubePull listing page.
🌐 Landing page: https://tubepull.com/mcp — features, pricing, FAQ, and one-click setup links for Claude, Perplexity, ChatGPT, and Cursor.
Download video or audio from YouTube, TikTok, Twitter/X, SoundCloud, Vimeo, Twitch, Streamable, Bandcamp, Mixcloud, and Dailymotion — from any MCP-compatible AI assistant (Claude Desktop, Claude Code, Cursor, Windsurf, Cline, ChatGPT-via-MCP, Perplexity, Continue, Zed, LibreChat, …).
This repo is the public, chatbot-facing documentation for the TubePull MCP
server. The live server runs at https://tubepull.com/mcp. The application
source code is private — only the integration surface that LLMs and end users
need to call the server lives here.
If you are a chatbot or an AI agent reading this to figure out how to call
TubePull, jump straight to AGENTS.md and
llms.txt. If you are a human setting up Claude Desktop, jump to
Quick start.
TubePull is a hosted MCP (Model Context Protocol) server that lets an AI assistant download a video or audio file to disk on the user's behalf, from any of ten supported platforms:
| Platform | Hosts | Default medium |
|---|---|---|
| YouTube | youtube.com, youtu.be | video |
| TikTok | tiktok.com, vm.tiktok.com | video |
| Twitter / X | twitter.com, x.com (status URLs with video) | video |
| Vimeo | vimeo.com | video |
| Twitch | twitch.tv, clips.twitch.tv (VODs and clips) | video |
| Streamable | streamable.com | video |
| Dailymotion | dailymotion.com, dai.ly | video |
| SoundCloud | soundcloud.com, on.soundcloud.com | audio |
| Bandcamp | bandcamp.com (artist subdomains included) | audio |
| Mixcloud | mixcloud.com | audio |
POST https://tubepull.com/mcp (JSON-RPC 2.0, MCP
protocol version 2024-11-05).download_video and get_video_info.Audio-only platforms. SoundCloud, Bandcamp, and Mixcloud do not have a video stream. If you pass
format: "mp4"on one of these, TubePull silently coerces tom4aand returns audio. Passformat: "mp3"if you want MP3.
The server is intended for legitimate use cases only — offline access to
your own uploads, Creative Commons / public-domain content, lectures,
podcasts, conference talks, DJ mixes you have rights to, and content you have
explicit permission to use. Calling get_video_info first lets the assistant
surface the license / uploader before downloading.
A chatbot should consider calling download_video when the user says any of:
A chatbot should call get_video_info (no quota cost) when the user asks:
Full trigger-phrase list and JSON-RPC examples live in
AGENTS.md and the recipes/ folder.
| Tool | Cost | Returns |
|---|---|---|
download_video(url, format?, quality?) | counts against quota | signed download link (1 hour TTL), filename, format, quality, title, channel/artist, duration |
get_video_info(url) | free | title, channel/artist, duration, view count (when available), upload date, thumbnail, description, available qualities, license type (YouTube only) |
download_video parametersurl (required) — full URL from any of the ten supported platforms above.
Playlists, sets, albums, channels, and profile pages are not supported —
pick a single video / track.format (optional, default mp4) — one of:
mp4 — video (default).mp3 — forced MP3 (legacy-compatible, re-encodes server-side).m4a — forced M4A audio.audio — smart audio alias that resolves to M4A (no transcode, fastest).quality (optional) — ignored for audio formats and on audio-only
platforms. Common values: 360p, 480p, 720p, 1080p, 1440p, 2160p.
Defaults to best. 1440p and 4K (2160p) require Unlimited.get_video_info parametersurl (required) — full URL from any supported platform.TubePull is a remote MCP server, so most clients can connect with just a
URL. Minimal Claude Desktop snippet (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
Then restart Claude and ask any of:
upgradeUrl pointing
at https://tubepull.com with attribution params so the conversion is
credited back to the chatbot that drove it.Expected: a JSON-RPC response with serverInfo.name == "tubepull",
serverInfo.version, an icons[] array, and websiteUrl.
To see the live tool schemas (always trust these over docs if they differ):
MIT. The application source is closed; this documentation repo is permissively licensed so chatbots, registries, and downstream integrators can mirror or reformat the content freely.