← Back to list

wavecap-export
by TobiasWooldridge
Transcribes emergency radio streams in real time, to help volunteers/rescue staff/enthusiasts stay abreast of them
⭐ 0🍴 0📅 Jan 5, 2026
SKILL.md
name: wavecap-export description: Export WaveCap transcriptions and pager data. Use when the user wants to export transcriptions as JSON, download reviewed transcriptions with audio, or export pager feed data.
WaveCap Export Skill
Use this skill to export transcription data from WaveCap.
Export All Transcriptions (JSON)
Export all transcriptions across all streams as a JSON array:
curl -s http://localhost:8000/api/transcriptions/export > transcriptions.json
Filter with jq
# Export just text and timestamps
curl -s http://localhost:8000/api/transcriptions/export | \
jq '[.[] | {streamId, timestamp, text}]' > transcriptions_simple.json
# Export only transcriptions from a specific stream
curl -s http://localhost:8000/api/transcriptions/export | \
jq '[.[] | select(.streamId == "STREAM_ID")]' > stream_transcriptions.json
# Export with corrections where available
curl -s http://localhost:8000/api/transcriptions/export | \
jq '[.[] | {timestamp, text: (.correctedText // .text), reviewStatus}]' > transcriptions_corrected.json
Export Reviewed Transcriptions (ZIP)
Download reviewed transcriptions with audio recordings as a ZIP file:
curl -s -o reviewed_export.zip http://localhost:8000/api/transcriptions/export-reviewed
Filter by Review Status
# Only corrected transcriptions
curl -s -o corrected.zip "http://localhost:8000/api/transcriptions/export-reviewed?status=corrected"
# Only verified transcriptions
curl -s -o verified.zip "http://localhost:8000/api/transcriptions/export-reviewed?status=verified"
# Both corrected and verified (default)
curl -s -o reviewed.zip "http://localhost:8000/api/transcriptions/export-reviewed?status=corrected&status=verified"
Export for Regression Testing
Export in a format suitable for audio regression tests:
curl -s -o regression_bundle.zip "http://localhost:8000/api/transcriptions/export-reviewed?format=regression"
ZIP Contents
The exported ZIP contains:
reviewed_export.zip
├── metadata.json # Export timestamp, filter info
├── transcriptions.jsonl # One JSON object per line
└── recordings/ # Audio files (if available)
├── abc123.wav
└── def456.wav
Export Pager Feed Data
Export all pager messages for a specific stream:
# Requires editor auth
TOKEN=$(curl -s -X POST http://localhost:8000/api/auth/login \
-H "Content-Type: application/json" \
-d '{"password": "YOUR_EDITOR_PASSWORD"}' | jq -r '.token')
curl -s -o pager_export.zip \
-H "Authorization: Bearer $TOKEN" \
"http://localhost:8000/api/pager-feeds/{STREAM_ID}/export"
Pager Export Contents
pager_export.zip
├── metadata.json # Export metadata
└── messages.jsonl # One pager message per line
Working with JSONL Files
JSONL (JSON Lines) files have one JSON object per line:
# Read JSONL and convert to array
cat transcriptions.jsonl | jq -s '.'
# Filter JSONL
cat transcriptions.jsonl | jq 'select(.confidence > 0.8)'
# Count entries
wc -l transcriptions.jsonl
# Get first 10 entries
head -10 transcriptions.jsonl | jq -s '.'
Export Statistics
Get summary statistics from exported data:
# Count by stream
curl -s http://localhost:8000/api/transcriptions/export | \
jq 'group_by(.streamId) | map({stream: .[0].streamId, count: length})'
# Count by review status
curl -s http://localhost:8000/api/transcriptions/export | \
jq 'group_by(.reviewStatus) | map({status: .[0].reviewStatus, count: length})'
# Average confidence by stream
curl -s http://localhost:8000/api/transcriptions/export | \
jq 'group_by(.streamId) | map({stream: .[0].streamId, avgConfidence: ([.[].confidence] | add / length)})'
# Total duration of all recordings
curl -s http://localhost:8000/api/transcriptions/export | \
jq '[.[].duration // 0] | add'
Export for Analysis
CSV Export
curl -s http://localhost:8000/api/transcriptions/export | \
jq -r '["timestamp","streamId","text","confidence"], (.[] | [.timestamp, .streamId, .text, .confidence]) | @csv' > transcriptions.csv
Export with Pager Incident Details
curl -s http://localhost:8000/api/transcriptions/export | \
jq '[.[] | select(.pagerIncident != null) | {
timestamp,
incidentId: .pagerIncident.incidentId,
callType: .pagerIncident.callType,
address: .pagerIncident.address,
alarmLevel: .pagerIncident.alarmLevel
}]' > incidents.json
Tips
- Large exports may take time - use
-oto save directly to file - JSONL format is more memory-efficient for processing large datasets
- The ZIP export includes audio files which can be large
- Use
jq -cfor compact output when piping to files - For incremental exports, use the search API with date filters instead
Score
Total Score
60/100
Based on repository quality metrics
✓SKILL.md
SKILL.mdファイルが含まれている
+20
○LICENSE
ライセンスが設定されている
0/10
✓説明文
100文字以上の説明がある
+10
○人気
GitHub Stars 100以上
0/15
○最近の活動
3ヶ月以内に更新がある
0/10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
○タグ
1つ以上のタグが設定されている
0/5
Reviews
💬
Reviews coming soon