media-downloader
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HOST | No | Host address for streamable-http transport. Default: 0.0.0.0 | 0.0.0.0 |
| PORT | No | Port for streamable-http transport. Default: 8000 | 8000 |
| TRANSPORT | No | Transport protocol (stdio or streamable-http). Default: stdio | stdio |
| YT_DLP_PATH | Yes | Path to yt-dlp executable | |
| BREW_INSTALL_CMD | Yes | Command to install via brew (if needed) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": true
} |
| resources | {
"subscribe": false,
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| download_mediaC | Download video or audio from supported sites (YouTube, Rumble, etc.). |
| watch_mediaA | Watch a video: download it with captions and extract key frames. Returns a manifest describing a bundle on disk - the caption transcript plus scene-change key frames whose filenames carry their timestamp, so what was on screen can be lined up against what was said. Use this to analyse a tutorial, demo, talk, or screen recording rather than merely archive it. Check |
| build_watch_skillA | Write a video-built skill, or append another video's findings to one. You supply the body - reading the transcript and frames is your job, not this tool's. It owns the mechanics: frontmatter, the provenance table every claim stays traceable to, the version bump, and WORKFLOW.md. Appending a video the skill already lists is refused rather than
duplicated, so re-running a pipeline is safe. Call Default to |
| list_watch_skillsA | List video-built skills under a root and the videos each already has. Use it before building: it says whether a new video extends an existing skill and whether that skill already covers it. |
| media_downloader_download_allC | Invoke the download_all operation. |
| media_downloader_download_videoD | Invoke the download_video operation. |
| media_downloader_get_channel_videosC | Find a channel's video links; queue them on |
| media_downloader_open_fileD | Invoke the open_file operation. |
| media_downloader_progress_hookD | Invoke the progress_hook operation. |
| media_downloader_set_progress_callbackD | Invoke the set_progress_callback operation. |
| media_downloader_watchB | Download a video with its captions and extract scene-change key frames. Returns the bundle manifest: the media, the transcript, the key frames,
and whatever could not be obtained. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| connector-status | Ask for this connector server's current operational status. |
| download_video | Generates a prompt for downloading a video. |
| download_audio | Generates a prompt for downloading audio. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| _connector_status_resource | Native resource exposing this server's static status payload. |
| ontology://media-downloader-mcp/media.ttl | |
| connector-resources | Data sources, ontology mappings and resources of this connector. |
| media-download/SKILL.md | Download video (or audio) from YouTube, Rumble, and other yt-dlp-supported sites via the media-downloader MCP server, and natively store the downloaded media into the epistemic-graph knowledge graph as a content-addressed blob + :MediaAsset. Use when the agent must fetch a video by URL and optionally persist the raw bytes + metadata into the KG. Do NOT use for audio-only extraction to MP3 (media-audio) or for querying already-ingested media (query the KG :MediaAsset nodes directly). |
| media-download/_manifest | File listing for media-download |
| media-watch/SKILL.md | Watch a video by URL through the media-downloader MCP server and turn it into a reusable skill: pull the captions, extract scene-change key frames whose filenames carry their timestamp, then read both and write down what the video teaches, the steps, and the warnings. Works on tutorials, demos, talks, Loom and TikTok clips, podcasts, and screen recordings of something broken. Use when the agent must understand or reproduce what a video shows rather than merely archive it. Do NOT use for plain video download (media-download), audio-only MP3 extraction (media-audio), or transcribing a file that is already on disk (audio-transcriber-transcription). |
| media-watch/_manifest | File listing for media-watch |
| media-downloader-operations/SKILL.md | Operate media-downloader through its governed MCP and Arbora capabilities, including media audio, media download, media watch. Use when a request requires this provider's read, change, automation, ingestion, troubleshooting, or evidence workflows. |
| media-downloader-operations/_manifest | File listing for media-downloader-operations |
| media-audio/SKILL.md | Extract audio as MP3 from a video/media URL via the media-downloader MCP server, natively storing the resulting audio into epistemic-graph as a content-addressed blob + :MediaAsset. Use when the agent needs the audio track (podcast, music, lecture) rather than the full video. Do NOT use for full-video download (media-download) or for transcription (use the audio-transcriber package). |
| media-audio/_manifest | File listing for media-audio |
| media-downloader-development/SKILL.md | Develop, test, gate, and release the media-downloader connector. Use this skill when changing the connector's API mappings, MCP tools, packaging, documentation, or repository gates. |
| media-downloader-development/_manifest | File listing for media-downloader-development |
TDQS
Scored across 11 tools
There are near-duplicate pairs: watch_media and media_downloader_watch have essentially identical descriptions, and download_media overlaps with media_downloader_download_video/download_all. The two progress tools (set_progress_callback, progress_hook) are internal callbacks with no distinguishing description, so an agent cannot tell which to call or when.
Names mix a `media_downloader_` prefix (set_progress_callback, download_all, open_file, watch) with bare snake_case (download_media, watch_media, build_watch_skill), and equivalent actions appear under both conventions. Several delegated names are also opaque stubs ('Invoke the download_all operation') that don't follow the descriptive verb_noun style of the others.
11 tools is a reasonable count for the domain, but several slots are wasted on duplicated or internal-only operations (watch vs watch_media, download_all/download_video, progress_hook, open_file). Trimming the redundant entries would leave a tighter, clearer core.
The core loop is covered: list skills, download, watch, build/append skill, plus channel video discovery. However there is no way to delete or remove a skill, no way to inspect a stored skill's contents, and progress/callback plumbing is exposed as tools rather than handled internally.