Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/apivideo/api.video-csharp-client

The official C# client library for api.video
https://github.com/apivideo/api.video-csharp-client

api api-client csharp csharp-api video video-streaming

Last synced: 9 days ago
JSON representation

The official C# client library for api.video

Awesome Lists containing this project

README

        

[![badge](https://img.shields.io/twitter/follow/api_video?style=social)](https://twitter.com/intent/follow?screen_name=api_video)   [![badge](https://img.shields.io/github/stars/apivideo/api.video-csharp-client?style=social)](https://github.com/apivideo/api.video-csharp-client)   [![badge](https://img.shields.io/discourse/topics?server=https%3A%2F%2Fcommunity.api.video)](https://community.api.video)
![](https://github.com/apivideo/.github/blob/main/assets/apivideo_banner.png)

api.video C# client

[api.video](https://api.video) is the video infrastructure for product builders. Lightning fast video APIs for integrating, scaling, and managing on-demand & low latency live streaming features in your app.

## Table of contents

- [Project description](#project-description)
- [Getting started](#getting-started)
- [Requirements](#requirements)
- [Frameworks supported](#frameworks-supported)
- [Dependencies](#dependencies)
- [Installation](#installation)
- [Using Nuget](#using-nuget)
- [Generating the DLL yourself](#generating-the-dll-yourself)
- [Code sample](#code-sample)
- [Documentation](#documentation)
- [API Endpoints](#api-endpoints)
- [AnalyticsApi](#analyticsapi)
- [CaptionsApi](#captionsapi)
- [ChaptersApi](#chaptersapi)
- [LiveStreamsApi](#livestreamsapi)
- [PlayerThemesApi](#playerthemesapi)
- [SummariesApi](#summariesapi)
- [TagsApi](#tagsapi)
- [UploadTokensApi](#uploadtokensapi)
- [VideosApi](#videosapi)
- [WatermarksApi](#watermarksapi)
- [WebhooksApi](#webhooksapi)
- [Models](#models)
- [Authorization](#authorization)
- [API key](#api-key)
- [Public endpoints](#public-endpoints)
- [Recommendation](#recommendation)
- [Have you gotten use from this API client?](#have-you-gotten-use-from-this-api-client-)
- [Contribution](#contribution)

## Project description

api.video's C# API client streamlines the coding process. Chunking files is handled for you, as is pagination and refreshing your tokens.

## Getting started

### Requirements

#### Frameworks supported

- .NET 5.0 or later

#### Dependencies

- [RestSharp](https://www.nuget.org/packages/RestSharp) - 111.2.0
- [Json.NET](https://www.nuget.org/packages/Newtonsoft.Json/) - 13.0.3
- [JsonSubTypes](https://www.nuget.org/packages/JsonSubTypes/) - 1.8.0

We recommend using [NuGet](https://docs.nuget.org/consume/installing-nuget) to obtain the packages:

```
Install-Package RestSharp
Install-Package Newtonsoft.Json
Install-Package JsonSubTypes
```

NOTE: RestSharp versions greater than 105.1.0 have a bug which causes file uploads to fail. See [RestSharp#742](https://github.com/restsharp/RestSharp/issues/742)

### Installation

#### Using Nuget

```
Install-Package ApiVideo
```

#### Generating the DLL yourself

Generate the DLL using your preferred tool

Then include the DLL (under the `bin` folder) in the C# project, and use the namespaces:

```csharp
using ApiVideo.Api;
using ApiVideo.Client;
using ApiVideo.Model;

```

### Code sample

```csharp
using System.Collections.Generic;
using System.Diagnostics;
using System;
using System.IO;
using ApiVideo.Api;
using ApiVideo.Client;
using ApiVideo.Model;

namespace Example
{
public class Example
{
public static void Main()
{
var apiKey = "YOUR_API_KEY";

var apiVideoClient = new ApiVideoClient(apiKey);
// if you rather like to use the sandbox environment:
// var apiVideoClient = new ApiVideoClient(apiKey, ApiVideo.Client.Environment.SANDBOX);

var videoPayload = new VideoCreationPayload()
{
title = "Example video title",
description = "Example video description",
mp4support = true,
tags = new List()
{
"first","video","test","c#","client"
}
};

var myVideoFile = File.OpenRead("my-video.mp4");

try {
var newVideo = apiVideoClient.Videos().create(videoPayload);
var video = apiVideoClient.Videos().upload(newVideo.videoid,myVideoFile);
Console.WriteLine(video);
} catch (ApiException e) {
Console.WriteLine(e.ErrorCode);
Console.WriteLine(e.Message);
Console.WriteLine(e.StackTrace);
}
}
}
}
```

## Documentation

### API Endpoints

All URIs are relative to *https://ws.api.video*

#### AnalyticsApi

##### Retrieve an instance of AnalyticsApi:
```java
ApiVideoClient apiVideoClient = new ApiVideoClient("YOUR_API_KEY");
AnalyticsApi analytics = client.Analytics()
```

##### Endpoints

Method | HTTP request | Description
------------- | ------------- | -------------
[**getAggregatedMetrics**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/AnalyticsApi.md#getAggregatedMetrics) | **GET** `/data/metrics/{metric}/{aggregation}` | Retrieve aggregated metrics
[**getMetricsBreakdown**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/AnalyticsApi.md#getMetricsBreakdown) | **GET** `/data/buckets/{metric}/{breakdown}` | Retrieve metrics in a breakdown of dimensions
[**getMetricsOverTime**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/AnalyticsApi.md#getMetricsOverTime) | **GET** `/data/timeseries/{metric}` | Retrieve metrics over time

#### CaptionsApi

##### Retrieve an instance of CaptionsApi:
```java
ApiVideoClient apiVideoClient = new ApiVideoClient("YOUR_API_KEY");
CaptionsApi captions = client.Captions()
```

##### Endpoints

Method | HTTP request | Description
------------- | ------------- | -------------
[**upload**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/CaptionsApi.md#upload) | **POST** `/videos/{videoId}/captions/{language}` | Upload a caption
[**get**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/CaptionsApi.md#get) | **GET** `/videos/{videoId}/captions/{language}` | Retrieve a caption
[**update**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/CaptionsApi.md#update) | **PATCH** `/videos/{videoId}/captions/{language}` | Update a caption
[**delete**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/CaptionsApi.md#delete) | **DELETE** `/videos/{videoId}/captions/{language}` | Delete a caption
[**list**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/CaptionsApi.md#list) | **GET** `/videos/{videoId}/captions` | List video captions

#### ChaptersApi

##### Retrieve an instance of ChaptersApi:
```java
ApiVideoClient apiVideoClient = new ApiVideoClient("YOUR_API_KEY");
ChaptersApi chapters = client.Chapters()
```

##### Endpoints

Method | HTTP request | Description
------------- | ------------- | -------------
[**upload**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/ChaptersApi.md#upload) | **POST** `/videos/{videoId}/chapters/{language}` | Upload a chapter
[**get**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/ChaptersApi.md#get) | **GET** `/videos/{videoId}/chapters/{language}` | Retrieve a chapter
[**delete**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/ChaptersApi.md#delete) | **DELETE** `/videos/{videoId}/chapters/{language}` | Delete a chapter
[**list**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/ChaptersApi.md#list) | **GET** `/videos/{videoId}/chapters` | List video chapters

#### LiveStreamsApi

##### Retrieve an instance of LiveStreamsApi:
```java
ApiVideoClient apiVideoClient = new ApiVideoClient("YOUR_API_KEY");
LiveStreamsApi liveStreams = client.LiveStreams()
```

##### Endpoints

Method | HTTP request | Description
------------- | ------------- | -------------
[**create**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/LiveStreamsApi.md#create) | **POST** `/live-streams` | Create live stream
[**get**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/LiveStreamsApi.md#get) | **GET** `/live-streams/{liveStreamId}` | Retrieve live stream
[**update**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/LiveStreamsApi.md#update) | **PATCH** `/live-streams/{liveStreamId}` | Update a live stream
[**delete**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/LiveStreamsApi.md#delete) | **DELETE** `/live-streams/{liveStreamId}` | Delete a live stream
[**list**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/LiveStreamsApi.md#list) | **GET** `/live-streams` | List all live streams
[**uploadThumbnail**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/LiveStreamsApi.md#uploadThumbnail) | **POST** `/live-streams/{liveStreamId}/thumbnail` | Upload a thumbnail
[**deleteThumbnail**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/LiveStreamsApi.md#deleteThumbnail) | **DELETE** `/live-streams/{liveStreamId}/thumbnail` | Delete a thumbnail
[**complete**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/LiveStreamsApi.md#complete) | **PUT** `/live-streams/{liveStreamId}/complete` | Complete a live stream

#### PlayerThemesApi

##### Retrieve an instance of PlayerThemesApi:
```java
ApiVideoClient apiVideoClient = new ApiVideoClient("YOUR_API_KEY");
PlayerThemesApi playerThemes = client.PlayerThemes()
```

##### Endpoints

Method | HTTP request | Description
------------- | ------------- | -------------
[**create**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/PlayerThemesApi.md#create) | **POST** `/players` | Create a player
[**get**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/PlayerThemesApi.md#get) | **GET** `/players/{playerId}` | Retrieve a player
[**update**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/PlayerThemesApi.md#update) | **PATCH** `/players/{playerId}` | Update a player
[**delete**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/PlayerThemesApi.md#delete) | **DELETE** `/players/{playerId}` | Delete a player
[**list**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/PlayerThemesApi.md#list) | **GET** `/players` | List all player themes
[**uploadLogo**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/PlayerThemesApi.md#uploadLogo) | **POST** `/players/{playerId}/logo` | Upload a logo
[**deleteLogo**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/PlayerThemesApi.md#deleteLogo) | **DELETE** `/players/{playerId}/logo` | Delete logo

#### SummariesApi

##### Retrieve an instance of SummariesApi:
```java
ApiVideoClient apiVideoClient = new ApiVideoClient("YOUR_API_KEY");
SummariesApi summaries = client.Summaries()
```

##### Endpoints

Method | HTTP request | Description
------------- | ------------- | -------------
[**create**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/SummariesApi.md#create) | **POST** `/summaries` | Generate video summary
[**update**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/SummariesApi.md#update) | **PATCH** `/summaries/{summaryId}/source` | Update summary details
[**delete**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/SummariesApi.md#delete) | **DELETE** `/summaries/{summaryId}` | Delete video summary
[**list**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/SummariesApi.md#list) | **GET** `/summaries` | List summaries
[**getSummarySource**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/SummariesApi.md#getSummarySource) | **GET** `/summaries/{summaryId}/source` | Get summary details

#### TagsApi

##### Retrieve an instance of TagsApi:
```java
ApiVideoClient apiVideoClient = new ApiVideoClient("YOUR_API_KEY");
TagsApi tags = client.Tags()
```

##### Endpoints

Method | HTTP request | Description
------------- | ------------- | -------------
[**list**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/TagsApi.md#list) | **GET** `/tags` | List all video tags

#### UploadTokensApi

##### Retrieve an instance of UploadTokensApi:
```java
ApiVideoClient apiVideoClient = new ApiVideoClient("YOUR_API_KEY");
UploadTokensApi uploadTokens = client.UploadTokens()
```

##### Endpoints

Method | HTTP request | Description
------------- | ------------- | -------------
[**createToken**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/UploadTokensApi.md#createToken) | **POST** `/upload-tokens` | Generate an upload token
[**getToken**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/UploadTokensApi.md#getToken) | **GET** `/upload-tokens/{uploadToken}` | Retrieve upload token
[**deleteToken**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/UploadTokensApi.md#deleteToken) | **DELETE** `/upload-tokens/{uploadToken}` | Delete an upload token
[**list**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/UploadTokensApi.md#list) | **GET** `/upload-tokens` | List all active upload tokens

#### VideosApi

##### Retrieve an instance of VideosApi:
```java
ApiVideoClient apiVideoClient = new ApiVideoClient("YOUR_API_KEY");
VideosApi videos = client.Videos()
```

##### Endpoints

Method | HTTP request | Description
------------- | ------------- | -------------
[**create**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/VideosApi.md#create) | **POST** `/videos` | Create a video object
[**upload**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/VideosApi.md#upload) | **POST** `/videos/{videoId}/source` | Upload a video
[**uploadWithUploadToken**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/VideosApi.md#uploadWithUploadToken) | **POST** `/upload` | Upload with an delegated upload token
[**get**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/VideosApi.md#get) | **GET** `/videos/{videoId}` | Retrieve a video object
[**update**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/VideosApi.md#update) | **PATCH** `/videos/{videoId}` | Update a video object
[**delete**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/VideosApi.md#delete) | **DELETE** `/videos/{videoId}` | Delete a video object
[**list**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/VideosApi.md#list) | **GET** `/videos` | List all video objects
[**uploadThumbnail**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/VideosApi.md#uploadThumbnail) | **POST** `/videos/{videoId}/thumbnail` | Upload a thumbnail
[**pickThumbnail**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/VideosApi.md#pickThumbnail) | **PATCH** `/videos/{videoId}/thumbnail` | Set a thumbnail
[**getDiscarded**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/VideosApi.md#getDiscarded) | **GET** `/discarded/videos/{videoId}` | Retrieve a discarded video object
[**getStatus**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/VideosApi.md#getStatus) | **GET** `/videos/{videoId}/status` | Retrieve video status and details
[**listDiscarded**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/VideosApi.md#listDiscarded) | **GET** `/discarded/videos` | List all discarded video objects
[**updateDiscarded**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/VideosApi.md#updateDiscarded) | **PATCH** `/discarded/videos/{videoId}` | Update a discarded video object

#### WatermarksApi

##### Retrieve an instance of WatermarksApi:
```java
ApiVideoClient apiVideoClient = new ApiVideoClient("YOUR_API_KEY");
WatermarksApi watermarks = client.Watermarks()
```

##### Endpoints

Method | HTTP request | Description
------------- | ------------- | -------------
[**upload**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/WatermarksApi.md#upload) | **POST** `/watermarks` | Upload a watermark
[**delete**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/WatermarksApi.md#delete) | **DELETE** `/watermarks/{watermarkId}` | Delete a watermark
[**list**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/WatermarksApi.md#list) | **GET** `/watermarks` | List all watermarks

#### WebhooksApi

##### Retrieve an instance of WebhooksApi:
```java
ApiVideoClient apiVideoClient = new ApiVideoClient("YOUR_API_KEY");
WebhooksApi webhooks = client.Webhooks()
```

##### Endpoints

Method | HTTP request | Description
------------- | ------------- | -------------
[**create**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/WebhooksApi.md#create) | **POST** `/webhooks` | Create Webhook
[**get**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/WebhooksApi.md#get) | **GET** `/webhooks/{webhookId}` | Retrieve Webhook details
[**delete**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/WebhooksApi.md#delete) | **DELETE** `/webhooks/{webhookId}` | Delete a Webhook
[**list**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/WebhooksApi.md#list) | **GET** `/webhooks` | List all webhooks

### Models

- [AccessToken](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/AccessToken.md)
- [AdditionalBadRequestErrors](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/AdditionalBadRequestErrors.md)
- [AnalyticsAggregatedMetricsResponse](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/AnalyticsAggregatedMetricsResponse.md)
- [AnalyticsAggregatedMetricsResponseContext](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/AnalyticsAggregatedMetricsResponseContext.md)
- [AnalyticsAggregatedMetricsResponseContextTimeframe](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/AnalyticsAggregatedMetricsResponseContextTimeframe.md)
- [AnalyticsData](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/AnalyticsData.md)
- [AnalyticsMetricsBreakdownResponse](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/AnalyticsMetricsBreakdownResponse.md)
- [AnalyticsMetricsBreakdownResponseContext](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/AnalyticsMetricsBreakdownResponseContext.md)
- [AnalyticsMetricsBreakdownResponseData](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/AnalyticsMetricsBreakdownResponseData.md)
- [AnalyticsMetricsOverTimeResponse](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/AnalyticsMetricsOverTimeResponse.md)
- [AnalyticsMetricsOverTimeResponseContext](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/AnalyticsMetricsOverTimeResponseContext.md)
- [AnalyticsMetricsOverTimeResponseData](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/AnalyticsMetricsOverTimeResponseData.md)
- [AnalyticsPlays400Error](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/AnalyticsPlays400Error.md)
- [AnalyticsPlaysResponse](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/AnalyticsPlaysResponse.md)
- [AuthenticatePayload](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/AuthenticatePayload.md)
- [BadRequest](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/BadRequest.md)
- [BytesRange](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/BytesRange.md)
- [Caption](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/Caption.md)
- [CaptionsListResponse](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/CaptionsListResponse.md)
- [CaptionsUpdatePayload](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/CaptionsUpdatePayload.md)
- [Chapter](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/Chapter.md)
- [ChaptersListResponse](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/ChaptersListResponse.md)
- [ConflictError](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/ConflictError.md)
- [DiscardedVideoUpdatePayload](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/DiscardedVideoUpdatePayload.md)
- [FilterBy](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/FilterBy.md)
- [FilterBy1](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/FilterBy1.md)
- [FilterBy2](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/FilterBy2.md)
- [Link](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/Link.md)
- [ListTagsResponse](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/ListTagsResponse.md)
- [ListTagsResponseData](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/ListTagsResponseData.md)
- [LiveStream](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/LiveStream.md)
- [LiveStreamAssets](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/LiveStreamAssets.md)
- [LiveStreamCreationPayload](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/LiveStreamCreationPayload.md)
- [LiveStreamListResponse](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/LiveStreamListResponse.md)
- [LiveStreamUpdatePayload](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/LiveStreamUpdatePayload.md)
- [Metadata](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/Metadata.md)
- [Model403ErrorSchema](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/Model403ErrorSchema.md)
- [NotFound](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/NotFound.md)
- [Pagination](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/Pagination.md)
- [PaginationLink](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/PaginationLink.md)
- [PlayerSessionEvent](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/PlayerSessionEvent.md)
- [PlayerTheme](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/PlayerTheme.md)
- [PlayerThemeAssets](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/PlayerThemeAssets.md)
- [PlayerThemeCreationPayload](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/PlayerThemeCreationPayload.md)
- [PlayerThemeUpdatePayload](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/PlayerThemeUpdatePayload.md)
- [PlayerThemesListResponse](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/PlayerThemesListResponse.md)
- [Quality](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/Quality.md)
- [RefreshTokenPayload](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/RefreshTokenPayload.md)
- [RestreamsRequestObject](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/RestreamsRequestObject.md)
- [RestreamsResponseObject](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/RestreamsResponseObject.md)
- [SummariesListResponse](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/SummariesListResponse.md)
- [Summary](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/Summary.md)
- [SummaryCreationPayload](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/SummaryCreationPayload.md)
- [SummarySource](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/SummarySource.md)
- [SummaryUpdatePayload](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/SummaryUpdatePayload.md)
- [TokenCreationPayload](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/TokenCreationPayload.md)
- [TokenListResponse](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/TokenListResponse.md)
- [TooManyRequests](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/TooManyRequests.md)
- [UnrecognizedRequestUrl](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/UnrecognizedRequestUrl.md)
- [UploadToken](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/UploadToken.md)
- [Video](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/Video.md)
- [VideoAssets](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/VideoAssets.md)
- [VideoClip](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/VideoClip.md)
- [VideoCreationPayload](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/VideoCreationPayload.md)
- [VideoSource](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/VideoSource.md)
- [VideoSourceLiveStream](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/VideoSourceLiveStream.md)
- [VideoSourceLiveStreamLink](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/VideoSourceLiveStreamLink.md)
- [VideoStatus](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/VideoStatus.md)
- [VideoStatusEncoding](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/VideoStatusEncoding.md)
- [VideoStatusEncodingMetadata](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/VideoStatusEncodingMetadata.md)
- [VideoStatusIngest](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/VideoStatusIngest.md)
- [VideoStatusIngestReceivedParts](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/VideoStatusIngestReceivedParts.md)
- [VideoThumbnailPickPayload](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/VideoThumbnailPickPayload.md)
- [VideoUpdatePayload](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/VideoUpdatePayload.md)
- [VideoWatermark](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/VideoWatermark.md)
- [VideosListResponse](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/VideosListResponse.md)
- [Watermark](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/Watermark.md)
- [WatermarksListResponse](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/WatermarksListResponse.md)
- [Webhook](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/Webhook.md)
- [WebhooksCreationPayload](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/WebhooksCreationPayload.md)
- [WebhooksListResponse](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/WebhooksListResponse.md)

### Authorization

#### API key

Most endpoints required to be authenticated using the API key mechanism described in our [documentation](https://docs.api.video/reference#authentication).
The access token generation mechanism is automatically handled by the client. All you have to do is provide an API key when instantiating the ApiVideoClient:
```java
ApiVideoClient apiVideoClient = new ApiVideoClient("YOUR_API_KEY");
```

#### Public endpoints

Some endpoints don't require authentication. These one can be called with an ApiVideoClient instantiated without API key:
```java
ApiVideoClient apiVideoClient = new ApiVideoClient();
```

### Recommendation

It's recommended to create an instance of `ApiClient` per thread in a multithreaded environment to avoid any potential issues.

### Have you gotten use from this API client?

Please take a moment to leave a star on the client ⭐

This helps other users to find the clients and also helps us understand which clients are most popular. Thank you!

## Contribution

Since this API client is generated from an OpenAPI description, we cannot accept pull requests made directly to the repository. If you want to contribute, you can open a pull request on the repository of our [client generator](https://github.com/apivideo/api-client-generator). Otherwise, you can also simply open an issue detailing your need on this repository.