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

@ireull/transcribe-cli

v1.18.0

Published

CLI для транскрипции через Deepgram/AssemblyAI + yt-dlp + ffmpeg

Readme

transcribe-cli

CLI для транскрипции аудио/видео файлов и YouTube-ссылок через Deepgram или AssemblyAI. Поддерживает разделение по спикерам, таймстампы, авто-краткое содержание и записи Google Meet. После готового транскрипта — меню «Результат»: открыть файл, показать в папке, скопировать текст или путь в буфер.


Содержание


Требования

Перед установкой убедитесь, что установлено:

Node.js ≥ 18

  • Скачать: https://nodejs.org
  • Проверить: node -v

ffmpeg

# macOS
brew install ffmpeg

# Windows (через Chocolatey)
choco install ffmpeg

# Windows (вручную)
# Скачать с https://ffmpeg.org/download.html → добавить в PATH

Проверить: ffmpeg -version

yt-dlp (только для режима «Ссылка»)

pip install yt-dlp

# или macOS
brew install yt-dlp

Проверить: yt-dlp --version


Установка

Одной командой (рекомендуется)

npm install -g @ireull/transcribe-cli

Работает на macOS, Linux и Windows одинаково. Ничего клонировать не нужно — npm сам скачает пакет из реестра и поставит команду transcribe глобально.

Если получите EACCES — запустите с sudo (macOS/Linux) или из консоли с правами администратора (Windows).

Прямо из GitHub (без npm-реестра)

Тот же результат, минуя реестр (ставит из git напрямую):

npm install -g git+https://github.com/ireull/transcribe-cli.git

Из клона (для разработки)

Если склонировали репозиторий и хотите поставить свою локальную сборку:

cd transcribe-cli
npm i -g .

Команда transcribe станет доступна из любого терминала — одинаково на macOS, Linux и Windows. Папку с исходниками можно удалить.


Получение ключа Deepgram

Deepgram используется для распознавания речи. Есть бесплатный тариф ($200 кредитов при регистрации).

  1. Перейдите на https://console.deepgram.com
  2. Зарегистрируйтесь
  3. Слева: API KeysCreate a New API Key
  4. Название — любое, права — Member
  5. Скопируйте ключ вида dg-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Ключ показывается только один раз — сохраните его сразу.


Первый запуск

transcribe

При первом запуске CLI попросит ввести API-ключ Deepgram и предложит добавить ярлык на рабочий стол:

  Введите API-ключ Deepgram: dg-...
  Ключ сохранен.

  Добавить ярлык на рабочий стол? Yes
  ✓ Ярлык создан

Настройки сохраняются в ~/.config/transcribe-cli/config.json (или $XDG_CONFIG_HOME/transcribe-cli/ если задан) и запоминаются между сессиями.

Навигация: Ctrl+C на любом шаге (выбор файла или записи, папка) возвращает в главное меню, а не закрывает программу — не нужно начинать с нуля. Из главного меню Ctrl+C (или «Выход») завершает работу.


Режимы работы

Файл → транскрипт

Открывает диалог выбора файла. Поддерживаемые форматы: .wav, .mp3, .ogg, .flac, .m4a, .opus, .webm, а также любые видео (конвертируются через ffmpeg).

Несколько файлов (batch)

Выберите несколько файлов через Ctrl+клик — CLI обработает их по очереди в одну папку.

Ссылка → транскрипт

Вставьте любую ссылку, которую поддерживает yt-dlp (YouTube, VK, и сотни других сайтов). Требует установленного yt-dlp.

Google Meet → транскрипт

Транскрибирует записи прямо с Google Drive. Настройка ниже.


Опции транскрипции

Опции живут в Настройки → Опции транскрипции (один чеклист: пробел — вкл/выкл, Enter — сохранить) и применяются ко всем транскрипциям автоматически — перед запуском ничего выбирать не нужно. Текущий набор печатается строкой перед стартом (Опции: спикеры · склейка · ...):

  • Разделять спикеров — диаризация (улучшенная модель)
  • Склеивать реплики одного спикера — подряд идущие фразы одного человека в один блок (чище и компактнее)
  • Числа цифрами — «двадцать три» → «23»
  • Авто-определение языка — язык определяется сам; выключи, чтобы задать вручную (ru / en / другой код BCP-47)

Если спикеров несколько, после транскрипции CLI покажет первые реплики каждого и предложит назвать их по именам.

Формат выходного файла (Markdown)

# Название файла или видео

> Длительность: 12:34

**Иван** [00:00:05]
Привет, как дела?

**Мария** [00:00:08]
Нормально, спасибо.

Google Meet

Позволяет выбирать и транскрибировать записи Meet прямо из папки Google Drive, без ручного скачивания.

Список записей подгружается целиком (свежие сверху), а выбор — это поиск с фильтром «по мере ввода»: начните печатать часть названия или даты — список сразу сужается. Несколько слов через пробел ищутся по «И» (все должны встретиться), так что иван 06 найдёт июньскую встречу с Иваном. Пустой ввод показывает все записи.

Подготовка Service Account (один раз)

  1. Перейдите на https://console.cloud.google.com
  2. Создайте новый проект (или выберите существующий)
  3. Слева: APIs & ServicesLibrary → найдите Google Drive APIEnable
  4. Слева: IAM & AdminService AccountsCreate Service Account
    • Название — любое, например transcribe-bot
    • Нажмите Create and ContinueDone
  5. Кликните на созданный SA → вкладка KeysAdd KeyCreate new keyJSON
  6. Скачается файл имя-проекта-xxxxxxxx.json — сохраните его
  7. Скопируйте email SA вида transcribe-bot@имя-проекта.iam.gserviceaccount.com
  8. Откройте Google Drive → папку Meet Recordings → ПКМ → Share → вставьте email SA → EditorSend

Подключение в CLI

  1. Запустите transcribe
  2. Выберите Google Meet → транскрипт
  3. CLI сам предложит выбрать service-account.json через диалог
  4. После импорта ключ сохраняется и больше не нужно его указывать

Переименование записи на Диске (опционально)

Если у записи дефолтное имя — код встречи (bbb-tupg-phm), CLI может переименовать сам файл записи на Google Drive в осмысленное имя транскрипта (то же, что у .md). По умолчанию выключено.

  1. Включите авто-саммари — из него берётся имя.
  2. transcribeНастройки📛 Переименовывать запись Meet на ДискеВключить.
  3. Папка Meet Recordings должна быть расшарена на SA как «Редактор» (не «Просмотр») — иначе Google вернёт ошибку прав.

После транскрипции CLI спрашивает подтверждение перед каждым переименованием. Записи с осмысленным именем не трогаются. Если прав нет — транскрипт всё равно сохраняется, переименование просто пропускается.


Провайдер транскрипции (Deepgram / AssemblyAI)

По умолчанию транскрибирует Deepgram. Опционально можно переключиться на AssemblyAI — он делает транскрипт и разделение спикеров в одном облачном вызове и, в отличие от Deepgram, позволяет задать число спикеров.

  1. Бесплатный ключ (без карты): https://www.assemblyai.com
  2. transcribeНастройки☁️ Провайдер транскрипции → задайте ключ → выберите AssemblyAI

При разделении спикеров CLI показывает «Найдено спикеров: N — столько и есть?». Если не совпало — вводите точное число, и диаризация пересчитывается. У Deepgram такой ручки нет (число определяется автоматически).


Авто-саммари (Gemini)

Опционально: после транскрипции CLI добавляет в начало .md блок «## Краткое содержание» и, если у записи нет нормального имени (дефолтный код Google Meet вроде bbb-tupg-phm), берёт имя файла из краткого содержания — вручную ничего вводить не нужно.

Работает через Google Gemini (русский саммаризирует отлично, в отличие от Deepgram).

Включение:

  1. Получите бесплатный ключ (без карты): https://aistudio.google.com/app/apikey
  2. transcribeНастройки🧠 Авто-саммари → задайте ключ → Включить
  3. Модель по умолчанию — gemini-3.5-flash

После включения саммари делается автоматически на каждом запуске. Если ключ не задан, лимит исчерпан или сеть недоступна — транскрипт всё равно сохраняется, просто без саммари.

Приватность: транскрипт уходит в Google (на бесплатном тарифе данные могут использоваться для улучшения моделей). Для рабочих созвонов учитывайте это.


Обновление

transcribe upgrade

Команда проверит последнюю версию в npm-реестре и, если обновлений нет, выйдет мгновенно. Иначе — вызовет npm install -g @ireull/transcribe-cli@latest и обновит глобальную установку. Токенов или авторизации не требуется — пакет публичный.

Также доступно через меню: Настройки → Обновить transcribe, или флагом transcribe --upgrade.

Возможные ошибки:

  • EACCES — подскажет запустить sudo npm install -g ....
  • Windows — закрыть все окна transcribe и повторить (запущенный процесс может блокировать перезапись).

Установка перезапишет предыдущую версию. Настройки (ключи, папки) сохранятся — они хранятся отдельно в ~/.config/transcribe-cli/.


Удаление

npm uninstall -g @ireull/transcribe-cli

Настройки и SA-ключ удалить вручную:

# macOS / Linux
rm -rf ~/.config/transcribe-cli/

# Windows (PowerShell)
Remove-Item -Recurse "$env:USERPROFILE\.config\transcribe-cli"