Youtube Research Automation logo

Youtube Research Automation

Organization
cosmicstack-labs
youtube-research-automation

Design agent workflows that pull YouTube transcripts, search videos and channels, and monitor new uploads without Google API quotas or OAuth setup

Overview

Publishercosmicstack-labs
Repositorymercury-agent-skills
Skill nameyoutube-research-automation
Stars
485
Forks
63
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by cosmicstack-labs on GitHub. Read the source before you install it.

Installation

Install the Youtube Research Automation AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/cosmicstack-labs/mercury-agent-skills/tree/main/categories/automation/youtube-research-automation
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/cosmicstack-labs/mercury-agent-skills.git /tmp/mercury-agent-skills
mkdir -p .claude/skills
cp -r /tmp/mercury-agent-skills/categories/automation/youtube-research-automation .claude/skills/youtube-research-automation
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Youtube Research Automation in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Youtube Research Automation on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Youtube Research Automation is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

YouTube Research Automation

Use this skill when an agent needs to read what was said in a video, find videos or channels on a topic, walk a channel or playlist, or watch a channel for new uploads, and you want that to run as a repeatable workflow rather than a manual copy and paste.

Recommended implementation:

  • youtube-skills for any runtime that supports the Agent Skills format. It ships twelve skills, and youtube-full covers transcripts, video and channel search, channel browsing, and playlist extraction in one install.
  • youtube-mcp when the runtime speaks MCP instead of skills. Same tools, remote endpoint, API key or OAuth.

Both call TranscriptAPI, an independent REST API for YouTube content. It is not affiliated with YouTube or Google, and it is not the official YouTube Data API. That is the point of using it here: no Google Cloud project, no OAuth consent screen, and no daily quota unit accounting.

When to Use

Use this skill when the user asks for:

  • The transcript, captions, or subtitles of a video, or a summary of one.
  • Quotes, claims, timestamps, or numbers taken from a talk, lecture, or review.
  • Videos or channels about a topic, without a browser in the loop.
  • Every video on a channel, or a channel's recent uploads.
  • Every video in a playlist, with titles and IDs.
  • A recurring job that checks a channel and reports what is new.
  • Research where video is fresher or more specific than written sources.

Do not use this skill for:

  • Downloading or re-hosting video or audio files. This is a text and metadata workflow, and republishing someone's content is a licensing question, not a technical one.
  • Uploading, commenting, account management, or anything that writes to YouTube.
  • Videos with no captions. There is no transcript to fetch, so plan a fallback.
  • Private or unlisted content the user does not own.

Core Model

Treat every YouTube workflow as three stages, and keep them separate:

  1. Resolve: turn whatever the user pasted, a URL, a video ID, an @handle, or a playlist link, into a stable identifier.
  2. Discover: search, list a channel, or list a playlist to get a candidate set.
  3. Read: fetch transcripts only for the candidates that survived filtering.

The reason to split stages 2 and 3 is cost. Discovery returns dozens of videos for one call. Reading is priced per video. An agent that fetches a transcript for every search hit burns the user's balance on videos nobody asked about.

Setup

One environment variable, one header convention.

bash
export TRANSCRIPT_API_KEY="sk_..."   # free key at https://transcriptapi.com, 100 credits, no card
bash
curl "https://transcriptapi.com/api/v2/youtube/transcript?video_url=VIDEO_ID&format=text" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \
  -H "User-Agent: YourAgent/1.0"

Send a real User-Agent. A missing or default agent string gets a 403 with Cloudflare error 1010, and that failure looks like a bad key if you are not expecting it.

Skills install:

bash
npx skills add ZeroPointRepo/youtube-skills --skill youtube-full

MCP install, for runtimes that prefer a server:

bash
claude mcp add --transport http transcript-api https://transcriptapi.com/mcp

Endpoints Worth Knowing

Base URL https://transcriptapi.com/api/v2.

EndpointUseCost
/youtube/transcriptTranscript of one video, format=json or text1 credit
/youtube/searchFind videos or channels, type=video or channel1 credit
/youtube/channel/resolve@handle or URL to channel IDfree
/youtube/channel/latest15 most recent uploads with view counts and timestampsfree
/youtube/channel/videosFull channel walk, 100 per page, continuation token1 credit per page
/youtube/channel/searchSearch inside one channel1 credit
/youtube/playlist/videosPlaylist contents, paginated1 credit per page

Channel endpoints accept an @handle, a channel URL, or a UC... ID directly, so resolving first is optional. Full schema lives at https://transcriptapi.com/openapi.json.

Workflow: Topic Research

bash
# 1. Discover. One credit, up to 50 results.
curl "https://transcriptapi.com/api/v2/youtube/search?q=protein+folding+explained&type=video&limit=20" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY" -H "User-Agent: YourAgent/1.0"

# 2. Filter in the agent, not in the API. Drop by channel, age, duration, title.

# 3. Read only the survivors. One credit each.
curl "https://transcriptapi.com/api/v2/youtube/transcript?video_url=VIDEO_ID&format=text&include_timestamp=true&send_metadata=true" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY" -H "User-Agent: YourAgent/1.0"

Keep include_timestamp=true when the output will be quoted. A claim with a timestamp can be checked by a human in ten seconds; a claim without one cannot. Keep send_metadata=true so the title and channel travel with the text and the summary can attribute correctly.

Workflow: Channel Monitoring

bash
# Free. Poll this on a schedule and diff against what you stored last run.
curl "https://transcriptapi.com/api/v2/youtube/channel/latest?channel=@NASA" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY" -H "User-Agent: YourAgent/1.0"

Store the video IDs you have already handled. Fetch transcripts only for IDs that are new. Because the polling call is free, the cost of a monitor is exactly the number of new videos it actually reads, which makes an hourly job affordable.

Cost Discipline

  • Search once, read many times only if the user asked for depth.
  • Prefer channel/latest over channel/videos when recency is enough. One is free, the other is a paginated walk.
  • Cache transcripts by video ID. A transcript does not change.
  • Cap fan-out. Ten transcripts for a research question is generous; a hundred is a runaway loop with a bill attached.
  • Free tier is 100 credits with no card, so a first run should be designed to fit inside that and still produce something useful.

Evaluation Rubric

Score a YouTube workflow out of 10, two points each:

  1. Resolution: does it accept a URL, a bare ID, and an @handle without asking the user to reformat?
  2. Cost shape: does it filter before reading, and is the worst-case credit spend bounded and stated?
  3. Attribution: does every extracted claim carry a video title and a timestamp?
  4. Failure handling: are 401, 402, 403 with code 1010, 404 with no captions, and 429 handled distinctly, or all swallowed as "failed"?
  5. Idempotence: can the workflow run twice without doing the same paid work twice?

Below 6 means the workflow will either misattribute a quote or burn credits on a retry. Fix those two first.

Common Mistakes

  • Fetching a transcript for every search result. This is the expensive mistake and it is the most common one.
  • Omitting the User-Agent header, then debugging the 403 as an auth problem.
  • Treating a 404 as an outage. It usually means the video has no captions, and the right response is to move to the next candidate.
  • Retrying a 402 in a loop. The balance is empty; report it and stop.
  • Summarizing a transcript without keeping timestamps, which makes every quote unverifiable.
  • Assuming a channel walk is ordered by views. It is not, so sort in the agent.
  • Reaching for yt-dlp or a headless browser first. Both are blocked or throttled from most cloud IP ranges, which is the failure this workflow avoids.

Output Expectations

When this skill runs, the answer should include:

  • What was read, as titles with links, not bare video IDs.
  • Timestamps for any quoted or paraphrased claim.
  • The candidate set that was considered and why the rest were dropped.
  • Credits spent, or an estimate, when the run was larger than a few videos.
  • An explicit note when a video was skipped because it had no captions, so the gap is visible rather than silently missing.

Frequently asked questions

What does the Youtube Research Automation AI skill do?

Design agent workflows that pull YouTube transcripts, search videos and channels, and monitor new uploads without Google API quotas or OAuth setup

Why use Youtube Research Automation on TypingMind?

Because you install it once and use it with any model. Youtube Research Automation is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Youtube Research Automation in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/cosmicstack-labs/mercury-agent-skills/tree/main/categories/automation/youtube-research-automation. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Youtube Research Automation?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Youtube Research Automation?

As many as you like. As long as a model supports skills, you can use Youtube Research Automation with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Youtube Research Automation AI skill free?

Yes. It is published on GitHub by cosmicstack-labs under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇