{ "version":"2.0", "metadata":{ "apiVersion":"2017-09-30", "endpointPrefix":"kinesisvideo", "protocol":"rest-json", "serviceAbbreviation":"Kinesis Video Media", "serviceFullName":"Amazon Kinesis Video Streams Media", "serviceId":"Kinesis Video Media", "signatureVersion":"v4", "uid":"kinesis-video-media-2017-09-30" }, "operations":{ "GetMedia":{ "name":"GetMedia", "http":{ "method":"POST", "requestUri":"/getMedia" }, "input":{"shape":"GetMediaInput"}, "output":{"shape":"GetMediaOutput"}, "errors":[ {"shape":"ResourceNotFoundException"}, {"shape":"NotAuthorizedException"}, {"shape":"InvalidEndpointException"}, {"shape":"ClientLimitExceededException"}, {"shape":"ConnectionLimitExceededException"}, {"shape":"InvalidArgumentException"} ], "documentation":"

Use this API to retrieve media content from a Kinesis video stream. In the request, you identify the stream name or stream Amazon Resource Name (ARN), and the starting chunk. Kinesis Video Streams then returns a stream of chunks in order by fragment number.

You must first call the GetDataEndpoint API to get an endpoint. Then send the GetMedia requests to this endpoint using the --endpoint-url parameter.

When you put media data (fragments) on a stream, Kinesis Video Streams stores each incoming fragment and related metadata in what is called a \"chunk.\" For more information, see . The GetMedia API returns a stream of these chunks starting from the chunk that you specify in the request.

The following limits apply when using the GetMedia API:

" } }, "shapes":{ "ClientLimitExceededException":{ "type":"structure", "members":{ "Message":{"shape":"ErrorMessage"} }, "documentation":"

Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client calls. Try making the call later.

", "error":{"httpStatusCode":400}, "exception":true }, "ConnectionLimitExceededException":{ "type":"structure", "members":{ "Message":{"shape":"ErrorMessage"} }, "documentation":"

Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client connections.

", "error":{"httpStatusCode":400}, "exception":true }, "ContentType":{ "type":"string", "max":128, "min":1, "pattern":"^[a-zA-Z0-9_\\.\\-]+$" }, "ContinuationToken":{ "type":"string", "max":128, "min":1, "pattern":"^[a-zA-Z0-9_\\.\\-]+$" }, "ErrorMessage":{"type":"string"}, "FragmentNumberString":{ "type":"string", "max":128, "min":1, "pattern":"^[0-9]+$" }, "GetMediaInput":{ "type":"structure", "required":["StartSelector"], "members":{ "StreamName":{ "shape":"StreamName", "documentation":"

The Kinesis video stream name from where you want to get the media content. If you don't specify the streamName, you must specify the streamARN.

" }, "StreamARN":{ "shape":"ResourceARN", "documentation":"

The ARN of the stream from where you want to get the media content. If you don't specify the streamARN, you must specify the streamName.

" }, "StartSelector":{ "shape":"StartSelector", "documentation":"

Identifies the starting chunk to get from the specified stream.

" } } }, "GetMediaOutput":{ "type":"structure", "members":{ "ContentType":{ "shape":"ContentType", "documentation":"

The content type of the requested media.

", "location":"header", "locationName":"Content-Type" }, "Payload":{ "shape":"Payload", "documentation":"

The payload Kinesis Video Streams returns is a sequence of chunks from the specified stream. For information about the chunks, see . The chunks that Kinesis Video Streams returns in the GetMedia call also include the following additional Matroska (MKV) tags:

The following tags will be present if an error occurs:

The error codes are as follows:

" } }, "payload":"Payload" }, "InvalidArgumentException":{ "type":"structure", "members":{ "Message":{"shape":"ErrorMessage"} }, "documentation":"

The value for this input parameter is invalid.

", "error":{"httpStatusCode":400}, "exception":true }, "InvalidEndpointException":{ "type":"structure", "members":{ "Message":{"shape":"ErrorMessage"} }, "documentation":"

Status Code: 400, Caller used wrong endpoint to write data to a stream. On receiving such an exception, the user must call GetDataEndpoint with AccessMode set to \"READ\" and use the endpoint Kinesis Video returns in the next GetMedia call.

", "error":{"httpStatusCode":400}, "exception":true }, "NotAuthorizedException":{ "type":"structure", "members":{ "Message":{"shape":"ErrorMessage"} }, "documentation":"

Status Code: 403, The caller is not authorized to perform an operation on the given stream, or the token has expired.

", "error":{"httpStatusCode":401}, "exception":true }, "Payload":{ "type":"blob", "streaming":true }, "ResourceARN":{ "type":"string", "max":1024, "min":1, "pattern":"arn:aws:kinesisvideo:[a-z0-9-]+:[0-9]+:[a-z]+/[a-zA-Z0-9_.-]+/[0-9]+" }, "ResourceNotFoundException":{ "type":"structure", "members":{ "Message":{"shape":"ErrorMessage"} }, "documentation":"

Status Code: 404, The stream with the given name does not exist.

", "error":{"httpStatusCode":404}, "exception":true }, "StartSelector":{ "type":"structure", "required":["StartSelectorType"], "members":{ "StartSelectorType":{ "shape":"StartSelectorType", "documentation":"

Identifies the fragment on the Kinesis video stream where you want to start getting the data from.

If you choose the NOW, EARLIEST, or CONTINUATION_TOKEN as the startSelectorType, you don't provide any additional information in the startSelector.

" }, "AfterFragmentNumber":{ "shape":"FragmentNumberString", "documentation":"

Specifies the fragment number from where you want the GetMedia API to start returning the fragments.

" }, "StartTimestamp":{ "shape":"Timestamp", "documentation":"

A timestamp value. This value is required if you choose the PRODUCER_TIMESTAMP or the SERVER_TIMESTAMP as the startSelectorType. The GetMedia API then starts with the chunk containing the fragment that has the specified timestamp.

" }, "ContinuationToken":{ "shape":"ContinuationToken", "documentation":"

Continuation token that Kinesis Video Streams returned in the previous GetMedia response. The GetMedia API then starts with the chunk identified by the continuation token.

" } }, "documentation":"

Identifies the chunk on the Kinesis video stream where you want the GetMedia API to start returning media data. You have the following options to identify the starting chunk:

" }, "StartSelectorType":{ "type":"string", "enum":[ "FRAGMENT_NUMBER", "SERVER_TIMESTAMP", "PRODUCER_TIMESTAMP", "NOW", "EARLIEST", "CONTINUATION_TOKEN" ] }, "StreamName":{ "type":"string", "max":256, "min":1, "pattern":"[a-zA-Z0-9_.-]+" }, "Timestamp":{"type":"timestamp"} }, "documentation":"

" }