Skip to content
Agentmart
Submit a tool

yt-mem-ai

Local YouTube memory: transcribe, embed and search videos, with summaries and highlights.

Connector by dasein108 · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 7
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/dasein108-yt-mem-ai

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Local YouTube memory: transcribe, embed and search videos, with summaries and highlights.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.

Tools
11 read · 4 write · 1 delete · 5 not yet classified
Secrets
None asked for
Install scripts
Not scanned yet
Runs as
Python package

Tools by what they do 21

Read from the source code; the running server may list different tools.

Read 11 · Look things up without changing anything.

  • analyze_video
  • channel_list
  • config_get
  • config_list
  • discover
  • fetch_pending
  • list_videos
  • recommend
  • search
  • show
  • status

Write 4 · Create, change, send or run things.

  • config_set
  • dislike
  • like
  • save_summary

Delete 1 · Delete, drop, revoke or wipe things.

  • config_unset

Not yet classified 5 · We could not tell from the name and description.

  • compile
  • fetch
  • frame
  • reembed
  • supercut

Tools (21)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • analyze_video

    Ingest a YouTube video and return its transcript so you can summarize, highlight, answer questions about, or make a presentation from it. CALL THIS FIRST whenever the user asks to summarize / highlight / analyze / get key points or Q&A of a YouTube video — it's the one-step entry point (fetch + transcript, idempotent, captions→whisper fallback). Then write the summary/highlights/Q&A yourself from the returned `transcript` in its original language, anchor highlight timestamps with search(), and save_summary(). Returns {video_id, title, channel, transcript, transcript_lang, summary (if one alr…

  • channel_list

    Enumerate a channel's recent uploads (does NOT ingest them). `url` is a channel URL or @handle; `after`/`before` are YYYY-MM-DD bounds. Feed the returned URLs to `fetch` to ingest a group.

  • compile

    Compile deep-linked highlights from summarized videos (fast, no download). Budget-bounded by `max_minutes`; `since` (YYYY-MM-DD) defaults to today. Returns {clips:[{video_id, start_s, ...}]} — each clip has a watch deep link.

  • config_get

    Get one setting's effective value and where it comes from (env/project/global/default).

  • config_list

    List every yt-mem-ai setting with its effective value, source, and description. Source is env | project | global | default. Secret values (API keys, proxy password) are masked unless reveal=True. Use this to see what's configurable and what's currently set before changing anything.

  • config_set

    Set a yt-mem-ai setting (e.g. WEBSHARE_PROXY_USERNAME, YT_EMBEDDING_MODEL). Persists to the global config file (`~/.yt-mem-ai/config.env`) by default so it applies to this server regardless of working directory; pass scope="project" to write ./.env instead. Takes effect on the next tool call (no restart) unless the same key is set as a process env var — the returned `warning` flags that. Only known keys are accepted (see config_list).

  • config_unset

    Remove a setting from the global (or scope="project") config file.

  • discover

    Discover new subscription uploads and store them as 'discovered'. Incremental by default (advances a high-water mark); pass `after` (YYYY-MM-DD) to override the cutoff. Returns {new_count, videos}.

  • dislike

    Mark a video as disliked (feeds taste-based recommendations).

  • fetch

    Download + transcribe + embed + store a single video (idempotent). Set captions_only=True for the fast captions-only path (no audio, no whisper); on `status: "no_captions"` retry with whisper=True. Streams are transcribed on demand here (unlike batch fetch_pending, which skips them). Returns {video_id, status}.

  • fetch_pending

    Batch download + transcribe + embed all pending 'discovered' videos. Continues past per-video failures; streams are auto-marked and skipped. `since` defaults to today. Returns {ok, failed, results:[{video_id,outcome}]}.

  • frame

    Grab a still frame from an ingested video at a timestamp (needs yt-dlp + ffmpeg). `at` is seconds or HH:MM:SS. Returns {path}.

  • like

    Mark a video as liked (feeds taste-based recommendations).

  • list_videos

    List stored videos, optionally filtered by status/date/channel and capped. `since` is a YYYY-MM-DD date; `status` is one of discovered/downloaded/transcribed/summarized/stream.

  • recommend

    Rank unrated fetched videos by learned taste (like − dislike centroid).

Show 6 more tools
  • reembed

    Rebuild all chunk embeddings with the current YT_EMBEDDING_* config. Use after switching embedding backend/model (e.g. to a multilingual one) to migrate the library without re-fetching. Returns {reembedded}.

  • save_summary

    Persist a model-generated summary for a video (marks it 'summarized'). `highlights` is a JSON array of {start_s, label}; `qa` a JSON array of {q, a}. These are strings of JSON, matching the CLI `save-summary` command.

  • search

    Search transcript chunks. mode = hybrid | vector | fts. Use this to anchor highlight timestamps — each hit carries `start_s` and a `ts` (MM:SS). Never invent timestamps; take them from a hit whose `video_id` matches.

  • show

    Return stored metadata + full transcript for a video (or {error: ...}). Includes `transcript_lang` (source language) and any stored `summary`.

  • status

    Return video counts grouped by lifecycle status.

  • supercut

    Render an actual video supercut of highlights (SLOW: re-downloads clips + ffmpeg). Needs network + local ffmpeg. `since` defaults to today; output defaults to supercuts/<since>.mp4. Returns {out_path, rendered, failed, labeled}.

Signals

Stars
7
Forks
0
Open issues
0
Weekly downloads
51
Last commit
Aug 23, 2026 (2 months ago)
Last release
Aug 3, 2026 (2 months ago)
Last package publish
Aug 2, 2026 (2 months ago)

From GitHub (fetched Oct 24, 2026) and the package registry.

Details

Registry name
io.github.dasein108/yt-mem-ai
Version
0.6.3
Auth
No auth
Packages
pypi yt-mem-ai
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 25, 2026
Cite this page

yt-mem-ai MCP server. Agent Mart. https://agentmart.dev/connectors/dasein108-yt-mem-ai (last updated 2026-10-25)