> ## Documentation Index
> Fetch the complete documentation index at: https://docs.x.com/llms.txt
> Use this file to discover all available pages before exploring further.

# MediaClient

> Reference for the media.client Python module in the X API SDK. Client class and methods for calling the media endpoints of the X API v2.

## MediaClient

Class

Bases: object

Client for media operations

## Constructors

### `__init__`

#### Parameters

**path.client** `Client`

### `append_upload`

Append Media upload
Appends data to a Media upload request.

#### Parameters

**path.id** `Any`

The media identifier for the media to perform the append operation.

**body.body** `AppendUploadRequest`

Request body

### `create_metadata`

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

#### Parameters

**body.body** `CreateMetadataRequest`

### `create_subtitles`

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

#### Parameters

**body.body** `CreateSubtitlesRequest`

### `delete_subtitles`

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

#### Parameters

**body.body** `DeleteSubtitlesRequest`

### `finalize_upload`

Finalize Media upload
Finalizes a Media upload request.

#### Parameters

**path.id** `Any`

The media id of the targeted media to finalize.

#### Returns

`FinalizeUploadResponse` - Response data

### `get_analytics`

Get Media analytics
Retrieves analytics data for media.

#### Parameters

**path.media\_keys** `List`

A comma separated list of Media Keys. Up to 100 are allowed in a single request.

**path.end\_time** `str`

YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the end of the time range.

**path.start\_time** `str`

YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the start of the time range.

**path.granularity** `str`

The granularity for the search counts results.

**path.media\_analytics\_fields** `List or None` (default: None)

A comma separated list of MediaAnalytics fields to display.

#### Returns

`GetAnalyticsResponse` - Response data

### `get_by_key`

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

#### Parameters

**path.media\_key** `Any`

A single Media Key.

**path.media\_fields** `List or None` (default: None)

A comma separated list of Media fields to display.

#### Returns

`GetByKeyResponse` - Response data

### `get_by_keys`

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

#### Parameters

**path.media\_keys** `List`

A comma separated list of Media Keys. Up to 100 are allowed in a single request.

**path.media\_fields** `List or None` (default: None)

A comma separated list of Media fields to display.

#### Returns

`GetByKeysResponse` - Response data

### `get_upload_status`

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

#### Parameters

**path.media\_id** `Any`

Media id for the requested media upload status.

**path.command** `str or None` (default: None)

The command for the media upload request.

#### Returns

`GetUploadStatusResponse` - Response data

### `initialize_upload`

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

#### Parameters

**body.body** `InitializeUploadRequest`

### `upload`

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

#### Parameters

**body.body** `UploadRequest`
