INTEGRITY Dokumentace

Nahrávání tracků

Nahrávání tracků umožňuje nahrávat zvuk účastníků jako samostatné soubory WebM místo jedné souhrnné nahrávky schůzky. Použijte ho, když potřebujete kontrolu nad tím, co ukládáte, zpracováváte nebo kontrolujete, na úrovni jednotlivých mluvčích.

Díky nahrávání tracků můžete nahrávat konkrétní tracky účastníků, když předáte user_ids, což se hodí pro citlivé nebo regulované pracovní postupy, kde není nutné nahrávat každého účastníka. Pokud neuvedete user_ids, RealtimeKit ve výchozím nastavení zaznamená všechny audio stopy účastníků jako samostatné soubory WebM.

Chcete-li předat user_ids pro nahrávání konkrétní stopy účastníka použijte následující minimální verze SDK:

Nahrávání tracků vytvoří jeden soubor pro každého nahrávaného účastníka.

Dostupnost a limity

Nahrávání tracků má následující požadavky a omezení:

Limit Popis
Aktivní schůzka Schůzka musí mít aktivní živé sezení.
Typ média Pouze audio vrstvy se zaznamenávají.
Výběr účastníka Předejte až 100 hodnot v user_ids.
Úložiště Soubory se nahrávají do spravovaného R2 bucketu RealtimeKit bez poplatků za odchozí přenos dat (zero-egress).
Doba uchování souborů URL adresy pro stahování z bucketu RealtimeKit přestávají platit po sedmi dnech.

Spustit nahrávání stopy

Nahrávání konkrétních účastníků

Chcete-li nahrávat oddělené audio tracky konkrétních účastníků, zavolejte POST /recordings/track s ID schůzky a účastníkem user_ids.

curl --request POST \
  --url https://api.cloudflare.com/client/v4/accounts/<account_id>/realtime/kit/<app_id>/recordings/track \
  --header 'Authorization: Bearer <api_token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "meeting_id": "97440c6a-140b-40a9-9499-b23fd7a3868a",
  "user_ids": ["user-123", "user-456"]
}'

RealtimeKit nahrává současné i budoucí účastníky, jejichž user_id odpovídá seznamu povolených položek. Účastníci, jejichž user_id není uvedena, nejsou zaznamenáváni.

Nahrávejte všechny účastníky jako oddělené tracky

Vynechte user_ids a nahrát tak samostatné zvukové stopy pro všechny účastníky živé schůzky. RealtimeKit vytvoří jeden soubor WebM pro každého nahraného účastníka.

curl --request POST \
  --url https://api.cloudflare.com/client/v4/accounts/<account_id>/realtime/kit/<app_id>/recordings/track \
  --header 'Authorization: Bearer <api_token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "meeting_id": "97440c6a-140b-40a9-9499-b23fd7a3868a"
}'

Odpověď obsahuje ID nahrávání. Toto ID použijte k zastavení nebo načtení nahrávky.

{
	"success": true,
	"data": {
		"recording": {
			"id": "fff40c6a-140b-40a9-9499-b23fd7a3868a",
			"meeting_id": "97440c6a-140b-40a9-9499-b23fd7a3868a",
			"status": "INVOKED",
			"type": "TRACK",
			"output_file_name": "{{file_name_prefix}}_{{user_id}}_{{peer_id}}_{{stream_kind}}_{{media_kind}}_{{date_time}}.webm"
		}
	}
}

Přizpůsobení názvů souborů předponami

Použijte layers.default.file_name_prefix jako předponu pro každý vygenerovaný soubor nahrávky tracku.

{
	"meeting_id": "97440c6a-140b-40a9-9499-b23fd7a3868a",
	"layers": {
		"default": {
			"media_kind": "audio",
			"file_name_prefix": "speaker"
		}
	}
}

Pokud vynecháte layers, RealtimeKit použije default jako předponu názvu souboru.

Zastavit nahrávání stopy

Použijte endpoint pro aktualizace nahrávání a zastavit tak nahrávání tracku.

curl --request PUT \
  --url https://api.cloudflare.com/client/v4/accounts/<account_id>/realtime/kit/<app_id>/recordings/<recording_id> \
  --header 'Authorization: Bearer <api_token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "action": "stop"
}'

Nahrávání tracků se zastaví také po ukončení relace schůzky.

Jakmile se nahrávání stopy zastaví, RealtimeKit nahraje soubory WebM pro jednotlivé účastníky a přesune nahrávku do UPLOADED.

Stáhnout soubory stop

Nahrávání tracků používá stejný životní cyklus stavu nahrávání jako souhrnné nahrávání. Stav můžete sledovat v Sledování stavu nahrávání.

Jakmile nahrávání dosáhne UPLOADED, načtěte podrobnosti záznamu nebo naslouchejte recording.statusUpdate webhook. Pro nahrávání jednotlivých stop, download_url obsahuje URL adresy souborů WebM pro jednotlivé účastníky, seskupené podle vrstvy.

{
	"download_url": [
		{
			"layer_name": "default",
			"download_urls": {
				"speaker_user-123_peer-456_peer_audio_1760000000000.webm": {
					"download_url": "https://example.com/presigned-url"
				}
			}
		}
	]
}

Názvy souborů mají tento formát:

{{file_name_prefix}}_{{user_id}}_{{peer_id}}_{{stream_kind}}_{{media_kind}}_{{date_time}}.webm

date_time hodnota představuje Unix timestamp v milisekundách, kdy byl soubor vygenerován.