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

autonota

v0.2.2

Published

CLI to transcribe YouTube audio and summarize transcripts

Downloads

443

Readme

AutoNota

autonota is a Node CLI for downloading YouTube audio, transcribing it with OpenAI Whisper into timestamped JSON, and summarizing transcript JSON into Markdown.

Prerequisites

  • Node.js 22+
  • yt-dlp
  • ffmpeg
  • ffprobe
  • OPENAI_API_KEY

Install

npm install -g autonota

Or run without installing:

npx autonota transcribe <youtube-url> --output <base-path>
npx autonota summarize <transcript-json> --output <summary-md>

Usage

autonota transcribe <youtube-url> --output <base-path>
autonota summarize <transcript-json> --output <summary-md>

Examples:

autonota transcribe "https://www.youtube.com/watch?v=..." --output ./out/demo
autonota summarize ./out/demo.transcript.json --output ./out/demo.summary.md

Commands

Transcribe

autonota transcribe --help

Flags:

  • --output <basePath>: base path used to derive <base>.transcript.json
  • --model <name>: Whisper model override, defaults to whisper-1
  • --lang <code>: transcription language override, defaults to auto detection
  • --browser <name>: optional yt-dlp --cookies-from-browser source
  • --force: overwrite an existing transcript output
  • --base-url <url>: optional OpenAI-compatible base URL override

Notes:

  • Downloaded MP3s are stored beside the --output base path as <base>-<youtube-title-slug>.mp3 and reused if that file already exists.
  • If --output ends with / or \, it is treated as a directory, producing:
    • transcript: <output-dir>/<slug>.transcript.json
    • audio: <output-dir>/<slug>.mp3
  • Omit --lang to let the API auto-detect the source language.

Summarize

autonota summarize --help

Flags:

  • --output <summaryPath>: explicit summary file path
  • --model <name>: summary model override; defaults to gpt-5-mini (OpenAI), claude-sonnet-4-6 (--claude), or gpt-5.4-mini (--codex)
  • --summary-lang <code>: summary language override, defaults to en
  • --force: overwrite an existing summary output
  • --base-url <url>: optional OpenAI-compatible base URL override (OpenAI path only)
  • --claude: use Claude Code CLI for summarization
  • --codex: use Codex CLI for summarization

Notes:

  • --claude and --codex are mutually exclusive.

Progress Output

autonota transcribe streams progress for the two slow steps:

Download — yt-dlp progress lines appear under the spinner as they arrive:

↻ downloading audio
    [download]  45.2% of 32.4MiB at 1.2MiB/s ETA 00:14

Transcription — shows which chunk is being uploaded, and counts down rate-limit waits:

↻ transcribing audio
    chunk 2/5...
↻ transcribing audio
    rate limited, waiting 4m32s (attempt 2/3)...
    retrying in 3m40s...

In non-TTY contexts (pipes, CI) all progress writes to stderr; stdout remains machine-readable artifact paths only.

Artifacts

  • autonota transcribe --output ./out/demo writes ./out/demo.transcript.json
  • autonota summarize ./out/demo.transcript.json --output ./out/demo.summary.md writes ./out/demo.summary.md

Environment

Copy .env.example to .env if you want local environment loading through your shell setup.

Required:

  • OPENAI_API_KEY

Optional:

  • OPENAI_BASE_URL