Class: SafetyKit::Resources::Streams
- Inherits:
-
Object
- Object
- SafetyKit::Resources::Streams
- Defined in:
- lib/safety_kit/resources/streams.rb,
sig/safety_kit/resources/streams.rbs
Overview
Ingest and monitor livestream content.
Instance Method Summary collapse
-
#add(namespace, id:, stream_url:, request_options: {}) ⇒ SafetyKit::Models::StreamAddResponse
Monitor the livestream at the given stream URL.
-
#add_frame(namespace, image_data_uri:, stream_id:, timestamp:, frame_id: nil, metadata: nil, request_options: {}) ⇒ SafetyKit::Models::StreamAddFrameResponse
Some parameter documentations has been truncated, see Models::StreamAddFrameParams for more details.
-
#add_transcript(namespace, stream_id:, text:, timestamp:, transcript_id: nil, request_options: {}) ⇒ SafetyKit::Models::StreamAddTranscriptResponse
Some parameter documentations has been truncated, see Models::StreamAddTranscriptParams for more details.
-
#initialize(client:) ⇒ Streams
constructor
private
A new instance of Streams.
Constructor Details
#initialize(client:) ⇒ Streams
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of Streams.
137 138 139 |
# File 'lib/safety_kit/resources/streams.rb', line 137 def initialize(client:) @client = client end |
Instance Method Details
#add(namespace, id:, stream_url:, request_options: {}) ⇒ SafetyKit::Models::StreamAddResponse
Monitor the livestream at the given stream URL. This method returns immediately.
Errors: 400 for an invalid body, with the reason in the message. 401 for a missing Authorization header. 403 for an invalid API key. 429 when the rate limit is exceeded. 5xx for transient internal failures. Retry 429 and 5xx with exponential backoff. Do not retry other 4xx errors, they indicate a problem with the request.
28 29 30 31 32 33 34 35 36 37 |
# File 'lib/safety_kit/resources/streams.rb', line 28 def add(namespace, params) parsed, = SafetyKit::StreamAddParams.dump_request(params) @client.request( method: :post, path: ["v1/streams/%1$s", namespace], body: parsed, model: SafetyKit::Models::StreamAddResponse, options: ) end |
#add_frame(namespace, image_data_uri:, stream_id:, timestamp:, frame_id: nil, metadata: nil, request_options: {}) ⇒ SafetyKit::Models::StreamAddFrameResponse
Some parameter documentations has been truncated, see Models::StreamAddFrameParams for more details.
Ingest a single livestream frame as an image data URI plus relative timestamp in milliseconds. The stream does not need to be created beforehand. Only image/jpeg, image/png, and image/webp are accepted. The decoded bytes must match the declared mime type, decode as a valid image, stay within 5 MB, and stay within 4096x4096 / 16,000,000 total pixels. Timestamps are relative milliseconds from stream start and must be unique and strictly increasing within a stream. Duplicate or out-of-order frame timestamps are accepted at the API boundary but ignored by downstream processing. This method returns immediately after the frame has been accepted for processing.
Errors: 400 for an invalid body or an image that fails validation, with the reason in the message. 401 for a missing Authorization header. 403 for an invalid API key. 429 when the rate limit is exceeded. 5xx for transient internal failures. Retry 429 and 5xx with exponential backoff. Frame ingestion is idempotent, so a retried request that already succeeded is ignored. Do not retry other 4xx errors, they indicate a problem with the request.
78 79 80 81 82 83 84 85 86 87 |
# File 'lib/safety_kit/resources/streams.rb', line 78 def add_frame(namespace, params) parsed, = SafetyKit::StreamAddFrameParams.dump_request(params) @client.request( method: :post, path: ["v1/streams/%1$s/frames", namespace], body: parsed, model: SafetyKit::Models::StreamAddFrameResponse, options: ) end |
#add_transcript(namespace, stream_id:, text:, timestamp:, transcript_id: nil, request_options: {}) ⇒ SafetyKit::Models::StreamAddTranscriptResponse
Some parameter documentations has been truncated, see Models::StreamAddTranscriptParams for more details.
Ingest a single transcript segment for a livestream using a relative timestamp in milliseconds. The stream does not need to be created beforehand. Transcript timestamps are relative milliseconds from stream start and should be monotonically increasing within a stream so transcript context lines up correctly with later frames. This method returns immediately after the transcript has been accepted for processing.
Errors: 400 for an invalid body, with the reason in the message. 401 for a missing Authorization header. 403 for an invalid API key. 429 when the rate limit is exceeded. 5xx for transient internal failures. Retry 429 and 5xx with exponential backoff. Transcript ingestion is idempotent, so a retried request that already succeeded is ignored. Do not retry other 4xx errors, they indicate a problem with the request.
123 124 125 126 127 128 129 130 131 132 |
# File 'lib/safety_kit/resources/streams.rb', line 123 def add_transcript(namespace, params) parsed, = SafetyKit::StreamAddTranscriptParams.dump_request(params) @client.request( method: :post, path: ["v1/streams/%1$s/transcripts", namespace], body: parsed, model: SafetyKit::Models::StreamAddTranscriptResponse, options: ) end |