{"name":"io.github.dasein108/yt-mem-ai","slug":"dasein108-yt-mem-ai","title":"yt-mem-ai","description":"Local YouTube memory: transcribe, embed and search videos, with summaries and highlights.","url":"https://mcp.market/server/dasein108-yt-mem-ai","rating":null,"grade":"A","score":88,"certified":false,"status":"active","category":"search","tags":["search","media"],"presence":{"score":28,"stars":7,"forks":0,"downloads_week":71,"last_push_at":"2026-08-23T06:04:47.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/dasein108/yt-mem-ai","website":null,"version":"0.6.3","remotes":[],"packages":[{"registryType":"pypi","identifier":"yt-mem-ai","version":"0.6.3","transport":{"type":"stdio"}}],"tools":[{"name":"analyze_video","description":"Ingest a YouTube video and return its transcript so you can summarize, highlight, answer questions about, or make a presentation from it.","write_action":false,"price_micros":0,"input_schema":null},{"name":"channel_list","description":"Enumerate a channel's recent uploads (does NOT ingest them).","write_action":false,"price_micros":0,"input_schema":null},{"name":"compile","description":"Compile deep-linked highlights from summarized videos (fast, no download).","write_action":false,"price_micros":0,"input_schema":null},{"name":"config_get","description":"Get one setting's effective value and where it comes from (env/project/global/default).","write_action":false,"price_micros":0,"input_schema":null},{"name":"config_list","description":"List every yt-mem-ai setting with its effective value, source, and description.","write_action":false,"price_micros":0,"input_schema":null},{"name":"config_set","description":"Set a yt-mem-ai setting (e.g. WEBSHARE_PROXY_USERNAME, YT_EMBEDDING_MODEL).","write_action":false,"price_micros":0,"input_schema":null},{"name":"config_unset","description":"Remove a setting from the global (or scope=\"project\") config file.","write_action":true,"price_micros":0,"input_schema":null},{"name":"discover","description":"Discover new subscription uploads and store them as 'discovered'.","write_action":false,"price_micros":0,"input_schema":null},{"name":"dislike","description":"Mark a video as disliked (feeds taste-based recommendations).","write_action":false,"price_micros":0,"input_schema":null},{"name":"fetch","description":"Download + transcribe + embed + store a single video (idempotent).","write_action":false,"price_micros":0,"input_schema":null},{"name":"fetch_pending","description":"Batch download + transcribe + embed all pending 'discovered' videos.","write_action":false,"price_micros":0,"input_schema":null},{"name":"frame","description":"Grab a still frame from an ingested video at a timestamp (needs yt-dlp + ffmpeg).","write_action":false,"price_micros":0,"input_schema":null},{"name":"like","description":"Mark a video as liked (feeds taste-based recommendations).","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_videos","description":"List stored videos, optionally filtered by status/date/channel and capped.","write_action":false,"price_micros":0,"input_schema":null},{"name":"recommend","description":"Rank unrated fetched videos by learned taste (like − dislike centroid).","write_action":false,"price_micros":0,"input_schema":null},{"name":"reembed","description":"Rebuild all chunk embeddings with the current YT_EMBEDDING_* config.","write_action":false,"price_micros":0,"input_schema":null},{"name":"save_summary","description":"Persist a model-generated summary for a video (marks it 'summarized').","write_action":false,"price_micros":0,"input_schema":null},{"name":"search","description":"Search transcript chunks. mode = hybrid | vector | fts.","write_action":false,"price_micros":0,"input_schema":null},{"name":"show","description":"Return stored metadata + full transcript for a video (or {error: ...}).","write_action":false,"price_micros":0,"input_schema":null},{"name":"status","description":"Return video counts grouped by lifecycle status.","write_action":false,"price_micros":0,"input_schema":null},{"name":"supercut","description":"Render an actual video supercut of highlights (SLOW: re-downloads clips + ffmpeg).","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":88,"grade":"A","scanned_at":"2026-09-24T11:59:34.628Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-24T11:59:34.546Z","components":{"code":{"score":25,"max":25,"notes":["23 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":12,"max":15,"notes":["last push 32 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"pypi","identifier":"yt-mem-ai","version":"0.6.3","found":true,"weeklyDownloads":71,"license":"MIT","dependencyCount":14,"publishedAt":"2026-08-02T20:18:51.855991Z","repositoryUrl":"https://github.com/dasein108/yt-mem-ai"}],"repo":{"found":true,"owner":"dasein108","repo":"yt-mem-ai","archived":false,"pushedAt":"2026-08-23T06:04:47Z","stars":7,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/11820607?v=4","ownerCreatedAt":"2015-04-06T16:17:21Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/11820607?v=4&s=128","source":"github"},"presence":{"stars":7,"forks":0,"downloadsWeek":71,"license":"MIT","lastPushAt":"2026-08-23T06:04:47.000Z","score":28}}}},"grade_history":[],"reviews":[]}