

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# GetMedia
<a name="API_dataplane_GetMedia"></a>

 この API を使用して、Kinesis ビデオストリームからメディアコンテンツを取得します。リクエストで、ストリーム名またはストリーム Amazon リソースネーム (ARN) と開始チャンクを特定します。Kinesis Video Streams は、フラグメント番号順にチャンクのストリームを返します。

**注記**  
エンドポイントを取得するには、最初に `GetDataEndpoint` API を呼び出す必要があります。次に、[--endpoint-url parameter](https://docs.aws.amazon.com/cli/latest/reference/) を使用して `GetMedia` リクエストをこのエンドポイントに送信します。

ストリームにメディアデータ（フラグメント）を配置すると、Kinesis Video Streams は、受信する各フラグメントと関連するメタデータを「チャンク」と呼ばれるものに格納します。詳細については、「[PutMedia](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_PutMedia.html)」を参照してください。`GetMedia` API は、リクエストで指定されたチャンクから始まるこれらのチャンクのストリームを返します。

`GetMedia` API は、長時間実行される接続を介したストリーミング API として動作するように設計されています。これは、フラグメントごとに新しい HTTP 接続が確立されて閉じられる従来の RESTful 方式で使用することを目的としたものではありません。`GetMedia` API を呼び出すと、Kinesis Video Streams は HTTP チャンク転送エンコーディングを使用した永続的な長時間実行接続を通じてフラグメントを継続的に配信します。

`GetMedia` API を使用するときは以下の制限が適用されます。
+ クライアントは、ストリームごとに 1 秒間に最大 5 回 `GetMedia` を呼び出すことができます。
+ Kinesis Video Streams は、`GetMedia` セッション中に最大 25 メガバイト/秒（200 メガビット/秒）の速度でメディアデータを送信します。
**注記**  
ストリーミングの長時間実行接続`GetMedia`として使用して、1 つの永続接続で複数のフラグメントを取得します。フラグメントごとに新しい HTTP 接続を確立して閉じる従来の RESTful 方式で `GetMedia` API を使用しないでください。3 つ以上の同時`GetMedia`接続を試みると、Kinesis Video Streams は最新の接続を`ConnectionLimitExceededException`エラーでスロットリングします。

**注記**  
`GetMedia` HTTP レスポンスステータスコードはすぐに返されますが、取り込まれたフラグメントが再生できない場合、HTTP レスポンスペイロードの読み取りは 3 秒後にタイムアウトします。

**注記**  
Kinesis Video Streams メディア API を呼び出した後にエラーがスローされた場合、HTTP ステータスコードとレスポンス本文に加えて、次の情報が含まれます。  
 `x-amz-ErrorType` HTTP ヘッダー — HTTP ステータスコードで提供されるものに加えて、より具体的なエラータイプが含まれます。
 `x-amz-RequestId` HTTP ヘッダー – 問題をレポートする場合 AWS、リクエスト ID を指定すれば、サポートチームが問題をより適切に診断できます。
HTTP ステータスコードと ErrorType ヘッダーの両方を使用すれば、エラーが再試行可能かどうか、またはどのような条件下でエラーが再試行可能かについてプログラムで判断したり、クライアントプログラマーが再度試行するために必要なアクションに関する情報を提供したりできます。  
詳細については、このトピックの下部にある**[Errors]** (エラー) セクションおよび「[Common Errors](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/CommonErrors.html)」を参照してください。

## リクエストの構文
<a name="API_dataplane_GetMedia_RequestSyntax"></a>

```
POST /getMedia HTTP/1.1
Content-type: application/json

{
   "StartSelector": { 
      "AfterFragmentNumber": "{{string}}",
      "ContinuationToken": "{{string}}",
      "StartSelectorType": "{{string}}",
      "StartTimestamp": {{number}}
   },
   "StreamARN": "{{string}}",
   "StreamName": "{{string}}"
}
```

## URI リクエストパラメータ
<a name="API_dataplane_GetMedia_RequestParameters"></a>

リクエストでは URI パラメータを使用しません。

## リクエストボディ
<a name="API_dataplane_GetMedia_RequestBody"></a>

リクエストは以下の JSON 形式のデータを受け入れます。

 ** [StartSelector](#API_dataplane_GetMedia_RequestSyntax) **   <a name="KinesisVideo-dataplane_GetMedia-request-StartSelector"></a>
指定されたストリームから取得する開始チャンクを特定します。  
型: [StartSelector](API_dataplane_StartSelector.md) オブジェクト  
必須: はい

 ** [StreamARN](#API_dataplane_GetMedia_RequestSyntax) **   <a name="KinesisVideo-dataplane_GetMedia-request-StreamARN"></a>
メディアコンテンツの取得元からのストリームの ARN。`streamARN` を指定しない場合は、`streamName` を指定する必要があります。  
タイプ: 文字列  
長さの制限: 最小長は 1 です。最大長は 1,024 です。  
パターン: `arn:[a-z\d-]+:kinesisvideo:[a-z0-9-]+:[0-9]+:[a-z]+/[a-zA-Z0-9_.-]+/[0-9]+`   
必須: いいえ

 ** [StreamName](#API_dataplane_GetMedia_RequestSyntax) **   <a name="KinesisVideo-dataplane_GetMedia-request-StreamName"></a>
メディアコンテンツの取得元からの Kinesis ビデオストリーム名。`streamName` を指定しない場合は、`streamARN` を指定する必要があります。  
タイプ: 文字列  
長さの制約: 最小長は 1 です。最大長は 256 です。  
パターン: `[a-zA-Z0-9_.-]+`   
必須: いいえ

## レスポンスの構文
<a name="API_dataplane_GetMedia_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-Type: {{ContentType}}

{{Payload}}
```

## レスポンス要素
<a name="API_dataplane_GetMedia_ResponseElements"></a>

アクションが成功すると、サービスは HTTP 200 レスポンスを返します。

レスポンスでは、以下の HTTP ヘッダーが返されます。

 ** [ContentType](#API_dataplane_GetMedia_ResponseSyntax) **   <a name="KinesisVideo-dataplane_GetMedia-response-ContentType"></a>
リクエストされたメディアのコンテンツタイプ  
長さの制限：最小長 1、最大長は 128 です。  
パターン: `^[a-zA-Z0-9_\.\-]+$` 

レスポンスは、HTTP 本文として以下を返します。

 ** [Payload](#API_dataplane_GetMedia_ResponseSyntax) **   <a name="KinesisVideo-dataplane_GetMedia-response-Payload"></a>
 Kinesis Video Streams が返すペイロードは、指定されたストリームからのチャンクのシーケンスです。チャンクの詳細については、「[PutMedia](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_PutMedia.html)」を参照してください。Kinesis Video Streams が `GetMedia` の呼び出しで返すチャンクには、次の追加の Matroska (MKV) タグも含まれます。  
+ AWS\_KINESISVIDEO\_CONTINUTION\_TOKEN (UTF-8 文字列) - `GetMedia` の呼び出しが終了した場合、次のリクエストでこの継続トークンを使用して、最後のリクエストが終了した次のチャンクを取得できます。
+ AWS\_KINESISVIDEO\_MILIS\_BEHIND\_NOW (UTF-8 文字列) - クライアントアプリケーションはこのタグ値を使用して、レスポンスで返されるチャンクがストリームの最新のチャンクからどのくらい後ろにあるかを判断できます。
+ AWS\_KINESISVIDEO\_FRAGMENT\_NUMBER - チャンクで返されるフラグメント番号。
+ AWS\_KINESISVIDEO\_SERVER\_TIMESTAMP - フラグメントのサーバーのタイムスタンプ。
+ AWS\_KINESISVIDEO\_PRODUCER\_TIMESTAMP - フラグメントのプロジューサーのタイムスタンプ。
エラーが発生すると、次のタグが表示されます。  
+ AWS\_KINESISVIDEO\_ERROR\_CODE - GetMedia を停止させたエラーの文字列の説明。
+ AWS\_KINESISVIDEO\_ERROR\_ID: エラーの整数コード。
エラーコードは次のとおりです。  
+ 3002 - Error writing to the stream (ストリームへの書き込みエラー)
+ 4000 - Requested fragment is not found (要求されたフラグメントが見つかりません)
+ 4500 - Access denied for the stream's KMS key (ストリームの KMS キーに対するアクセスが拒否されました)
+ 4501 - Stream's KMS key is disabled (ストリームの KMS キーが無効)
+ 4502 - Validation error on the stream's KMS key (ストリームの KMS キーの検証エラー)
+ 4503 - KMS key specified in the stream is unavailable (ストリームで指定された KMS キーが使用できません)
+ 4504 - Invalid usage of the KMS key specified in the stream (ストリームで指定された KMS キーの使用が無効)
+ 4505 - Invalid state of the KMS key specified in the stream (ストリームで指定された KMS キーが無効な状態)
+ 4506 - Unable to find the KMS key specified in the stream (ストリームで指定された KMS キーが見つかりません)
+ 5000 - Internal error (内部エラー)

## エラー
<a name="API_dataplane_GetMedia_Errors"></a>

すべてのアクションに共通のエラーについては、「[一般的なエラータイプ](CommonErrors.md)」を参照してください。

 ** ClientLimitExceededException **   
Kinesis Video Streams は、許可されたクライアントコールの制限を超えているため、リクエストをスロットリングしました。後で呼び出しを試みてください。  
HTTP ステータスコード: 400

 ** ConnectionLimitExceededException **   
許可されたクライアント接続の制限を超えたため、Kinesis Video Streams がリクエストをスロットリングしました。  
HTTP ステータスコード: 400

 ** InvalidArgumentException **   
この入力パラメータの値は無効です。  
HTTP ステータスコード: 400

 ** InvalidEndpointException **   
呼び出し元が間違ったエンドポイントを使用してデータをストリームに書き込みました。このような例外を受信すると、ユーザーは `APIName` を `PUT_MEDIA` に設定して `GetDataEndpoint` を呼び出し、応答からのエンドポイントを使用して次の `PutMedia` コールを呼び出す必要があります。  
HTTP ステータスコード: 400

 ** NotAuthorizedException **   
呼び出し元は、指定されたストリームで操作を実行する権限がないか、トークンの有効期限が切れています。  
HTTP ステータスコード: 401

 ** ResourceNotFoundException **   
ステータスコード: 404 指定された名前のストリームは存在しません。  
HTTP ステータスコード: 404

## 以下の資料も参照してください。
<a name="API_dataplane_GetMedia_SeeAlso"></a>

言語固有の AWS SDKs のいずれかでこの API を使用する方法の詳細については、以下を参照してください。
+  [AWS コマンドラインインターフェイス V2](https://docs.aws.amazon.com/goto/cli2/kinesis-video-data-2017-09-30/GetMedia) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/kinesis-video-data-2017-09-30/GetMedia) 
+  [AWS SDK for C\+\+](https://docs.aws.amazon.com/goto/SdkForCpp/kinesis-video-data-2017-09-30/GetMedia) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/kinesis-video-data-2017-09-30/GetMedia) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/kinesis-video-data-2017-09-30/GetMedia) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/kinesis-video-data-2017-09-30/GetMedia) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/kinesis-video-data-2017-09-30/GetMedia) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/kinesis-video-data-2017-09-30/GetMedia) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/kinesis-video-data-2017-09-30/GetMedia) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/kinesis-video-data-2017-09-30/GetMedia) 