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

yt-md-summary

v0.1.0

Published

CLI to generate YouTube markdown summaries from transcripts using Google Gemini

Readme

yt-md-summary

CLI that turns a YouTube video's transcript into a markdown summary with key points, using Google Gemini.

yt-md-summary "https://www.youtube.com/watch?v=4z2i6UsQG1k" --dir my-yt-summaries

This writes a file like my-yt-summaries/2026-10-22-build-an-obsidian-backend-not-a-second-brain-4z2i6UsQG1k.md and prints its path.

Install

Requires Node 24 or later.

npm i -g yt-md-summary

Or run it without installing:

npx yt-md-summary "https://www.youtube.com/watch?v=<id>"

API key

Get a free key from Google AI Studio and export it:

export GEMINI_API_KEY="your-key"

GEMINI_API_KEY is checked first. If it isn't set, GOOGLE_API_KEY is used instead.

Free tier notes

  • On the Gemini API free tier, Google may use the content you send (here, the video transcript) to improve its products. See Gemini API pricing.
  • Rate limits are per Google Cloud project. Check yours at aistudio.google.com/rate-limit. Rate-limited requests are retried with backoff before giving up.

Usage

yt-md-summary <url> [--dir <path>] [--force] [--model <id>]

| Option | Description | | --------------- | --------------------------------------------------------------------------- | | <url> | https://www.youtube.com/watch?v=<id> or https://www.youtube.com/shorts/<id> | | --dir <path> | Existing directory to write into. Defaults to the current directory. It is never created for you. | | --force | Write a new summary even if one for this video already exists in --dir. | | --model <id> | Gemini model to use. Defaults to gemini-3.8-flash. | | -h, --help | Show help. | | -v, --version | Show the version. |

Before anything is downloaded, the CLI checks the URL, the directory, the API key and whether a summary for this video already exists. If any check fails, it exits with an error.

Progress messages go to stderr and only the written file's path goes to stdout, so you can do things like:

code "$(yt-md-summary "https://www.youtube.com/watch?v=<id>" --dir notes)"

Output

Files are named <publish date>-<title>-<video id>.md. The publish date or the title is left out if it isn't available.

---
title: "Video title"
url: "https://www.youtube.com/watch?v=..."
videoId: "..."
channel: "Channel name"
published: 2026-10-20
summarized: 2026-10-25
model: "gemini-3.8-flash"
---

# Video title

## Summary

...

## Key Points

- ...

Summaries are always written in English, whatever language the captions are in. The video must have captions (auto-generated captions work).

Contributing

See CONTRIBUTING.md.

License

MIT