Enable the Service
Enable local recording in the console, generate credentials and prepare a Linux host.
Enable the service
Local server recording needs project credentials and a licence, but no cloud-side switch.
1. Project credentials
| Credential | Purpose | Where |
|---|---|---|
appId | Identifies the recording process (first argument of createAgoraRecordingEngine) | Console → project → App ID |
| Channel token | Authenticates the recorder as a virtual participant | Issued server-side with the project certificate |
The legacy 3.x interface does not offer
renewToken; the 4.x interface does (IAgoraMediaRtcRecorder::renewToken). This SDK replaces the token used by subsequent operations.
2. Licence
Agora bills on-premise recording by licence; both RecordingConfig and AgoraServiceConfiguration carry a license field. The self-hosted ni-meet build needs no licence file — the field is kept for surface parity and its absence is not an error.
3. Quotas (self-hosted)
| Quota | Default | Notes |
|---|---|---|
quotas.recordingConcurrent | 5 | Cloud recording concurrency; local recording does not consume it |
| Local recording concurrency | 1 session / process | A single engine instance records one session at a time (a second joinChannel returns -ERR_ALREADY_IN_USE) |
4. Service activation
Cloud recording requires the project's recording service to be enabled (otherwise REST returns 403 service_not_enabled). Local recording runs in-process through the SDK and is not affected by that switch; if the sink uses an egress worker, the worker's admission still applies (429 recording_quota_exceeded).