mediasense

io.github.joaoestella由 GitHub 帳號 joaoestella 發布v0.5.1更新於 Nov 7, 2026

Let Claude listen to audio and watch video: transcribe, summarize and edit recordings and links.

已驗證STDIO僅桌面媒體與設計AI 與機器學習

概覽

AI 產生的概覽

本機 MCP 伺服器,讓助理轉錄、摘要、搜尋與剪輯音訊和影片檔案或連結,並擷取關鍵影格與字幕。

可以做什麼
  • 一次呼叫即可下載連結並取得轉錄文字、關鍵影格、鏡頭清單與貼文中介資料
  • 轉錄語音並提供逐字時間戳,讀取某個時間範圍,或搜尋某句話出現的所有位置
  • 規劃並算圖剪輯,移除語助詞、靜音、語句或區間,並以混音、壓低或取代方式插入音訊片段
  • 匯出 SRT、VTT、TXT、CSV 或 JSON 字幕,檢視單一影格、縮圖拼版與媒體資訊
  • 在背景查詢耗時工作的結果,並使用現成提示詞產生摘要、講解、清理與字幕
適用情境
適合讓助理處理語音訊息、播客、會議錄音、螢幕錄影或社群平台影片連結:做摘要、找出某句話或某個畫面出現的位置、清理音訊,或產生字幕。
執行需求
透過 stdio 在本機執行,通常以 uvx 或 pipx 安裝;需要 Python 3.12 與 FFmpeg。首次轉錄會下載約 500 MB 的語音模型。可選安裝 NVIDIA CUDA 函式庫以加速;對於需要登入的連結,可用 MEDIASENSE_COOKIES_FROM_BROWSER 讀取瀏覽器 Cookie。
安裝前請注意
連結會下載到本機資料夾,伺服器會連網取得這些內容,請僅用於你有權下載的內容。可選的 openai 後端會把音訊送到外部轉錄 API。算圖會在原檔旁產生新檔案,安裝腳本也會修改 Claude Desktop 與 Claude Code 的設定。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 mediasense,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

mediasense

[PyPI] [Python] [CI] [License: MIT]

Give Claude ears and eyes. Claude can't listen to audio or watch videos on its own; with mediasense it can. Point at a voice message, podcast, recording or meeting, or paste a TikTok, YouTube or Instagram link, in Claude Code or Claude Desktop and ask in plain language. Claude can then transcribe it, summarize it, explain what happens, find the moment something is said, or edit it.

text
you: what does this voice message say? ~/Downloads/audio-from-maria.opusyou: summarize this https://www.tiktok.com/@someone/video/7350…you: what does he show at 0:30? and what tool is he talking about?you: clean up ~/Desktop/podcast.m4a — remove the "um"s and long pausesyou: make short captions for ~/Videos/reel.mp4you: put intro.mp3 under the first 5 seconds of talk.mp4, ducked

[mediasense in Claude: a TikTok link is downloaded, transcribed and summarized with timestamps]

Real output for a 17-second TikTok by @elim.doc, shown with the creator's permission. Regenerate the animation with python docs/make_demo.py.

mediasense runs on your computer: it downloads the link, transcribes speech in ~99 languages with a timestamp for every word, picks key frames at scene changes, and hands Claude a transcript, a shot list and contact-sheet images. Nothing is uploaded anywhere.

Português 🇧🇷

Setup

Windows – paste in PowerShell:

powershell
irm https://raw.githubusercontent.com/joaoestella/mediasense/main/install.ps1 | iex

macOS / Linux – paste in a terminal:

bash
curl -LsSf https://raw.githubusercontent.com/joaoestella/mediasense/main/install.sh | sh

Then quit Claude Desktop completely (tray/menu-bar icon → Quit), open it again and ask "summarize this video: ". The first transcription downloads the speech model (≈ 500 MB).

Prefer to read the script before running it?
powershell
irm https://raw.githubusercontent.com/joaoestella/mediasense/main/install.ps1 -OutFile install.ps1notepad install.ps1powershell -ExecutionPolicy Bypass -File .\install.ps1

(macOS/Linux: curl -LsSfO …/install.sh, read it, then sh install.sh.)

The installer only installs what is missing — Python 3.12 and FFmpeg via winget (Homebrew/apt on macOS/Linux) and pipx via pip — then pipx installs mediasense from this repository and runs mediasense setup. It stops at the first failed step.

Manual setup (no script)
powershell
winget install ffmpeg                    # macOS: brew install ffmpeg · Linux: sudo apt install ffmpegpython -m pip install --user pipxpython -m pipx ensurepath                # then close and reopen the terminalpython -m pipx install "mediasense[all]"mediasense setup -n                      # preview what setup will changemediasense setupmediasense doctor

Use python -m pipx … rather than plain pipx right after installing it: the pipx command only appears on PATH in a new terminal. No Git needed.

As a Claude plugin (skill + server in one)

The repository is also a Claude plugin: installing it adds both the mediasense tools and the skill that tells Claude when to use them. It starts the server with uv, so install uv first (winget install astral-sh.uv · brew install uv · curl -LsSf https://astral.sh/uv/install.sh | sh) plus FFmpeg if you don't have it.

In Claude Code:

/plugin install mediasense --marketplace joaoestella/mediasense
Any other MCP client (Cursor, VS Code, Windsurf…)

mediasense is a standard stdio MCP server, also listed in the official MCP Registry as io.github.joaoestella/mediasense:

json
{ "mcpServers": { "mediasense": { "command": "uvx", "args": ["mediasense", "mcp"] } } }

Or with a normal install: pipx install mediasense, then use mediasense mcp as the command.

One-click Claude Desktop extension (experimental)

Download mediasense.mcpb and double-click it (or drag it into Claude Desktop → Settings → Extensions). No Python, pipx or FFmpeg needed: Claude Desktop sets up Python by itself, and FFmpeg is downloaded on first use. The first start takes a few minutes while it installs everything. This uses Claude Desktop's new "UV" extension type, so if it doesn't work on your version, use the installer above.

What mediasense setup changes

  • Claude Desktop: adds one entry, mcpServers.mediasense, to claude_desktop_config.json (%APPDATA%\Claude\ – or %LOCALAPPDATA%\Claude-Data\claude_…\ for the Microsoft Store app – ~/Library/Application Support/Claude/ on macOS, ~/.config/Claude/ on Linux; Claude Desktop → Settings → Developer → Edit Config opens the one your app uses). Everything else in the file is kept, and the previous file is saved next to it as claude_desktop_config.json.<date>.bak. If the file isn't valid JSON, setup stops without touching it.
  • Claude Code (if installed): runs claude mcp add --scope user mediasense -- <path>\mediasense mcp.
  • Nothing else. mediasense setup -n shows the exact changes without making them; --desktop or --code limits it to one app. To undo: remove the mediasense entry from the config file and run claude mcp remove mediasense --scope user.

Updating on Windows and pipx says a file "is being used by another process"? Claude Desktop is still running the old server: Get-Process mediasense | Stop-Process -Force, then install again (the installer script does this for you).

Something not working? mediasense doctor checks FFmpeg, the speech model, the GPU, link downloads and the Claude connection.

Teach Claude when to use it (recommended)

mediasense comes with a skill: a short guide that makes Claude reach for mediasense whenever you paste a video link, instead of trying to open the page (TikTok & co. block that).

  • Claude Code: installed automatically by mediasense setup.
  • Claude Desktop / claude.ai: download mediasense-skill.zip (the installer also saves it to Downloads/mediasense/), then in Claude open Settings → Skills and upload it. One time only; it syncs to all your devices.

Note: Claude Desktop sends files you attach in the chat to the model, not to your computer, so give mediasense a link or a file path instead (in Claude Code you can drag the file into the terminal).

Slash commands

The server adds ready-made prompts. In Claude Code they appear as /mcp__mediasense__summarize and so on.

PromptDoes
summarizegist, key points with timestamps, steps, names and links, call to action
explain_videoshot-by-shot explanation, plus how the video is built (hook, structure)
clean_upremove fillers and long pauses, show the plan first, render after your OK
subtitlesSRT captions, standard or short 1–3-word style for vertical video

Tools Claude gets

ToolWhat it does
understand_mediaone call: download link, transcribe, key frames + speech per shot, post title/description
transcribespeech → <file>.transcript.json with word timestamps; vocabulary fixes brand names
read_transcript, search_transcriptread a time range or find every time a phrase is said
plan_edit, render_editcut phrases, passages, fillers, silences or ranges; preview, then render
export_transcriptSRT, VTT, TXT, CSV, JSON
place_audioinsert a clip at a timestamp (mix / duck / replace)
watch_video, get_framecontact sheets, or one frame at a given time
media_infoduration, resolution, fps, streams
check_jobresult of long work: new videos and the first run reply "still working" and finish in the background

Long work never hits Claude's tool time limit: if a video takes more than ~30 s (a long video on a CPU, or the very first run while the speech model downloads), the tool answers "still working" with a progress percentage and Claude checks back with check_job until it's done.

All tools accept a file path or a link. Links are downloaded once to ~/Downloads/mediasense (change with MEDIASENSE_HOME) and reused.

Command line

Everything also works without Claude:

bash
mediasense understand "https://youtu.be/…"           # transcript + shots + metadata, as textmediasense transcribe talk.mp4 -l pt --vocab "Cloudflare, Claude" --also srtmediasense search talk.transcript.json "next quarter"mediasense edit talk.mp4 --fillers --silences 0.7 -n   # -n = only show the planmediasense edit talk.mp4 --fillers --silences 0.7 --srt --edl --fcpxmlmediasense edit talk.mp4 --cut-between "let me check" "okay so" --cut-range 12:03-12:40mediasense export talk.transcript.json captions.srt --words-per-cue 2mediasense place video.mp4 voiceover.wav --at 0:12.5 --mode duckmediasense storyboard reel.mp4mediasense fetch "https://www.tiktok.com/@…/video/…"

Edits never touch the original: results are written as <name>.edited.* / <name>.placed.*. EDL opens in Premiere, Resolve and Avid; FCPXML in Final Cut Pro and Resolve.

Good to know

  • Names and jargon. Whisper may write "Cloud Fair" for Cloudflare. Pass --vocab (Claude does this automatically when it can infer the names from the title or the screen).

  • Fillers. Whisper tends to leave hesitations out; transcribe with --verbatim when you want to cut them. Real words are protected per language ("um" is an article in Portuguese, so it is never cut there). Ambiguous words like "like", "tipo" or "né" are only removed if you list them.

  • Speed. Everything works on a plain CPU: short clips take seconds, a few minutes of audio takes about as long as the audio with the default small model (base is faster, medium more accurate). No GPU? --backend openai sends the audio to an OpenAI-compatible transcription API instead (fast on any machine, but the audio leaves your computer).

  • NVIDIA GPU (optional, much faster). mediasense uses it automatically once the CUDA libraries are present; no CUDA toolkit needed:

    bash
    python -m pipx inject mediasense nvidia-cublas-cu12 "nvidia-cudnn-cu12>=9,<10" nvidia-cuda-runtime-cu12

    (≈ 1.5 GB; needs a driver that supports CUDA 12 – mediasense doctor checks both). Restart Claude Desktop afterwards.

  • Word timing is approximate (0.1–0.2 s). For tighter cuts and speaker labels use --backend whisperx (pip install "mediasense[whisperx]").

  • Downloading from links follows each site's terms. Use it for content you're allowed to download.

Privacy Policy

mediasense runs entirely on your computer: no accounts, no analytics, no telemetry, and the author receives no data. It connects to the internet only to download the links you ask about, the speech model (first run), FFmpeg if it's missing, and – only if you choose the openai backend – to send audio to the transcription API you configure. Results stay on your disk until you delete them. When used from Claude, tool results (transcripts, key frames, metadata) are returned to the Claude app and handled under Anthropic's privacy policy. Full policy: PRIVACY.md.

Development

bash
git clone https://github.com/joaoestella/mediasense && cd mediasensepip install -e ".[dev,mcp]"pytest

The tests build synthetic audio/video with FFmpeg and use fake model and downloader libraries, so they run in seconds with nothing to download. Ideas welcome: more filler words for your language, a one-click Claude Desktop extension (.mcpb), and a GUI.

Releasing

  1. Bump version in pyproject.toml, src/mediasense/__init__.py, server.json (both places) and .claude-plugin/plugin.json, and the pinned mediasense==X.Y.Z in .mcp.json, commit. The workflow refuses a tag that doesn't match them.
  2. git tag vX.Y.Z && git push origin vX.Y.Z. The Release workflow publishes to PyPI, updates the entry in the MCP Registry and creates a GitHub release with the wheel, mediasense-skill.zip and mediasense.mcpb.

One-time PyPI setup (trusted publishing, no token): on pypi.org → Your account → Publishing → Add a new pending publisher: project mediasense, owner joaoestella, repository mediasense, workflow release.yml, environment left empty.

License

MIT

來源:README.md,提交 f7e4586

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.5.1最新Nov 7, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分