npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

ytb-tools

v0.1.0

Published

Keyless MCP server for YouTube search, transcript extraction (auto-provisioned yt-dlp), and host-driven summarization.

Downloads

160

Readme

🎬 ytb-tools

npm version license: MIT

Search YouTube, pull transcripts, and get AI summaries — right inside Claude and any other MCP client.

ytb-tools is a Model Context Protocol server that turns YouTube into something your AI assistant can actually work with. Ask it to find videos, grab a transcript, or summarize a talk — it just works.

Zero setup. No API keys. No Google account. No manual installs. ytb-tools provisions everything it needs on its own.


What you can do

  • 🔎 Search YouTube — "find me the top React 19 talks" → ranked results with titles, channels, durations, and views.
  • 📝 Get transcripts — full transcripts in the video's language (or any available caption track), saved to a tidy local library.
  • 🧠 Summarize videos — TL;DR, structured notes, or a deep dive — written by Claude, in the video's own language.
  • 💾 Builds your library — every transcript and summary is auto-saved as clean files you can browse, search, and keep.

Quick start

Any MCP client (Claude Desktop, Cursor, Cline, …)

Add this to your client's MCP config — that's the whole install:

{
  "mcpServers": {
    "ytb-tools": {
      "command": "npx",
      "args": ["-y", "ytb-tools"]
    }
  }
}

Then just ask:

"Search YouTube for the best intro to Rust, then summarize the top result."

Claude Code (plugin)

Install it as a plugin to get the slash commands. Run these inside Claude Code:

/plugin marketplace add aliildan/ytb-tools
/plugin install ytb-tools@ytb-tools

The first command registers this repo as a marketplace; the second installs the plugin (which pulls in the MCP server via npx and adds the slash commands). Prefer a menu? Just run /plugin.

You then get three commands:

| Command | What it does | |---|---| | /yt-search <query> | List ranked search results | | /yt-transcript <url\|id> [lang] | Fetch a transcript | | /yt-summary <url\|id> [quick\|standard\|detailed] | Summarize at the depth you want |

/yt-summary automatically picks the right model for the job — quick → Haiku, standard → Sonnet, detailed → Opus — and writes the summary in the video's language.

Updating the plugin

When a new version ships, refresh the marketplace catalog and update:

/plugin marketplace update ytb-tools
/plugin update ytb-tools

Uninstalling

/plugin uninstall ytb-tools@ytb-tools

Scripting it? The same actions work non-interactively from your shell:

claude plugin marketplace add aliildan/ytb-tools
claude plugin install ytb-tools@ytb-tools

Research a whole topic at once

Installed in Claude Code, the yt-research skill chains everything together. Just ask in plain language:

"Research the top 30 YouTube videos on 'rust async' and give me a digest."

It searches, pulls each transcript, summarizes each (defaulting to quick/Haiku to keep big batches cheap), and produces a combined digest — recurring themes, a ranked "start here" shortlist, and any videos it had to skip. For large runs it confirms with you first and processes in batches with progress updates.

Your library

Everything is saved automatically (default ~/ytb-tools/):

~/ytb-tools/
├── transcripts/
│   ├── dQw4w9WgXcQ.en.json      # timestamped segments
│   └── dQw4w9WgXcQ.en.txt       # plain text
└── summaries/
    └── dQw4w9WgXcQ.standard.md  # Markdown with title, url, model, date

Want them somewhere else? Set YT_OUTPUT_DIR.


The tools

| Tool | Does | |---|---| | youtube_search | Search YouTube and return ranked video results | | youtube_get_transcript | Extract a transcript (with language selection), auto-saved | | youtube_save_summary | Save a generated summary to your library |


Configuration

All optional:

| Variable | Purpose | Default | |---|---|---| | YT_OUTPUT_DIR | Where transcripts & summaries are saved | ~/ytb-tools | | YT_CACHE_DIR | Cache location | OS cache dir | | YT_DLP_PATH | Use an existing yt-dlp instead of the bundled one | auto |


How it works (the short version)

Search runs entirely in-process via youtubei.js — no key, no quotas. Transcripts are powered by yt-dlp, which ytb-tools downloads and manages for you automatically the first time you need it (it reuses the Node runtime that's already running — no Python, no Deno). Summaries are written by your assistant's own model, so there's no extra API bill.


License

MIT © aliildan