A CLI tool that extracts embedded audio recordings from .goodnotes files, with optional conversion to Whisper-compatible WAV format.
- Extracts M4A and MP3 audio attachments from
.goodnotesfiles - Sorts extracted files by recording creation time (read from MP4 metadata)
- Outputs files named with the source document name, timestamp, and index
- Python 3.10+
- uv
ffmpeg(only required for--for-whisperoption)
# Extract audio from a single file
uv run main.py Notes.goodnotes
# Extract from multiple files to a specific directory
uv run main.py Notes.goodnotes Lecture.goodnotes -o ./extracted
# Convert to Whisper-compatible WAV
uv run main.py Notes.goodnotes --for-whisper -o ./wavs| Flag | Description |
|---|---|
-o, --output DIR |
Output directory (default: current directory) |
--for-whisper |
Convert audio to 16 kHz mono 16-bit WAV using ffmpeg |
{document_stem}_{YYYYMMDDHHmmSS}_{index}.{ext}
Example: Notes_20240315143022_01.m4a