Skip to content
Back to skills

Wavecap Audio

ASecurity

Analyze recorded audio files from WaveCap. Use when the user wants to inspect audio recordings, check audio quality, list available recordings, or get audio file metadata.

  • 666 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 2, 2026
ai-agentsbashapi

Works with

  • api

Security analysis

A96/100
  • mediumUses curl or wget to download content

Pro shows the line behind each finding and how to fix it

Scanned September 2, 2026

npx -y skills add majiayu000/claude-skill-registry --skill wavecap-audio --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Wavecap Audio?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Wavecap Audio
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-wavecap-audio/badge)](https://www.skillsdirectory.com/skills/majiayu000-wavecap-audio)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: wavecap-audio
description: Analyze recorded audio files from WaveCap. Use when the user wants to inspect audio recordings, check audio quality, list available recordings, or get audio file metadata.
---

# WaveCap Audio Analysis Skill

Use this skill to analyze and inspect recorded audio files from WaveCap transcription sessions.

## Recordings Location

Audio recordings are stored in the state directory:
```bash
STATE_DIR="/Users/thw/Projects/WaveCap/state"
RECORDINGS_DIR="$STATE_DIR/recordings"
```

Recordings are also accessible via HTTP at `http://localhost:8000/recordings/`

## List Available Recordings

### List all recordings
```bash
ls -la "$STATE_DIR/recordings/" | head -50
```

### List recordings with sizes (sorted by date)
```bash
ls -lht "$STATE_DIR/recordings/" | head -30
```

### Count total recordings
```bash
ls "$STATE_DIR/recordings/" 2>/dev/null | wc -l
```

### Find recordings by date
```bash
# Today's recordings
find "$STATE_DIR/recordings" -name "*.wav" -mtime 0 -type f

# Last 7 days
find "$STATE_DIR/recordings" -name "*.wav" -mtime -7 -type f
```

## Get Audio File Metadata

### Basic file info
```bash
file "$STATE_DIR/recordings/FILENAME.wav"
```

### Detailed audio properties (requires ffprobe/sox)
```bash
# Using ffprobe (if available)
ffprobe -v quiet -show_format -show_streams "$STATE_DIR/recordings/FILENAME.wav" 2>/dev/null | grep -E "duration|sample_rate|channels|bit_rate"

# Using soxi (if sox installed)
soxi "$STATE_DIR/recordings/FILENAME.wav" 2>/dev/null
```

### Get duration of a recording
```bash
ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "$STATE_DIR/recordings/FILENAME.wav" 2>/dev/null
```

## Find Recordings for a Transcription

### Get recording URL from transcription
```bash
curl -s "http://localhost:8000/api/streams/{STREAM_ID}/transcriptions?limit=10" | \
  jq '.transcriptions[] | {id, timestamp, recordingUrl, text}'
```

### Check if recording file exists
```bash
RECORDING_URL="recordings/abc123.wav"
FILENAME=$(basename "$RECORDING_URL")
ls -la "$STATE_DIR/recordings/$FILENAME" 2>/dev/null || echo "Recording not found"
```

## Analyze Audio Quality

### Check for very short recordings (likely noise/errors)
```bash
find "$STATE_DIR/recordings" -name "*.wav" -size -10k -type f | head -20
```

### Check for large recordings (long transmissions)
```bash
find "$STATE_DIR/recordings" -name "*.wav" -size +500k -type f | head -20
```

### Get total disk usage
```bash
du -sh "$STATE_DIR/recordings/"
```

### List recordings without transcriptions
```bash
# Get all transcription recording URLs
TRANSCRIBED=$(curl -s http://localhost:8000/api/transcriptions/export | \
  jq -r '.[].recordingUrl // empty' | xargs -I{} basename {} | sort | uniq)

# Compare with files on disk
ls "$STATE_DIR/recordings/" | sort > /tmp/all_recordings.txt
echo "$TRANSCRIBED" | sort > /tmp/transcribed.txt
comm -23 /tmp/all_recordings.txt /tmp/transcribed.txt | head -20
```

## Stream Audio via API

### Access recording via HTTP
```bash
# Recordings are served at /recordings/
curl -s -I "http://localhost:8000/recordings/FILENAME.wav"

# Download a recording
curl -o local_copy.wav "http://localhost:8000/recordings/FILENAME.wav"
```

### Stream live audio (if stream supports it)
```bash
# Check if stream supports live audio
curl -s http://localhost:8000/api/streams | jq '.[] | select(.source == "audio" or .source == "remote") | {id, name, source}'
```

## Clean Up Old Recordings

### Find recordings older than 30 days
```bash
find "$STATE_DIR/recordings" -name "*.wav" -mtime +30 -type f | wc -l
```

### Calculate space used by old recordings
```bash
find "$STATE_DIR/recordings" -name "*.wav" -mtime +30 -type f -exec du -ch {} + 2>/dev/null | tail -1
```

## Tips

- Recording filenames typically include a UUID or timestamp
- Use `recordingUrl` from transcription API responses to link audio to transcripts
- The recordings directory may grow large over time - monitor disk usage
- Audio files are WAV format, typically 16kHz mono
- Very short recordings (< 1 second) may be noise or squelch breaks

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.