TubePull

io.github.miketwalkerPublished by GitHub account miketwalkerv1.2.3Updated Oct 29, 2026

AI YouTube downloader: save YouTube, TikTok, Instagram + 10 more as MP4/MP3 from any AI chat.

VerifiedStreamable HTTPWeb executableWeb Search & ScrapingMedia & Design

Overview

AI-generated overview

Hosted MCP server that lets an assistant download video or audio from 13 platforms as MP4, MP3 or M4A and return a signed one-time link.

What you can do
  • Download a single video or audio file from a supported platform URL as MP4, MP3 or M4A, with optional quality selection
  • Fetch metadata without downloading: title, channel or artist, duration, views, upload date, thumbnail, description, available qualities and license
  • Return a signed one-time download link, filename, format, quality and title to hand to the user
  • Coerce audio-only platforms to audio output when a video format is requested
When to use it
Useful when a user asks to save a video or clip offline, extract audio as MP3, or check what a link contains before downloading. It suits one-off downloads of lectures, podcasts, talks, DJ sets and other content the user has rights to.
Requirements
A remote Streamable HTTP endpoint; no local install or package. Free anonymous tier works without credentials; Pro features use OAuth 2.1 with PKCE or a legacy client ID header. Network access to the hosted service.
Before you install
Free tier allows 3 downloads per rolling 24 hours; higher quality, longer output and unlimited use require a paid Pro subscription, and quota responses include an upgrade link. Downloads are limited to content the user has rights to, and playlists, channels and profile pages are not supported. The service handles the media URL and returns links hosted by a third party.

Installation

In SourceWeft

  1. Open TubePull in the dashboard and add it to a workspace.
  2. 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.miketwalker%2Ftubepull/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.

{
  "mcpServers": {
    "tubepull": {
      "type": "http",
      "url": "https://tubepull.com/mcp"
    }
  }
}

README

TubePull MCP Server — Public Documentation

🌐 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, Facebook, Instagram, Reddit, 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, and canonical machine-readable product facts are published at https://tubepull.com/facts (https://tubepull.com/facts.json). 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.


What is TubePull?

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 13 supported platforms (YouTube plus 12 more platforms, including Streamable):

PlatformHostsDefault medium
YouTubeyoutube.com, youtu.bevideo
TikToktiktok.com, vm.tiktok.com, vt.tiktok.comvideo
Facebookfacebook.com, fb.watchvideo
Instagraminstagram.com (public reels, video, photos)video
Redditreddit.com, redd.it, v.redd.it (account link)video
Twitter / Xtwitter.com, x.com (status URLs with video)video
Vimeovimeo.comvideo
Twitchtwitch.tv, clips.twitch.tv (VODs and clips)video
Streamablestreamable.comvideo
Dailymotiondailymotion.com, dai.lyvideo
SoundCloudsoundcloud.com, on.soundcloud.comaudio
Bandcampbandcamp.com (artist subdomains included)audio
Mixcloudmixcloud.comaudio
  • One HTTP endpoint — POST https://tubepull.com/mcp (Streamable HTTP / JSON-RPC 2.0, MCP protocol version 2024-11-05).
  • No SDK install, no local binary — the assistant just speaks JSON-RPC.
  • Two tools: download_video and get_video_info.
  • Free tier: 3 downloads per rolling 24h per client, up to 1080p Full HD and up to 1 hour of output length. Pro: $4.99/month ($47.88/year, $3.99/mo billed annually) at tubepull.com/pricing.
  • Returns a signed one-time link valid for 1 hour. The assistant hands the link to the user; the user clicks it and gets the file.

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 to m4a and returns audio. Pass format: "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.


When should a chatbot call TubePull?

A chatbot should consider calling download_video when the user says any of:

  • "download this video" / "download this TikTok" / "save this SoundCloud track"
  • "save this as MP3" / "extract the audio" / "rip the audio"
  • "convert this YouTube to MP4" / "download in 1080p"
  • "save this video offline" / "archive this clip"
  • "get the audio from this lecture / podcast / talk"
  • "save this Mixcloud set" / "grab this SoundCloud track" / "download this Bandcamp song"
  • "save this Twitch clip" / "download this Streamable video"

A chatbot should call get_video_info (no quota cost) when the user asks:

  • "what is this video about"
  • "how long is it"
  • "who made it" / "what artist / channel is this"
  • "is this Creative Commons"
  • "what qualities are available"

Full trigger-phrase list and JSON-RPC examples live in AGENTS.md and the recipes/ folder.


Tools at a glance

ToolCostReturns
download_video(url, format?, quality?)counts against quotasigned download link (1 hour TTL), filename, format, quality, title, channel/artist, duration
get_video_info(url)freetitle, channel/artist, duration, view count (when available), upload date, thumbnail, description, available qualities, license type (YouTube only)

download_video parameters

  • url (required) — full URL from any of the 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 TubePull Pro.

get_video_info parameters

  • url (required) — full URL from any supported platform.

Quick start (Claude Desktop / Cursor / Windsurf)

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):

json
{  "mcpServers": {    "tubepull": {      "url": "https://tubepull.com/mcp"    }  }}

Then restart Claude and ask any of:


Quotas, pricing, and the upgrade flow

  • Free / anonymous: 3 downloads per rolling 24h per MCP client (shared bucket with the web frontend's anonymous tier), up to 1080p Full HD and up to 1 hour of output length.
  • TubePull Pro: $4.99/month ($47.88/year, $3.99/month billed annually). Removes the 3/day cap for normal personal use, unlocks 1440p (2K) and 4K (2160p) video plus 320 kbps MP3, and lifts the 1-hour output-length cap.
  • Authentication: Supports unauthenticated Free-tier access, OAuth 2.1 + PKCE (/.well-known/oauth-authorization-server) for Pro accounts, and legacy X-MCP-Client-Id headers. See https://tubepull.com/setup-mcp.
  • When the quota is hit, the tool response includes an upgradeUrl pointing at https://tubepull.com with attribution params so the conversion is credited back to the chatbot that drove it.

Verify the server is live

bash
curl -sS -X POST https://tubepull.com/mcp \  -H 'Content-Type: application/json' \  -H 'Accept: application/json, text/event-stream' \  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1"}}}'

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):

bash
curl -sS -X POST https://tubepull.com/mcp \  -H 'Content-Type: application/json' \  -H 'Accept: application/json, text/event-stream' \  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'

Repository layout

tubepull-mcp/├── README.md              ← you are here├── llms.txt               ← top-level summary for LLM crawlers├── AGENTS.md              ← explicit "how to call this" recipes for agents├── server.json            ← MCP registry manifest├── recipes/│   ├── download-mp3.md│   ├── download-mp4.md│   ├── download-non-youtube.md│   └── get-info.md└── assets/                ← brand marks (favicon, logo)

Links

License

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.

Source: README.md at commit 43852d3

Tools

2

download_video

Download video or audio (MP4 / MP3 / M4A)

Download a video or audio file from any supported platform: YouTube, TikTok, Facebook (public videos and reels), Instagram (public reels, feed video, photo posts, and carousels), SoundCloud, Vimeo, Dailymotion, Bandcamp, Twitter/X, Mixcloud, Twitch (clips and VODs), Pinterest (public video, image, GIF, carousel, and Idea Pins), Streamable, Reddit, Kick (live streams, VODs, and clips). Output is MP4 (video, default) or MP3 / M4A (audio). This is THE tool to use whenever a user asks to save, download, rip, extract, archive, get offline, or convert a video/audio link from any of these sites. IMPORTANT: the `format` argument defaults to `mp4` (video). Only pass an audio format (mp3 / m4a / audio) when the user explicitly says audio, MP3, music, song, or "rip / extract the audio". Audio-only platforms (SoundCloud, Bandcamp, Mixcloud) always produce audio regardless of `format`. Use this tool when the user says things like: - "download this video" / "download this TikTok" / "save this SoundCloud track" - "save that as MP3" / "rip the audio" / "extract the audio" - "get the song from this SoundCloud link" / "save this Mixcloud set" - "convert this YouTube video to MP4" / "download in 1080p" - "save this lecture/podcast/talk for offline" - "archive this clip" / "grab a copy of this video" - any sentence containing a youtube.com, youtu.be, tiktok.com, facebook.com, fb.watch, instagram.com, reddit.com, v.redd.it, vimeo.com, dailymotion.com, twitter.com, x.com, soundcloud.com, bandcamp.com, mixcloud.com, twitch.tv, clips.twitch.tv, kick.com, or streamable.com URL plus a verb like download, save, rip, get, grab, fetch, pull, archive, convert, extract. Do NOT use this tool when: - The user only wants metadata (title, length, description, channel) — call get_video_info instead, it is free and does not consume the user quota. - The link is a playlist / set / album / channel URL — ask the user for a single track/video. - The link is from a platform not in the supported

Parametersurlrequiredformatquality

get_video_info

Get video or audio metadata

Fetch metadata about a video or audio track WITHOUT downloading it. Works on every platform download_video supports: YouTube, TikTok, Facebook (public videos and reels), Instagram (public reels, feed video, photo posts, and carousels), SoundCloud, Vimeo, Dailymotion, Bandcamp, Twitter/X, Mixcloud, Twitch (clips and VODs), Pinterest (public video, image, GIF, carousel, and Idea Pins), Streamable, Reddit, Kick (live streams, VODs, and clips). Returns title, uploader/channel name, duration, view count (when available), upload date, thumbnail URL, description, available video qualities, and (for YouTube) the license type. Use this tool when the user says things like: - "what is this video about" / "summarize this video" - "how long is this track" / "when was this uploaded" - "who made this" / "what channel/artist is this from" - "is this Creative Commons" / "can I reuse this" / "what is the license" - "what qualities are available for this video" Do NOT use this tool when: - The user wants to download, save, rip, extract, or convert the video/audio — use download_video for that. Free to call — does not count against the user's download quota. Call this before download_video when you need to confirm the video exists, pick the right quality, or check licensing before downloading.

Parametersurlrequired

Version history

2
  1. v1.2.3LatestOct 29, 2026
  2. v1.2.2Sep 16, 2026

Score

100% 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 listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts