> ## Documentation Index
> Fetch the complete documentation index at: https://docs.graphify.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> The PyPI package is graphifyy, with two y's. The command is graphify.
> /graphify . is typed in an assistant chat, not in a shell.
> Use only commands, flags, and endpoints shown on these pages. Do not invent one.
> Choose the surface before you open a page. Local (Graphify Local) is the graphifyy package on the machine: the skill, the CLI, and the ten-tool MCP. Its pages are the Open Source tab (/open-source/) and the Graphify Local tab on each Integrations page. Graphify is the hosted workspace and https://api.graphify.com/mcp (Streamable HTTP, OAuth, no API key). Its pages are the Graphify tab (/platform/, /concepts/) and the Graphify (hosted) tab on each Integrations page. Prefer Graphify unless the user asks for a local or offline setup. Cookbooks (/cookbooks/) and /mcp/docs-search apply to both. Each page's source frontmatter records this as surface: local, cloud, or both. Buildkite is the CI integration.
> In llms.txt, tell the surface from the page path. Graphify: /platform/ and /concepts/. Local: /open-source/. Most /integrations/ pages cover both, with a Graphify (hosted) tab and a Graphify Local tab. Everything else applies to both.
> graphifyy release notes are published at https://github.com/Graphify-Labs/graphify/releases and https://graphify.com/changelog. The current package version is on PyPI (https://pypi.org/project/graphifyy/).
> The official site is https://graphify.com. These docs are https://docs.graphify.com.
> The local MCP server is the ten tools in the MCP tool reference and reads a graph on the machine. The hosted server is https://api.graphify.com/mcp (Streamable HTTP, OAuth, no API key). The JetBrains, ChatGPT, Codex, and Dots, and Vercel pages use the hosted server, not the ten-tool list. On pages with tabs, the Graphify (hosted) tab uses the hosted server and the Graphify Local tab uses the local skill or the ten-tool server.
> Read https://docs.graphify.com/llms.txt, then open one page's .md link. Use https://docs.graphify.com/llms-full.txt only when one page is not enough.

# Turn meeting recordings into a knowledge graph

> Transcribe meeting recordings, talks and YouTube videos with Whisper, then add the transcripts to your Graphify knowledge graph next to your code.

Graphify can't read audio directly, so it transcribes recordings to text with [faster-whisper](https://github.com/SYSTRAN/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

```bash theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
uv tool install "graphifyy[video]" --with "av<16"
mkdir -p meetings && cp ~/Recordings/*.m4a meetings/
```

The `video` extra installs faster-whisper and yt-dlp. Graphify picks up `.mp4`, `.mov`, `.webm`, `.mkv`, `.avi`, `.m4v`, `.mp3`, `.wav`, `.m4a` and `.ogg`.

> [!WARNING]
>
> 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:

```text theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
/graphify ./meetings
```

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:

```text theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
/graphify ./meetings --whisper-model medium
```

## Step 2: Or transcribe from a script

Without an agent, call the transcriber yourself. Save this as `transcribe.py`:

```python theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
from pathlib import Path
from graphify.transcribe import transcribe_all

files = [str(p) for p in Path("meetings").iterdir()]
prompt = ("Engineering meeting about the Graphify extractor, retry queue "
          "and Postgres schema. Use proper punctuation and paragraph breaks.")
paths = transcribe_all(files, initial_prompt=prompt)
print(paths)
```

Run it in an environment that has the `video` extra:

```bash theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
uv run --with "graphifyy[video]" --with "av<16" python transcribe.py
```

```text theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  transcribing design-review.m4a (model=base) ...
  transcript saved -> graphify-out/transcripts/design-review.txt (lang=en, N segments)
['graphify-out/transcripts/design-review.txt']
```

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:

```bash theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
mkdir -p docs/meetings
cp graphify-out/transcripts/*.txt docs/meetings/
graphify extract . --backend claude
graphify query "what did we decide about the retry queue?"
```

To keep everything on your machine, use `--backend ollama`. See [Run Graphify locally with Ollama](https://docs.graphify.com/cookbooks/local-with-ollama.md).

## Step 5: YouTube and other links

```bash theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
graphify add "https://www.youtube.com/watch?v=VIDEO_ID"
```

`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

```bash theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
uv tool install "graphifyy[video]" --with "av<16"
uv run --with "graphifyy[video]" --with "av<16" python transcribe.py
mkdir -p docs/meetings && cp graphify-out/transcripts/*.txt docs/meetings/
graphify extract . --backend claude
graphify query "what did we decide about the retry queue?"
```

## 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](https://docs.graphify.com/guides/first-graph.md)**
>
> Build a graph from code, docs and transcripts.

> **[Keep docs in sync](https://docs.graphify.com/cookbooks/keep-docs-in-sync.md)**
>
> Rebuild the graph as recordings and code change.

> **[Try it in Graphify](https://docs.graphify.com/platform/quickstart.md)**
>
> 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.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.