Metadata-Version: 2.5
Name: mcpproducts-media
Version: 0.1.0
Summary: MediaMCP — audio/video/image toolkit + video-to-knowledge for AI agents (local free tools + optional cloud tier)
Requires-Python: >=3.10
Requires-Dist: httpx>=0.27
Requires-Dist: mcp>=1.2.0
Description-Content-Type: text/markdown

# MediaMCP 🎬

**One MCP server for media: convert, compress, inspect, thumbnail — plus video→knowledge (info, transcripts) for 1000+ sites.**

Local-first: free tools run **on your machine** (ffmpeg + yt-dlp). Optional cloud tier (keyed) for Whisper-grade transcription of any URL.

## Tools

| Tool | Tier | What it does |
|---|---|---|
| `media_info` | free | ffprobe metadata: duration, codecs, resolution, bitrate |
| `convert` | free | ffmpeg transcode (mp3/wav/mp4/webm/gif/…) with optional extra args |
| `compress` | free | shrink video (CRF + audio bitrate), reports size reduction |
| `thumbnail` | free | extract a frame at time_s as PNG |
| `video_info` | free | yt-dlp metadata for a URL: title, duration, views, caption languages |
| `transcript` | free | clean transcript from subtitles/auto-captions, optional timestamps |
| `cloud_transcribe` | cloud | Whisper-grade transcription of any URL (needs `MPX_API_KEY`) |

## Install

Requires [ffmpeg](https://ffmpeg.org) and [yt-dlp](https://github.com/yt-dlp/yt-dlp) on PATH
(`brew install ffmpeg && pip install yt-dlp` or `winget install Gyan.FFmpeg` etc.).

**Claude Code:**
```bash
claude mcp add media -- uvx --from git+https://github.com/mkorayemai-web/media-mcp media-mcp
```

**Claude Desktop** (`claude_desktop_config.json`):
```json
{
  "mcpServers": {
    "media": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/mkorayemai-web/media-mcp", "media-mcp"]
    }
  }
}
```

Cloud tier: set `MPX_API_KEY` env var (from the marketplace listing) to enable `cloud_transcribe`.

## Example prompts

- "Compress `demo.mp4` to under 10 MB" → `compress`
- "Get the transcript of https://www.youtube.com/watch?v=… with timestamps" → `transcript`
- "Convert `call.m4a` to wav 16k mono" → `convert` with extra_args
- "What resolution/codec is `movie.mkv`?" → `media_info`

## License

MIT
