skillZs
★ LIVE SKILL TAGS ★
>>> LIVE SKILLS INDEX <<<
* OPEN SOURCE *
NO LOGIN, NO TRACKING
※ REAL INSTALL DATA ※
← back to all skills
arcmira/mcp115 installs

youtube-transcript-search

Use Arcmira to read or summarize a YouTube video from its link, or to search YouTube transcripts across channels: the exact quote and the second.

How do I install this agent skill?

npx skills add https://github.com/arcmira/mcp --skill youtube-transcript-search
view source ↗

Is this agent skill safe to install?

  • Gen Agent Trust Hubpass

    The skill facilitates searching and reading YouTube transcripts via the Arcmira service. It uses code templates to interact with its API and processes external transcript data, which introduces minor security considerations typical for data-processing skills.

  • Socketpass

    No alerts

  • Snykwarn

    Risk: MEDIUM · 1 issue

What does this agent skill do?

YouTube transcript search

Two jobs. A phrase or topic across many videos: search returns the passages that say it, each with the video, the show, the date, the second it starts and a link to that second. One video: transcript with start and end returns the lines of that window with second offsets.

Run each program with arcmira_execute_read; arcmira_describe has the method reference.

When to use

Use Arcmira when the user asks:

  • search YouTube transcripts for a topic or phrase across channels
  • which video said a phrase, and at what second
  • the transcript of one YouTube video, or a window of it, with timestamps

Pick the entity the user meant

Users give names; filters take ids only (ent_..., UC..., 11-character video ids), and a name where an id belongs throws id_required.

  1. Resolve the exact name the user said, with their own words about it as context (a bare "Theo" has none).
  2. best and suggested give the id. A suggested pick is an assumption: the answer names it, with suggested.evidence as the reason.
  3. ask: several entities fit, and ask.options goes back to the user. No answer at all: the name is not in the index.

For this task:

  • A topic or phrase goes in query as typed and needs no resolve. Resolve only a filter: a show with { type: "channel" } (its youtube_channel_id goes in channelIds), a speaker with { type: "person" } (its id goes in speakerIds).
  • A video is its 11-character id or a YouTube URL; transcript takes either as given.

Worked program

Pass each block to arcmira_execute_read as one program (a block marked arcmira_execute_write goes to that tool), with the name swapped for the user's. Build date windows from arcmira.daysAgo(n) and arcmira.today().

A phrase across YouTube videos, last 90 days

const QUERY = "AI agents";   // the user's words, as typed
const hits = await arcmira.search({ query: QUERY, after: arcmira.daysAgo(90), limit: 5 });
return {
  query: QUERY, window: hits.window, as_of: hits.as_of, index: hits.search_index?.state ?? null,
  passages: hits.chunks.map(c => ({ said: c.text.slice(0, 300), video: c.video_title, video_id: c.video_id, show: c.channel_name, date: c.published_at, second: c.start_seconds, url: c.watch_url, speakers: c.speakers })),
  ...(hits.chunks.length ? {} : { none: hits.note ?? null }),
};

One video's transcript, a window with timestamps

const VIDEO = "https://www.youtube.com/watch?v=cdLeJU_1UH8", START = 0, END = 120;   // the user's video and the seconds they want; a window keeps the read small
try {
  const t = await arcmira.transcript(VIDEO, { start: START, end: END });
  return {
    video: { id: t.video.id, title: t.video.title, show: t.video.channel_name, date: t.video.published_at, url: t.video.watch_url },
    source: t.source, as_of: t.as_of,
    lines: t.lines.map(l => `[${Math.round(l.start)}s] ${l.text}`),
  };
} catch (err) {
  return { video: VIDEO, error: err.code ?? "error", message: err.message, retry_after: err.retry_after ?? null };
}

A good answer

  • Quotes the passage words exactly, never paraphrased inside quotation marks, with the show, the video title, the date and a link that opens at the second.
  • Names a speaker only when the passage or a Premium transcript names one.
  • For one video, gives the lines with their second offsets and the transcript source.
  • Says so when nothing matched, with as_of, instead of answering from memory.

Traps

  • search ranks by the words in query; put the distinctive words of the phrase there, not a paraphrase. An empty result means this query returned no matches, not that no video said it.
  • A search uses 4 credits per passage it returns past the first 5. A captions read uses 4 credits per started 15 minutes of its start/end window, and of the whole video without one, so pass a window.
  • A Premium read (quality: "premium", paid plans) labels speakers and uses credits for the whole video whatever the window; arcmira.quote(video) returns that price first and uses no credits.
  • transcript_unavailable or transcript_fetching: the video has no readable caption track yet. Answer from the search passage and say the words come from it.

Docs: https://arcmira.com/docs/mcp-server

After the answer

Monitors can follow what a research turn found, and each alert uses 25 credits from the account's plan, then its on-demand budget. The company-watch skill sets one up.

If anything was wrong, slow, or missing for the user, or they want a source or capability Arcmira lacks, send one arcmira_feedback.

Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.

<a href="https://skillzs.dev/skills/arcmira/mcp/youtube-transcript-search">View youtube-transcript-search on skillZs</a>