> ## Documentation Index
> Fetch the complete documentation index at: https://x-preview-mintlify-066e8699.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# MediaClient

> Reference for the media Python package in the X API SDK, grouping the client and Pydantic models for the media endpoints of the X API v2.

## Submodules

* [xdk.media.client module](/xdks/python/reference/xdk.media.client)
  * [`MediaClient`](/xdks/python/reference/xdk.media.client#xdk.media.client.MediaClient)
    * [`MediaClient.__init__()`](/xdks/python/reference/xdk.media.client#xdk.media.client.MediaClient.__init__)
    * [`MediaClient.append_upload()`](/xdks/python/reference/xdk.media.client#xdk.media.client.MediaClient.append_upload)
    * [`MediaClient.create_metadata()`](/xdks/python/reference/xdk.media.client#xdk.media.client.MediaClient.create_metadata)
    * [`MediaClient.create_subtitles()`](/xdks/python/reference/xdk.media.client#xdk.media.client.MediaClient.create_subtitles)
    * [`MediaClient.delete_subtitles()`](/xdks/python/reference/xdk.media.client#xdk.media.client.MediaClient.delete_subtitles)
    * [`MediaClient.finalize_upload()`](/xdks/python/reference/xdk.media.client#xdk.media.client.MediaClient.finalize_upload)
    * [`MediaClient.get_analytics()`](/xdks/python/reference/xdk.media.client#xdk.media.client.MediaClient.get_analytics)
    * [`MediaClient.get_by_key()`](/xdks/python/reference/xdk.media.client#xdk.media.client.MediaClient.get_by_key)
    * [`MediaClient.get_by_keys()`](/xdks/python/reference/xdk.media.client#xdk.media.client.MediaClient.get_by_keys)
    * [`MediaClient.get_upload_status()`](/xdks/python/reference/xdk.media.client#xdk.media.client.MediaClient.get_upload_status)
    * [`MediaClient.initialize_upload()`](/xdks/python/reference/xdk.media.client#xdk.media.client.MediaClient.initialize_upload)
    * [`MediaClient.upload()`](/xdks/python/reference/xdk.media.client#xdk.media.client.MediaClient.upload)
* [xdk.media.models module](/xdks/python/reference/xdk.media.models)
  * [`AppendUploadRequest`](/xdks/python/reference/xdk.media.models#xdk.media.models.AppendUploadRequest)
    * [`AppendUploadRequest.model_config`](/xdks/python/reference/xdk.media.models#xdk.media.models.AppendUploadRequest.model_config)
  * [`AppendUploadResponse`](/xdks/python/reference/xdk.media.models#xdk.media.models.AppendUploadResponse)
    * [`AppendUploadResponse.model_config`](/xdks/python/reference/xdk.media.models#xdk.media.models.AppendUploadResponse.model_config)
  * [`CreateMetadataRequest`](/xdks/python/reference/xdk.media.models#xdk.media.models.CreateMetadataRequest)
    * [`CreateMetadataRequest.model_config`](/xdks/python/reference/xdk.media.models#xdk.media.models.CreateMetadataRequest.model_config)
  * [`CreateMetadataResponse`](/xdks/python/reference/xdk.media.models#xdk.media.models.CreateMetadataResponse)
    * [`CreateMetadataResponse.model_config`](/xdks/python/reference/xdk.media.models#xdk.media.models.CreateMetadataResponse.model_config)
  * [`CreateSubtitlesRequest`](/xdks/python/reference/xdk.media.models#xdk.media.models.CreateSubtitlesRequest)
    * [`CreateSubtitlesRequest.model_config`](/xdks/python/reference/xdk.media.models#xdk.media.models.CreateSubtitlesRequest.model_config)
  * [`CreateSubtitlesResponse`](/xdks/python/reference/xdk.media.models#xdk.media.models.CreateSubtitlesResponse)
    * [`CreateSubtitlesResponse.model_config`](/xdks/python/reference/xdk.media.models#xdk.media.models.CreateSubtitlesResponse.model_config)
  * [`DeleteSubtitlesRequest`](/xdks/python/reference/xdk.media.models#xdk.media.models.DeleteSubtitlesRequest)
    * [`DeleteSubtitlesRequest.model_config`](/xdks/python/reference/xdk.media.models#xdk.media.models.DeleteSubtitlesRequest.model_config)
  * [`DeleteSubtitlesResponse`](/xdks/python/reference/xdk.media.models#xdk.media.models.DeleteSubtitlesResponse)
    * [`DeleteSubtitlesResponse.model_config`](/xdks/python/reference/xdk.media.models#xdk.media.models.DeleteSubtitlesResponse.model_config)
  * [`FinalizeUploadResponse`](/xdks/python/reference/xdk.media.models#xdk.media.models.FinalizeUploadResponse)
    * [`FinalizeUploadResponse.model_config`](/xdks/python/reference/xdk.media.models#xdk.media.models.FinalizeUploadResponse.model_config)
  * [`GetAnalyticsResponse`](/xdks/python/reference/xdk.media.models#xdk.media.models.GetAnalyticsResponse)
    * [`GetAnalyticsResponse.model_config`](/xdks/python/reference/xdk.media.models#xdk.media.models.GetAnalyticsResponse.model_config)
  * [`GetByKeyResponse`](/xdks/python/reference/xdk.media.models#xdk.media.models.GetByKeyResponse)
    * [`GetByKeyResponse.model_config`](/xdks/python/reference/xdk.media.models#xdk.media.models.GetByKeyResponse.model_config)
  * [`GetByKeysResponse`](/xdks/python/reference/xdk.media.models#xdk.media.models.GetByKeysResponse)
    * [`GetByKeysResponse.model_config`](/xdks/python/reference/xdk.media.models#xdk.media.models.GetByKeysResponse.model_config)
  * [`GetUploadStatusResponse`](/xdks/python/reference/xdk.media.models#xdk.media.models.GetUploadStatusResponse)
    * [`GetUploadStatusResponse.model_config`](/xdks/python/reference/xdk.media.models#xdk.media.models.GetUploadStatusResponse.model_config)
  * [`InitializeUploadRequest`](/xdks/python/reference/xdk.media.models#xdk.media.models.InitializeUploadRequest)
    * [`InitializeUploadRequest.model_config`](/xdks/python/reference/xdk.media.models#xdk.media.models.InitializeUploadRequest.model_config)
  * [`InitializeUploadResponse`](/xdks/python/reference/xdk.media.models#xdk.media.models.InitializeUploadResponse)
    * [`InitializeUploadResponse.model_config`](/xdks/python/reference/xdk.media.models#xdk.media.models.InitializeUploadResponse.model_config)
  * [`UploadRequest`](/xdks/python/reference/xdk.media.models#xdk.media.models.UploadRequest)
    * [`UploadRequest.model_config`](/xdks/python/reference/xdk.media.models#xdk.media.models.UploadRequest.model_config)
  * [`UploadResponse`](/xdks/python/reference/xdk.media.models#xdk.media.models.UploadResponse)
    * [`UploadResponse.model_config`](/xdks/python/reference/xdk.media.models#xdk.media.models.UploadResponse.model_config)

## Module contents

This module provides access to the media endpoints of the X API
and serves as the main entry point for all media-related functionality.

### `class xdk.media.MediaClient`

Client for media operations

#### Parameters

<ParamField path="path.client" type="Client" />

### `__init__`

#### Parameters

<ParamField path="path.client" type="Client" />

### `append_upload`

Append Media upload
Appends data to a Media upload request.

#### Parameters

<ParamField path="path.id" type="Any">
  The media identifier for the media to perform the append operation.
</ParamField>

<ParamField path="body.body" type="AppendUploadRequest">
  Request body
</ParamField>

### `create_metadata`

Create Media metadata
Creates metadata for a Media file.
body: Request body
:returns: Response data
:rtype: CreateMetadataResponse

#### Parameters

<ParamField path="body.body" type="CreateMetadataRequest" />

### `create_subtitles`

Create Media subtitles
Creates subtitles for a specific Media file.
body: Request body
:returns: Response data
:rtype: CreateSubtitlesResponse

#### Parameters

<ParamField path="body.body" type="CreateSubtitlesRequest" />

### `delete_subtitles`

Delete Media subtitles
Deletes subtitles for a specific Media file.
body: Request body
:returns: Response data
:rtype: DeleteSubtitlesResponse

#### Parameters

<ParamField path="body.body" type="DeleteSubtitlesRequest" />

### `finalize_upload`

Finalize Media upload
Finalizes a Media upload request.

#### Parameters

<ParamField path="path.id" type="Any">
  The media id of the targeted media to finalize.
</ParamField>

#### Returns

`FinalizeUploadResponse` - Response data

### `get_analytics`

Get Media analytics
Retrieves analytics data for media.

#### Parameters

<ParamField path="path.media_keys" type="List">
  A comma separated list of Media Keys. Up to 100 are allowed in a single request.
</ParamField>

<ParamField path="path.end_time" type="str">
  YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the end of the time range.
</ParamField>

<ParamField path="path.start_time" type="str">
  YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the start of the time range.
</ParamField>

<ParamField path="path.granularity" type="str">
  The granularity for the search counts results.
</ParamField>

<ParamField path="path.media_analytics_fields" type="List or None" default="None">
  A comma separated list of MediaAnalytics fields to display.
</ParamField>

#### Returns

`GetAnalyticsResponse` - Response data

### `get_by_key`

Get Media by media key
Retrieves details of a specific Media file by its media key.

#### Parameters

<ParamField path="path.media_key" type="Any">
  A single Media Key.
</ParamField>

<ParamField path="path.media_fields" type="List or None" default="None">
  A comma separated list of Media fields to display.
</ParamField>

#### Returns

`GetByKeyResponse` - Response data

### `get_by_keys`

Get Media by media keys
Retrieves details of Media files by their media keys.

#### Parameters

<ParamField path="path.media_keys" type="List">
  A comma separated list of Media Keys. Up to 100 are allowed in a single request.
</ParamField>

<ParamField path="path.media_fields" type="List or None" default="None">
  A comma separated list of Media fields to display.
</ParamField>

#### Returns

`GetByKeysResponse` - Response data

### `get_upload_status`

Get Media upload status
Retrieves the status of a Media upload by its ID.

#### Parameters

<ParamField path="path.media_id" type="Any">
  Media id for the requested media upload status.
</ParamField>

<ParamField path="path.command" type="str or None" default="None">
  The command for the media upload request.
</ParamField>

#### Returns

`GetUploadStatusResponse` - Response data

### `initialize_upload`

Initialize media upload
Initializes a media upload.
body: Request body
:returns: Response data
:rtype: InitializeUploadResponse

#### Parameters

<ParamField path="body.body" type="InitializeUploadRequest" />

### `upload`

Upload media
Uploads a media file for use in posts or other content.
body: Request body
:returns: Response data
:rtype: UploadResponse

#### Parameters

<ParamField path="body.body" type="UploadRequest" />
