Episodes_SignEpisodeVideos
const url = 'https://dev-api.qualiastudios.dev/v1/accounts/example/datasets/example/episodes/example:signVideos';const options = {method: 'GET', headers: {'X-API-Key': '<X-API-Key>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://dev-api.qualiastudios.dev/v1/accounts/example/datasets/example/episodes/example:signVideos \ --header 'X-API-Key: <X-API-Key>'Signs the episode’s camera videos for playback: one short-lived URI per camera, of the take’s current content (the member of its upload’s published version), and where that content sits in the episode’s recording (window_start_seconds, window_end_seconds): after a trim the files play the kept stretch alone. Read it again once a URI expires. A take in no published version yet (a split child before its publish) answers unpublished, with no videos; FAILED_PRECONDITION means the published content cannot be signed (an object or storage missing).
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”The account id.
The dataset id.
The episode id.
Query Parameters
Section titled “Query Parameters ”Read as this version froze it (QUA-3539): a tag, stable, v0 or a
digest prefix; empty or head reads the episode as it is now. As
GetEpisodeRequest.version: the videos of the member that version holds.
Responses
Section titled “ Responses ”OK
Response for Episodes.SignEpisodeVideos.
object
One per camera.
One camera’s video of the take.
object
Camera key, e.g. “observation.images.top”.
Signed URI of the video file; it stops working at expire_time.
When the file holds more than this take: seconds into the file where the take starts. Unset when the take is the whole file.
Seconds into the file where the take ends; unset with start_seconds.
When uri stops working.
Seconds into the file where the take’s whole recording starts, before any trim: start_seconds less what an applied trim cut from the start, so a client can show the footage a trim leaves out. Unset only when qds does not know it: the take has no window of this file on record.
Seconds into the file where the whole recording ends; unset with recording_start_seconds.
True when the take is in no published version yet (a split child before its publish): it has no videos to sign.
Where the videos’ take starts in the episode’s recording, in seconds of the recording (the clock its trim, subtasks and markers are in): a camera’s start_seconds plays this second. 0 until a trim is applied, the trim’s start once one is; a split’s piece is a recording of its own, so 0. Unset with unpublished.
Where the take ends in the recording, in the same seconds: the recording’s length, or the applied trim’s end. A camera whose file ends sooner stops at its end_seconds. Unset with unpublished.
Example generated
{ "videos": [ { "camera": "example", "uri": "example", "startSeconds": 1, "endSeconds": 1, "expireTime": "2026-04-15T12:00:00Z", "recordingStartSeconds": 1, "recordingEndSeconds": 1 } ], "unpublished": true, "windowStartSeconds": 1, "windowEndSeconds": 1}default
Section titled “default ”Default error response
The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide.
object
The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
A list of messages that carry the error details. There is a common set of message types for APIs to use.
Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.
object
The type of the serialized message.
Example generated
{ "code": 1, "message": "example", "details": [ { "@type": "example" } ]}