New:Microsoft Teams Notifications Are Now Available in Socket.Learn more →
Get Started

@spark-apps/quickpeak

Package Overview
Dependencies
Maintainers
1
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@spark-apps/quickpeak

Auto-generate demo videos for your web app with AI

Source
npmnpm
Version
1.1.1
Version published
Weekly downloads
4
Maintainers
1
Weekly downloads
 
Created
Source

QuickPeak

Auto-generate demo videos for your web app with AI.

Quick Start

npm install -g @spark-apps/quickpeak

qp http://localhost:3000

Setup

# Install dependencies
npx playwright install chromium
apt install ffmpeg   # Linux
brew install ffmpeg  # macOS

Add GOOGLE_API_KEY to your .env — get one free at aistudio.google.com/apikey

Usage

qp <url> [lang=xx]
CommandDescription
qp http://localhost:3000Record demo (English)
qp http://localhost:3000 lang=arRecord demo (Arabic)
qp http://localhost:3000 lang=esRecord demo (Spanish)
qp --helpShow help

Workflow

qp http://localhost:3000
  • AI analyzes the page and generates demo/plan.json
  • Pause to review/edit the plan
  • Press Enter to record
  • Output: demo/demo.mp4

Config

Optionally create quickpeak.config.json (YouTube Shorts example):

{
  "lang": "en",
  "video": {
    "width": 1080,
    "height": 1920,
    "fps": 30,
    "cursor": true,
    "highlight": false,
    "fadeIn": 0.5,
    "fadeOut": 0.5,
    "transition": "none",
    "format": "mp4",
    "preset": "fast",
    "quality": 23
  },
  "timing": {
    "minStepDuration": 1500,
    "audioPadding": 500
  },
  "output": {
    "dir": "./demo"
  }
}
OptionDefaultDescription
langenLanguage code (auto-selects voice)
video.width1080Video width in pixels
video.height1920Video height in pixels
video.fps30Frames per second
video.cursortrueShow mouse cursor
video.highlightfalseDim background, highlight active element
video.fadeIn0.5Fade in duration at video start (seconds, 0 to disable)
video.fadeOut0.5Fade out duration at video end (seconds, 0 to disable)
video.transitionnoneStep transition effect (none or fade)
video.formatmp4Output format
video.presetfastFFmpeg preset (fast/medium/slow)
video.quality23CRF (18=best, 28=smallest, 23=balanced)
music.path-Path to background music MP3
music.volume0.3Music volume (0.0-1.0)
music.fadeIn2Music fade in duration (seconds)
music.fadeOut2Music fade out duration (seconds)

Languages

Set lang in config to auto-select the best voice for that language:

CodeLanguageVoice
enEnglishen-US-AvaMultilingualNeural
arArabicar-LB-LaylaNeural
esSpanishes-ES-ElviraNeural
frFrenchfr-FR-DeniseNeural
deGermande-DE-KatjaNeural
zhChinesezh-CN-XiaoxiaoNeural
jaJapaneseja-JP-NanamiNeural
koKoreanko-KR-SunHiNeural
ptPortuguesept-BR-FranciscaNeural
ruRussianru-RU-SvetlanaNeural
hiHindihi-IN-SwaraNeural
trTurkishtr-TR-EmelNeural

See src/voices.ts for all 60+ supported languages.

Uses Microsoft Edge TTS (free, no API key). Full voice list

OptionDefaultDescription
timing.minStepDuration1500Minimum step duration (ms)
timing.audioPadding500Padding after audio (ms)
output.dir./demoOutput directory

Captions

Style captions by creating captions.css in your project root:

.caption {
  font-family: "Arial Black", Impact, sans-serif;
  font-size: 64px;
  font-weight: bold;
  color: #FFFF00;
  -qp-highlight: #FFFFFF;
  -webkit-text-stroke: 2px rgba(0, 0, 0, 0.5);
  text-shadow: 3px 3px 6px rgba(0, 0, 0, 0.4);
  margin-bottom: 100px;
}
PropertyDescription
font-familyFont face
font-sizeSize in pixels
font-weightbold or normal
colorText color (hex)
-qp-highlightKaraoke highlight color
-webkit-text-strokeOutline width and color
text-shadowShadow offset
margin-bottomDistance from bottom

Plan File

Edit demo/plan.json before recording to customize steps:

{
  "steps": [
    {
      "id": 1,
      "action": "click",
      "target": "#submit-btn",
      "caption": "Click submit to save",
      "duration": 2000,
      "zoom": 1.2
    }
  ]
}
Step PropertyDescription
actionnavigate, click, type, select, check, wait, scroll
targetCSS selector (prefer [data-testid="..."])
valueText to type or option to select
captionVoiceover narration
durationStep duration in ms (auto-calculated from audio)
zoomZoom factor for this step (e.g., 1.2 = 20% zoom in)

Output

FileDescription
demo/demo.mp4Final video
demo/plan.jsonEditable script
captions.cssCaption styling (project root)

License

MIT

Keywords

demo

FAQs

Package last updated on 06 Dec 2025

Related posts