Socket
Book a DemoInstallSign in
Socket

efficient-recorder

Package Overview
Dependencies
Maintainers
0
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

efficient-recorder

Efficient audio recorder that switches between 8kHz and 44.1kHz based on volume

npmnpm
Version
1.0.2
Version published
Weekly downloads
0
Maintainers
0
Weekly downloads
 
Created
Source

Today I was inspired by this tweet after which I fell into this rabbit hole to create an efficient recorder for your Screen, System audio, and Mic.

After trying to implement this using Claude in Swift I completely failed (see folder swift-version) so I decided to create a simpler version (also using Claude) in Node.js

Efficient Recorder

An intelligent, multi-modal recording CLI tool that automatically captures and streams audio, screenshots, and webcam video to S3. Uses advanced detection and efficient resource management to capture multimedia content.

Features

  • Intelligent Audio Recording:

    • Monitors audio at 8kHz with automatic speech detection
    • Switches to high-quality 44.1kHz recording when speech is detected
    • Automatically stops recording after 2 seconds of silence
    • Direct streaming to S3
  • Automated Screenshot Capture:

    • Configurable screenshot interval
    • Immediate upload of screenshots to S3
    • Low-overhead screen capture
  • Webcam Video Capture:

    • Configurable webcam capture interval
    • Direct upload of webcam images to S3
    • Supports custom webcam device selection
  • Efficient Resource Management:

    • Minimal system resource usage during idle periods
    • Intelligent detection and recording mechanisms
    • Concurrent upload processing

Prerequisites

Required Software

This package requires:

  • SoX (Sound eXchange) for audio recording

    • Linux: sudo apt-get install sox libsox-fmt-all
    • MacOS: brew install sox
    • Windows: Download from SourceForge
  • Webcam capture tools

    • Ubuntu: sudo apt-get install fswebcam
    • Arch Linux: sudo pamac build fswebcam
    • MacOS: brew install imagesnap
    • Windows: Standalone exe included in node-webcam

S3 Configuration

You'll need:

  • S3-compatible storage endpoint
  • Access key
  • Secret key
  • A bucket named "recordings" (or modify the code to use a different bucket name)

Usage

Run the recorder using npx:

npx efficient-recorder \
  --endpoint YOUR_S3_ENDPOINT \
  --key YOUR_ACCESS_KEY \
  --secret YOUR_SECRET_KEY \
  --enable-screenshot \
  --screenshot-interval 5000 \
  --enable-webcam \
  --webcam-interval 3000 \
  --image-quality 80

Command Line Options

  • --endpoint: Your S3-compatible storage endpoint URL
  • --key: Your AWS/S3 access key
  • --secret: Your AWS/S3 secret key
  • --enable-screenshot: Enable screenshot capture
  • --screenshot-interval: Interval between screenshots (ms)
  • --enable-webcam: Enable webcam capture
  • --webcam-interval: Interval between webcam captures (ms)
  • --webcam-device: Specify webcam device (optional)
  • --image-quality: Image quality for webcam/screenshots (1-100)

How It Works

  • Audio Monitoring

    • Continuous low-quality audio monitoring
    • Switches to high-quality recording when speech is detected
    • Automatic recording start and stop based on sound levels
  • Screenshot Capture

    • Captures screenshots at specified intervals
    • Immediate upload to S3
    • Configurable capture frequency
  • Webcam Capture

    • Captures webcam images at specified intervals
    • Supports multiple webcam devices
    • Immediate upload to S3
  • Efficient Upload

    • Queued upload processing
    • Concurrent uploads with multi-part support
    • Minimal system resource overhead

Multimedia Specifications

Audio

  • Monitoring: 8kHz, Mono
  • Recording: 44.1kHz, Stereo
  • Format: WAV (16-bit PCM)

Screenshots

  • Captured at system screen resolution
  • Uploaded as PNG

Webcam

  • Resolution: 1280x720
  • Format: JPEG
  • Configurable quality

Troubleshooting

  • "Command not found: rec"

    • Ensure SoX is installed correctly
    • Verify SoX is in your system PATH
  • S3 Upload Issues

    • Check S3 credentials
    • Verify bucket exists and write permissions are granted
  • No Audio/Video Input

    • Check system input devices
    • Verify microphone and webcam permissions

License

MIT License - See LICENSE file for details

Contributing

Contributions are welcome! Please submit a Pull Request.

Support

For issues and feature requests, please open an issue on GitHub.

FAQs

Package last updated on 04 Jan 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts