Skip to main content
Graphify can’t read audio directly, so it transcribes recordings to text with faster-whisper and adds the transcripts to the graph as documents. Design reviews, incident calls and recorded talks then link to the code they discuss.

What you’ll build

  • Text transcripts of your recordings in graphify-out/transcripts/.
  • A graph where meeting topics connect to the functions and modules they mention.
  • A domain prompt that makes Whisper spell your project’s names correctly.

Setup

The video extra installs faster-whisper and yt-dlp. Graphify picks up .mp4, .mov, .webm, .mkv, .avi, .m4v, .mp3, .wav, .m4a and .ogg.
At the time of writing, faster-whisper 1.2.1 fails with PyAV 16 or later: open() got an unexpected keyword argument 'metadata_errors'. Pin av<16, as above, until this is fixed upstream.

Step 1: Let your agent do it

If you use the Graphify skill in an AI coding assistant, point it at the folder:
The skill finds the recordings, writes a one-sentence domain hint from the most connected nodes in your graph, transcribes with that hint, and extracts the transcripts with the rest of your files. For better accuracy, use a larger model:

Step 2: Or transcribe from a script

Without an agent, call the transcriber yourself. Save this as transcribe.py:
Run it in an environment that has the video extra:
Transcripts are cached by file name. Run it again and finished files return straight away. Set GRAPHIFY_WHISPER_MODEL to small, medium or large-v3 to trade speed for accuracy. The default is base.

Step 3: Why the prompt matters

Whisper guesses at names it hasn’t heard. In our test with the tiny model and no prompt, “retry queue” came out as “retry Q”. Passing the project’s terms as initial_prompt fixed it. Keep the prompt to one sentence of real names from your code, such as module, service and table names.

Step 4: Add transcripts to the graph

Copy the transcripts next to your code and extract. Transcripts are documents, so extraction needs an LLM backend:
To keep everything on your machine, use --backend ollama. See Run Graphify locally with Ollama.
add downloads the audio with yt-dlp into ./raw. Transcribe it as in Step 2, then extract.

When it goes wrong

open() got an unexpected keyword argument 'metadata_errors'. PyAV is too new for faster-whisper. Reinstall with --with "av<16". Names are misspelled. Add them to the prompt, or use a larger model. A transcript didn’t change after a fix. The cache is keyed by file name. Delete graphify-out/transcripts/<name>.txt and run again. It’s slow. Transcription runs on the CPU. Use base or small for long recordings, or transcribe overnight.

Production patterns

  • Strip personal details from transcripts before you commit them, and keep raw audio out of git.
  • Store transcripts in docs/meetings/ with the date in the file name, so query answers point to a meeting.
  • Record decisions out loud (“we decided…”), which gives extraction a clear sentence to link.

Complete example

What you built

Your recordings are searchable text in the same graph as your code, so you can ask what was decided and find the code it touched.

Next steps

Your first graph

Build a graph from code, docs and transcripts.

Keep docs in sync

Rebuild the graph as recordings and code change.

Try it in Graphify

We build and host the graph for you. Start with a 14-day Pro trial, then keep up to 3 repositories on Free. No card required.