1. Read Language from Library File
Read the library's library.yaml to get the language code:
```yaml
# Library metadata
library_name: [library-name]
language: en # Language code stored here
...
```
2. Run WhisperX
```bash
whisperx "/full/path/to/video.mov" \
--language en \
--model medium \
--compute_type float32 \
--device cpu \
--output_format json \
--output_dir libraries/[library-name]/transcripts
```
3. Prepare Audio Transcript
After WhisperX completes, format the JSON using our prepare_audio_script:
```bash
ruby .claude/skills/transcribe-audio/prepare_audio_script.rb \
libraries/[library-name]/transcripts/video_name.json \
/full/path/to/original/video_name.mov
```
This script:
- Adds video source path as metadata
- Removes unnecessary fields to reduce file size
- Prettifies JSON
4. Return Success Response
After audio preparation completes, return this structured response to the parent agent:
```
β [video_filename.mov] transcribed successfully
Audio transcript: libraries/[library-name]/transcripts/video_name.json
Video path: /full/path/to/video_filename.mov
```
DO NOT update library.yaml - the parent agent will handle this to avoid race conditions when running multiple transcriptions in parallel.