await session.start(agent=AuthenticationAgent(user...
# ask-ai
w
await session.start(agent=AuthenticationAgent(userdata), room=ctx.room,record=True) record is True still not get any recording in my files
✅ 1
t
Thanks for reaching out, Vivek. I'm an AI assistant and I'm here to help. Give me a moment while I research this topic.
w
i am using livekit self hosted server
t
Thanks — that helps. I see you’re running a self‑hosted LiveKit server and calling: await session.start(agent=AuthenticationAgent(userdata), room=ctx.room, record=True) But you’re not getting any recording files. I can help—here’s what’s happening and the steps to get recordings working. Short answer •
record=True
on
session.start()
does not trigger room recordings on LiveKit. That parameter isn’t used to create saved media files. • To produce recordings on a self‑hosted server you must use LiveKit egress (auto‑egress or start egress via the Egress API/Client). Agent-level
record
is for observability in some setups, not file egress. What to check / next steps 1. Decide how you want recordings delivered ◦ Single file per room (MP4/WebM) or segmented outputs (HLS) ◦ Where to store them (local disk on your host, S3-compatible storage, etc.) 1. Use Auto‑Egress (recommended for automatic recording) ◦ Configure auto‑egress for the relevant dispatch rule or flow so egress starts automatically when the room starts. ◦ Auto‑egress will send media to the configured destination (S3 or other storage) in formats like MP4/WebM/HLS. 1. Or start egress programmatically ◦ Listen for the room start event (webhook or your agent event). ◦ Call the Egress API / EgressClient to start a RoomComposite egress (e.g.,
startRoomCompositeEgress()
), specifying output type and destination. ◦ Stop the egress when finished with
stopEgress()
so the file is finalized. 1. For self‑hosted storage ◦ If you want output on the server filesystem, ensure the egress configuration allows writing to local paths and that the process has permission to write there. ◦ More commonly, point egress to an S3-compatible bucket and retrieve files from there. Quick diagnostics questions so I can give precise commands/config examples • Do you want automatic recording whenever the room starts, or do you want to start/stop recording yourself from code? • Where do you want the recordings saved (local disk on your LiveKit host, AWS S3, or another object store)? • Are you already running the egress service (or configured auto‑egress) on your self‑hosted setup? If unsure, tell me how you start LiveKit (docker-compose/kubernetes) and I’ll tell you what to look for. If you tell me the answers above I’ll provide the exact egress call or configuration snippet you need for your self‑hosted setup. , with interactive elements
w
no egress server running
t
Thanks — that’s helpful. Since you’re self‑hosting and don’t have an egress service running, that explains why
record=True
didn’t produce any files. I’ll walk you through what to do next and ask a couple quick questions so I can give the exact commands or config you need. Why recordings aren’t appearing • The Agent
record=True
flag does not create saved media files. • LiveKit requires the egress service (auto‑egress or programmatic egress) to capture and write room media to storage. Without an egress process, no MP4/WebM/HLS files will be produced. What you can do (high level) • Run the egress service as part of your self‑hosted deployment (Docker Compose or Kubernetes). • Configure where egress should write recordings (S3 or local filesystem). • Start recordings automatically with Auto‑Egress rules or start them programmatically using the Egress API / EgressClient when a room starts. Recommended next steps (pick one) • Automatic recordings (simpler) ◦ Enable Auto‑Egress in your dispatch rules or room configuration so recordings start automatically when rooms begin. ◦ Ensure egress has access to the chosen storage (S3 bucket credentials or writable local path). • Programmatic recordings ◦ Keep your current flow that starts rooms, but also: i. Listen for room start (webhook or agent event). ii. Call the Egress API / EgressClient to start a RoomComposite egress specifying format and destination. iii. Call stopEgress() when done so files are finalized. What I need to give you exact commands/config • How are you deploying LiveKit? (Docker Compose or Kubernetes) • Where do you want recordings saved? (local disk on the host, AWS S3, or an S3‑compatible store) • Do you want auto recordings for every room, or manual start/stop from your code? If you prefer, I can: • Provide a ready‑to‑use docker‑compose snippet that includes the egress service and S3/local storage config. • Provide a Kubernetes manifest for egress and instructions to mount storage or configure S3. • Give example code showing how to call the EgressClient/startRoomCompositeEgress() from your agent. Tell me your deployment method and preferred storage, and I’ll give the exact configuration and commands you need to get recordings working on your self‑hosted server. , with interactive elements