diff --git a/README.md b/README.md index 677d9858..3194ed68 100644 --- a/README.md +++ b/README.md @@ -1,93 +1,96 @@ --- hide_navigation: false -hide_side_table_of_contents: true +toc: false +breadcrumbs: false meta: description: Cloud-based video hosting and live streaming platform with analytics. Mobile and web SDKs for VOD, live streaming, and player for NodeJS, Javascript, Typescript, Python, Go, PHP, C#, iOS Swift, Android Kotlin. --- -
+
### New to api.video? -## Get started [here](/get-started/start-building.md)! - -
+# Get started [here](/get-started/start-building.md)!
-Welcome to the developer documentation of api.video! Our platform empowers developers and businesses to seamlessly integrate video functionality into their applications and services. Whether you're looking to offer video on demand, live streaming, or leverage our player and analytics features, the api.video API is designed to simplify the process. - -Check out the products: - -
+Welcome to the developer documentation of api.video! Our platform empowers developers and businesses to seamlessly integrate video functionality into their applications and services. Whether you're looking to offer video on demand, live streaming, or leverage our player and analytics features, the api.video API is designed to simplify the process. -{% capture vod-description %} +Check out the products! -api.video's hosting service enables users to upload and store videos, which can then be easily delivered and shared across various devices and platforms. + + + + api.video's hosting service enables you to upload and store videos, and then deliver and share them easily across various devices and platforms. + + + + + + api.video provides you with the possibility to embed low-latency live streaming into your application, website, or project seamlessly. + + + + + + + api.video lets you customize a large part of the delivery, whether it's the player's branding or adding captions, chapters, and watermarks. -{% endcapture %} + + + + + -{% capture live-stream-description %} -api.video provides you with the possibility to embed live streaming into your application or project seamlessly. +
+
-{% endcapture %} +## Quick links -{% capture delivery-analytics-description %} +
-api.video lets you customize a large part of the delivery, whether it's the player's branding or adding captions, chapters, and watermarks. + + + + [Start building with api.video](/get-started/start-building) -
+ [VOD quickstart](/vod/get-started-in-5-minutes) -{% endcapture %} + [Live streaming quickstart](/live-streaming/create-a-live-stream) -{% include "_partials/product-card.md" product: "Video", subheading: "on demand", description: vod-description, link: "/vod/README.md" %} -{% include "_partials/product-card.md" product: "Live", subheading: "streaming", description: live-stream-description, link: "/live-streaming/README.md" %} -{% include "_partials/product-card.md" product: "Delivery", subheading: "& analytics", description: delivery-analytics-description, link: "/delivery-analytics/README.md" %} + [Delivery & analytics quickstart](/delivery-analytics/delivery-analytics-quickstart) +
+
-
+ + + [API clients](/sdks/api-clients) + [Video libraries & SDKs](/sdks/vod) -
+ [Live streaming libraries & SDKs](/sdks/livestream) -
+ [Delivery & analytics SDKs](/sdks/player) -## Quick links + [No-code solutions](/sdks/nocode) + + -
+ + + [Help Center and FAQs](https://help.api.video/en/) - + [Blog](https://api.video/blog/) + [Changelog](https://api.video/changelog/) + + +
@@ -97,7 +100,19 @@ api.video lets you customize a large part of the delivery, whether it's the play
-
-{% include "_partials/support-card.md" label: "Browse Help Center", icon: "/_assets/icons/helpcenter.png", link: "https://help.api.video/en/" %} -{% include "_partials/support-card.md" label: "Ask the Community", icon: "/_assets/icons/community.png", link: "https://community.api.video/" %} -
+ + + + ![Help center](/_assets/icons/helpcenter.png) + + [Browse help center ›](https://help.api.video/en/) + + + + + ![Community](/_assets/icons/community.png) + + [Ask the community ›](https://community.api.video/) + + + \ No newline at end of file diff --git a/_assets/css/style.css b/_assets/css/style.css index 1b52ab7e..5fb05b13 100644 --- a/_assets/css/style.css +++ b/_assets/css/style.css @@ -352,6 +352,25 @@ .content-markdown { padding-left: 80px !important; } + +} + +@media (min-width: 1024px) { + #page-content > div > div > div:has(.no-toc) { + --max-width-sm: auto !important; + padding-left: 40px !important; + } +} + + +@media (min-width: 1280px) { + #page-content > div > div > div:has(.no-toc) { + padding-left: 80px !important; + } + + #page-content > div > div:has(.no-toc) { + width: auto !important; + } } .section-header hr { @@ -383,4 +402,104 @@ p { .dark p { color: rgba(255, 255, 255, 0.70); -} \ No newline at end of file +} + +.landing-page-card { + border: 1px solid var(--gray-4); + color: var(--gray-10); + overflow: hidden; + border-radius: var(--radius-5); + box-shadow: 0px 20px 50px 0px rgba(59, 43, 92, 0.1), 0px 34px 24px -20px rgba(65, 79, 110, 0.04); +} + +.landing-page-card.Video .landing-page-card-header { + background: linear-gradient(215deg, #fa5b30 -5.18%, #f7b500 179.35%); +} + +.landing-page-card.Live .landing-page-card-header { + background: linear-gradient(76deg, #642180 -24.15%, #af2a72 93.03%); +} + +.landing-page-card.Delivery .landing-page-card-header { + background: linear-gradient(76deg, #4eb2dd -24.15%, #642180 93.03%); +} + +.landing-page-card-header { + height: 12rem; + background: linear-gradient(215deg, #fa5b30 -5.18%, #f7b500 179.35%); + color: var(--accent-contrast); + + display: flex; + flex-direction: column; + justify-content: end; + + border-radius: 0 !important; +} + +.landing-page-card-header-title { + font-weight: 700; + font-size: 20pt; +} + +.landing-page-card-header > p { + margin: 0 !important; +} + +/* ----------------------------- */ + +.landing-page-list { + border: 1px solid var(--gray-4); + color: var(--gray-10); + overflow: hidden; + border-radius: var(--radius-5); + box-shadow: 0px 20px 50px 0px rgba(59, 43, 92, 0.1), 0px 34px 24px -20px rgba(65, 79, 110, 0.04); +} + +div.landing-page-list-header { + font-weight: 800; + color: var(--gray-12); + position: relative; + padding-top: var(--padding-3) !important; + padding-left: var(--padding-3) !important; + padding-right: var(--padding-3) !important; +} + +.landing-page-list-header::before { + content: ''; + height: 3px; + width: 1.5rem; + position: absolute; + left: var(--padding-3); + bottom: var(--padding-0); + background-color: var(--accent-10); +} + +.landing-page-list-body div p { + margin-top: 0px; + margin-bottom: 0px; + width: 100%; + padding-top: 0.8rem; +} + +.landing-page-list-body div p:not(:last-child) { + padding-bottom: 0.8rem; +} + +.landing-page-list-body div p { + border-top: 1px solid var(--gray-4); +} + +.landing-page-list-body p a { + color: var(--gray-10); + font-size: 14px; + text-decoration: none; +} + +/* ----------------------------- */ + +.api-video-card { + color: var(--gray-10); + overflow: hidden; + border-radius: var(--radius-2); + box-shadow: 0px 20px 50px 0px rgba(59, 43, 92, 0.1), 0px 34px 24px -20px rgba(65, 79, 110, 0.04); +} diff --git a/_assets/get-started/migration-guide/icons/Amazon-S3-Logo.png b/_assets/get-started/migration-guide/icons/Amazon-S3-Logo.png new file mode 100644 index 00000000..8c03f06f Binary files /dev/null and b/_assets/get-started/migration-guide/icons/Amazon-S3-Logo.png differ diff --git a/_assets/get-started/migration-guide/icons/Google-Storage-Logo.png b/_assets/get-started/migration-guide/icons/Google-Storage-Logo.png new file mode 100644 index 00000000..8275cec3 Binary files /dev/null and b/_assets/get-started/migration-guide/icons/Google-Storage-Logo.png differ diff --git a/_assets/get-started/migration-guide/icons/Microsoft_Azure.png b/_assets/get-started/migration-guide/icons/Microsoft_Azure.png new file mode 100644 index 00000000..e16ab53d Binary files /dev/null and b/_assets/get-started/migration-guide/icons/Microsoft_Azure.png differ diff --git a/_assets/get-started/migration-guide/icons/cloudinary-logo.png b/_assets/get-started/migration-guide/icons/cloudinary-logo.png new file mode 100644 index 00000000..61f30de1 Binary files /dev/null and b/_assets/get-started/migration-guide/icons/cloudinary-logo.png differ diff --git a/_assets/get-started/migration-guide/icons/vimeo.png b/_assets/get-started/migration-guide/icons/vimeo.png new file mode 100644 index 00000000..e1a48896 Binary files /dev/null and b/_assets/get-started/migration-guide/icons/vimeo.png differ diff --git a/_assets/get-started/migration-guide/icons/wistia.png b/_assets/get-started/migration-guide/icons/wistia.png new file mode 100644 index 00000000..03efe727 Binary files /dev/null and b/_assets/get-started/migration-guide/icons/wistia.png differ diff --git a/_components/api-video-card.md b/_components/api-video-card.md new file mode 100644 index 00000000..f10717f0 --- /dev/null +++ b/_components/api-video-card.md @@ -0,0 +1,6 @@ +--- +--- + + + + diff --git a/_components/landing-page-card.md b/_components/landing-page-card.md new file mode 100644 index 00000000..76e35741 --- /dev/null +++ b/_components/landing-page-card.md @@ -0,0 +1,18 @@ +--- +attributes: + - title: heading + required: true + - title: subheading + required: true +--- + + + + {@heading} + + {@subheading} + + + + + diff --git a/_components/landing-page-list.md b/_components/landing-page-list.md new file mode 100644 index 00000000..7e700e6a --- /dev/null +++ b/_components/landing-page-list.md @@ -0,0 +1,14 @@ +--- +attributes: + - title: heading + required: true +--- + + + + {@heading} + + + + + diff --git a/delivery-analytics/README.md b/delivery-analytics/README.md index 6ce3166d..bc36313a 100644 --- a/delivery-analytics/README.md +++ b/delivery-analytics/README.md @@ -1,47 +1,86 @@ --- title: "Delivery & analytics overview" -slug: "delivery-analytics-overview" -hide_side_table_of_contents: true +toc: false +breadcrumbs: false meta: description: This page serves as a foundational guide to integrating api.video's solutions for video delivery, player customization, and analytics. --- -

- - How does - - video delivery - work? -

-

+
-

- api.video lets you customize a large part of the delivery, from the branding of the player, - to adding captions, chapters, and watermarks. - You have full control over how you deliver the content to your users. - The flexibility does not end with player customization, - you can build your own player in order to deliver the content in the best form you see fit. -
-

+# How does video delivery work? -
+ api.video lets you customize a large part of the delivery, from the branding of the player, to adding captions, chapters, and watermarks. You have full control over how you deliver the content to your users. The flexibility does not end with player customization, you can build your own player in order to deliver the content in the best form you see fit. -
+
-# Start delivering with api.video +--- -
+## Start delivering with api.video -
-{% include "_partials/content-card.md" label: "Delivery & analytics quickstart", icon: "/_assets/icons/player-customization.svg", description: "Learn how to make the most of your content delivery through branding, customization, and gathering analytics.", link: "/delivery-analytics/delivery-analytics-quickstart" %} -{% include "_partials/content-card.md" label: "Analytics & data", icon: "/_assets/icons/analytics.svg", description: "Start collecting delivery event data about your videos and live streams.", link: "/delivery-analytics/analytics" %} -{% include "_partials/content-card.md" label: "Using custom domains", icon: "/_assets/icons/custom-domains.svg", description: "Maintain your company branding by delivering through custom domains", link: "/delivery-analytics/using-custom-domains" %} -{% include "_partials/content-card.md" label: "Domain referrer restrictions", icon: "/_assets/icons/domain_referrer.png", description: "Make sure that your videos and live streams are delivered securely, and only through your domains", link: "/delivery-analytics/domain-referrer" %} -{% include "_partials/content-card.md" label: "In-stream ads", icon: "/_assets/icons/ads.png", description: "Implement in-stream ads to monetize your videos and live streams conveniently.", link: "/delivery-analytics/ads" %} -{% include "_partials/content-card.md" label: "Private videos", icon: "/_assets/icons/private_videos.png", description: "Learn how you can secure and manage access to your videos.", link: "/delivery-analytics/private-video-get-started" %} -{% include "_partials/content-card.md" label: "Player SDKs", icon: "/_assets/icons/player-sdks.svg", description: "Check out api.video's dedicated video player libraries and SDKs.", link: "/sdks/player#player-sdks" %} -{% include "_partials/content-card.md" label: "Analytics SDKs", icon: "/_assets/icons/analytics.svg", description: "Check out api.video's dedicated libraries and SDKs for delivery analytics.", link: "/sdks/player#player-analytics-sdks" %} -
+ + + ![Delivery & analytics quickstart](/_assets/icons/player-customization.svg) + + **Delivery & analytics quickstart**\ + Learn how to make the most of your content delivery through branding, customization, and gathering analytics. + + [Learn more ›](/delivery-analytics/delivery-analytics-quickstart) + + + ![Analytics & data](/_assets/icons/analytics.svg) + + **Analytics & data**\ + Start collecting delivery event data about your videos and live streams. + + [Learn more ›](/delivery-analytics/analytics) + + + ![Using custom domains](/_assets/icons/custom-domains.svg) + + **Using custom domains**\ + Maintain your company branding by delivering through custom domains + + [Learn more ›](/delivery-analytics/using-custom-domains) + + + ![Domain referrer restrictions](/_assets/icons/domain_referrer.png) + + **Domain referrer restrictions**\ + Make sure that your videos and live streams are delivered securely, and only through your domains. + + [Learn more ›](/delivery-analytics/domain-referrer) + + + ![In-stream ads](/_assets/icons/ads.png) + + **In-stream ads**\ + Implement in-stream ads to monetize your videos and live streams conveniently. + + [Learn more ›](/delivery-analytics/ads) + + + ![Private videos](/_assets/icons/private_videos.png) + + **Private videos**\ + Learn how you can secure and manage access to your videos. + + [Learn more ›](/delivery-analytics/private-video-get-started) + + + ![Player SDKs](/_assets/icons/player-sdks.svg) + + **Player SDKs**\ + Check out api.video's dedicated video player libraries and SDKs. + + [Learn more ›](/sdks/player#player-sdks) + + + ![Analytics SDKs](/_assets/icons/analytics.svg) + + **Analytics SDKs**\ + Check out api.video's dedicated libraries and SDKs for delivery analytics. + [Learn more ›](/sdks/player#player-analytics-sdks) + + \ No newline at end of file diff --git a/delivery-analytics/ads.md b/delivery-analytics/ads.md index 23368072..d5661175 100644 --- a/delivery-analytics/ads.md +++ b/delivery-analytics/ads.md @@ -43,7 +43,6 @@ https://embed.api.video/vod/#adTagUrl:https%3A%2F%2Fpubads.g.doubleclic Using the React Native Player SDK, you will be able to pass the `ads` component, with the `adTagUrl` that will include the URL tags string. For example: -{% raw %} ```javascript ``` -{% endraw %} ### Javascript Player SDK diff --git a/delivery-analytics/analytics.md b/delivery-analytics/analytics.md index d756e0fb..0b378b83 100644 --- a/delivery-analytics/analytics.md +++ b/delivery-analytics/analytics.md @@ -33,13 +33,11 @@ After play events are collected, there is a short delay while the API processes ### Requirements -{% capture content %} + The Analytics feature is available using api.video's video player. Check out the [Video Player SDK](/sdks/player/apivideo-player-sdk) for details about the implementation. When using third-party players, you need to implement the [Video.js](/sdks/player/apivideo-videojs-analytics) or [Hls.js](/sdks/player/apivideo-hlsjs-analytics) analytics plugins, or the analytics modules for [Android](/sdks/player/apivideo-android-player-analytics) or [Swift](/sdks/player/apivideo-swift-player-analytics). These enable you to collect and report play event data to api.video, so you can retrieve analytics from the API. -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} - + ## Usage @@ -50,12 +48,11 @@ Api.video offers 2 dedicated API endpoints for analytics: | [`/analytics/videos/plays`](https://docs.api.video/reference/api/Analytics#get-play-events-for-video) | Get play event count for VOD (Video on demand) | | [`/analytics/live-streams/plays`](https://docs.api.video/reference/api/Analytics#get-play-events-for-live-stream) | Get play event count for live streams | -{% capture content %} + **Testing** You can test the Analytics endpoints **in api.video's sandbox environment**. Check out [Environments](/reference/README.md#environments) for more details. The sandbox environment returns data within the last 1-day time period. -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + ### Request @@ -70,17 +67,25 @@ curl --request GET \ --header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpYXQiOjE2NDI4MDUyNzEuOTEyODMsIm5iZiI6MTY0MjgwNTI3MS45MTI4MywiZXhwIjoxNjQyODA4ODcxLjkxMjgzLCJwcm9qZWN0SWQiOiJwclJ6SUpKQTdCTHNxSGpTNDVLVnBCMSJ9.jTiB29R_sg5dqCDBU8wrnz7GRJsCzfVeLVTX-XSctS024B9OmGsuY139s2ua1HzrT63sqkBB1QshrjZbkDLVxSrs0-gt-FaM2bgvCC0lqK1HzEUL4vN2OqPPuM8R2pruj0UdGVaifGqmyfehKcHxuNr0ijGmGIMwSXkabECbXCxm7LraRCgmlobHepuXcUPeUKzKxN5LwPSO1onD684S0FtUUYbVMq9Ik7V8UznbpOjmFaknIZowKKlCkTmgKcyLSq7IaPJd7UuDJVXJDiC49oImEInrjx1xuFbyoBz_wkZlwcgk9GjksTeSz4xzBLcyzVgCwGP2hs8_BtdslXXOrA' \ ``` -{% capture content %} + api.video retains play event data for 30 days. If you select a time period that is outside the 30 day retention period, the API returns a `400` error. -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + | Parameter | Type | Required | Details | |---|---|---|---| -| `from` | `date` | `true` | The start date for the time period of the analytics you would like to request.

- The API returns analytics data **including** the day you set in from.
- A valid date value is only **within the last 30 days**.
- The value you provide must follow the `YYYY-MM-DD` format. | +| `from` | `date` | `true` | The start date for the time period of the analytics you would like to request. +- The API returns analytics data **including** the day you set in from. +- A valid date value is only **within the last 30 days**. +- The value you provide must follow the `YYYY-MM-DD` format. | | `dimension` | `string` | `true` | This parameter enables you to define a single property that you want analytics for. You can select only one property in your request. See the [table below for all dimension options](#dimension) | -| `to` | `date` | `false` | Use this optional query parameter to set the end date for the time period that you want analytics for.

- The API returns analytics data **excluding** the day you set in `to`.
- If you do not specify a `to` date, the API returns analytics data starting from the `from` date up until today, and **excluding** today.
- A valid date value is only **within the last 30 days**.
- The value you provide must follow the `YYYY-MM-DD` format. | -| `filter` | `key-value pair` | `false` | Use this parameter to filter your results to a specific video or live stream in a project that you want analytics for.

You must use the `videoId:` or `liveStreamId:` prefix when specifying an identifier for a video or a live stream.

Note that the **Get play events for videos** endpoint only accepts video `ID` as a filter, and the **Get play events for live streams** endpoint only accepts live stream `ID` as a filter. | +| `to` | `date` | `false` | Use this optional query parameter to set the end date for the time period that you want analytics for. +- The API returns analytics data **excluding** the day you set in `to`. +- If you do not specify a `to` date, the API returns analytics data starting from the `from` date up until today, and **excluding** today. +- A valid date value is only **within the last 30 days**. +- The value you provide must follow the `YYYY-MM-DD` format. | +| `filter` | `key-value pair` | `false` | Use this parameter to filter your results to a specific video or live stream in a project that you want analytics for. +You must use the `videoId:` or `liveStreamId:` prefix when specifying an identifier for a video or a live stream. +Note that the **Get play events for videos** endpoint only accepts video `ID` as a filter, and the **Get play events for live streams** endpoint only accepts live stream `ID` as a filter. | #### Dimension @@ -151,54 +156,54 @@ Based on your request the Analytics API returns paginated play event data in an You can find sample responses for some common analytics parameters here: -
By videoId +
+By videoId -This response gives you a detailed breakdown for the number of play events for each video from the date you specified until today. You can use this data to understand which videos are the most popular. + This response gives you a detailed breakdown for the number of play events for each video from the date you specified until today. You can use this data to understand which videos are the most popular. -The query string used in this example is `https://sandbox.api.video/analytics/videos/plays?`**`from=2023-06-01`**`&`**`dimension=videoId`** + The query string used in this example is `https://sandbox.api.video/analytics/videos/plays?`**`from=2023-06-01`**`&`**`dimension=videoId`** -This example uses the sandbox environment's `{base_URL}`. Check out the [**API environments**](/reference/README.md#environments) for more details. + This example uses the sandbox environment's `{base_URL}`. Check out the [**API environments**](/reference/README.md#environments) for more details. -```json -{ - "data": [ - { - "value": "vi3q7HxhApxRF1c8F8r6VeaI", - "plays": 100 - }, - { - "value": "vi3q7HxhApxRF1c8F8r6VeaF", - "plays": 10 - }, - { - "value": "vi3q7HxhApxRF1c8F8r6VeaH", - "plays": 1 - } - ], - "pagination": { - "currentPage": 1, - "currentPageItems": 3, - "pageSize": 25, - "pagesTotal": 1, - "itemsTotal": 3, - "links": [ + ```json + { + "data": [ { - "rel": "self", - "uri": "/analytics/videos/plays?dimension=videoId¤tPage=1&pageSize=25" + "value": "vi3q7HxhApxRF1c8F8r6VeaI", + "plays": 100 }, { - "rel": "first", - "uri": "/analytics/videos/plays?dimension=videoId¤tPage=1&pageSize=25" + "value": "vi3q7HxhApxRF1c8F8r6VeaF", + "plays": 10 }, { - "rel": "last", - "uri": "/analytics/videos/plays?dimension=videoId¤tPage=1&pageSize=25" + "value": "vi3q7HxhApxRF1c8F8r6VeaH", + "plays": 1 } - ] + ], + "pagination": { + "currentPage": 1, + "currentPageItems": 3, + "pageSize": 25, + "pagesTotal": 1, + "itemsTotal": 3, + "links": [ + { + "rel": "self", + "uri": "/analytics/videos/plays?dimension=videoId¤tPage=1&pageSize=25" + }, + { + "rel": "first", + "uri": "/analytics/videos/plays?dimension=videoId¤tPage=1&pageSize=25" + }, + { + "rel": "last", + "uri": "/analytics/videos/plays?dimension=videoId¤tPage=1&pageSize=25" + } + ] + } } -} -``` - + ```
@@ -256,8 +261,6 @@ This example uses the sandbox environment's `{base_URL}`. Check out the [API env
-
- ## Best practices To ensure that your Analytics implementation runs smoothly, make sure that you: diff --git a/delivery-analytics/delivery-analytics-quickstart.md b/delivery-analytics/delivery-analytics-quickstart.md index e7fa6b79..75797c0c 100644 --- a/delivery-analytics/delivery-analytics-quickstart.md +++ b/delivery-analytics/delivery-analytics-quickstart.md @@ -24,11 +24,9 @@ Let's set the player controls color to purple (#800080) and add our branded logo ### Preparation -{% capture content %} + In this example, we will be using the [api.video client libraries](/sdks/api-clients), however, if you prefer to use cURL or make the requests yourself, you are welcome to follow along with the [API reference documentation](/reference/api/Player-Themes). - -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + ### Adding the api.video client library & initializing @@ -38,12 +36,12 @@ The client library takes your API key, which you can [find here](https://dashboa If wish to learn more about api.video authentication and how it works, jump over to this [page](/reference/authentication-guide). -{% capture content %} + Make sure to install the [modules / libraries](/sdks/api-clients) on your environment beforehand. -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + + -{% capture samples %} + ```javascript const ApiVideoClient = require('@api.video/nodejs-client') ``` @@ -89,15 +87,15 @@ require __DIR__ . '/vendor/autoload.php'; $playerThemeCreationPayload = (new \ApiVideo\Client\Model\PlayerThemeCreationPayload()) ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + ### Creating a player theme and adding a color We have the code for the client initialization now, and we can proceed with creating a new player theme while adding a different color to our player controls. -{% capture samples %} + + ```javascript const playerThemeCreationPayload = { link: "rgba(128, 0, 128, 1)", // RGBA color for all controls. Default: rgba(255, @@ -200,9 +198,7 @@ $playerThemeCreationPayload = (new \ApiVideo\Client\Model\PlayerThemeCreationPay $playerTheme = $client->playerThemes()->create($playerThemeCreationPayload); ``` - -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + The following code will give us this effect: @@ -235,11 +231,12 @@ The response that you should expect will contain the `playerId` that we will use ### Adding the logo -After you've created the player theme, you'll get a player theme id in the response. Let's add our company logo, to that player theme. We will utilize the [/players/{player_id}/logo](/reference/api/Player-Themes#upload-a-logo) endpoint in order to do that. +After you've created the player theme, you'll get a player theme id in the response. Let's add our company logo, to that player theme. We will utilize the [`/players/{player_id}/logo`](/reference/api/Player-Themes#upload-a-logo) endpoint in order to do that. First, find the image you would like to add to all of your videos. Make sure to find an image that doesn't exceed 200px x 100px, preferably in PNG format. -{% capture samples %} + + ```javascript const playerId = 'pl45d5vFFGrfdsdsd156dGhh'; // The unique identifier for the player. const file = './company-logo.jpg'; // The name of the file you want to use for your logo. @@ -368,8 +365,7 @@ func main() { ", res) } ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + After you've added the image, it will look similar to this: @@ -382,8 +378,8 @@ In order for the theme to apply by default when you play a video, you need to ma Let's assume that we are updating an existing video: -{% capture samples %} + ```javascript // First install the "@api.video/nodejs-client" npm package // Documentation: https://github.com/apivideo/api.video-nodejs-client/blob/main/doc/api/VideosApi.md#update @@ -499,8 +495,7 @@ public class Example { } } ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + Now we've applied our theme to this specific video, and we can implement the api.video player on our frontend. @@ -516,8 +511,6 @@ $ npm install --save @api.video/react-player Once we have the React project and the React Player SDK added to the project, we can dive into our code and add the video component: -{% raw %} - ```tsx import ApiVideoPlayer from '@api.video/react-player' @@ -529,52 +522,43 @@ import ApiVideoPlayer from '@api.video/react-player' }} /> ``` -{% endraw %} - - Now you can see your awesome branding in action! ## Get started with analytics After we have a cool branded player, it would be great to get some data on your users. For that purpose, we have the api.video Analytics for your disposal. -{% capture content %} + Please note, that we will only collect analytics from videos that were played through the api.video player. If you are using a custom player, you can leverage the [analytics SDKs](/sdks/player#player-analytics-sdks) to pass on the analytics to api.video. - -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + In this example, we will check what countries your video was watched the most. ### Preparation -{% capture content %} + In this example, we will be using the [api.video client libraries](/sdks/api-clients), however, is you prefer to use cURL or make the requests yourself, you are welcome to follow along with the [API reference documentation](/reference/api/Player-Themes). - -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + ### Add & initialize the api.video client library -{% capture content %} + If you've followed through the whole tutorial, you can skip this step - -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + Let's add the api.video client library to our code. -{% capture content %} + Make sure to install the modules / libraries on your environment beforehand. -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + The client library takes your API key, which you can [find here](https://dashboard.api.video/project-settings/api-keys). Let's pass it the API key and initialize the client. You can learn more about authentication [here](/reference/authentication-guide). -{% capture samples %} + + ```javascript const ApiVideoClient = require('@api.video/nodejs-client') ``` @@ -620,8 +604,7 @@ require __DIR__ . '/vendor/autoload.php'; $playerThemeCreationPayload = (new \ApiVideo\Client\Model\PlayerThemeCreationPayload()) ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + ### Get the count of plays by country @@ -634,8 +617,8 @@ Notice that we are passing few parameters: * dimension: This parameter will accept a few values, including `country`` in order to return the determine which dimension you would like to analyze. * from: is a required field. The date from which the data should start. -{% capture samples %} + ```javascript const client = new ApiVideoClient({ apiKey: "YOUR_API_KEY" }); const from = "2023-09-01"; @@ -783,9 +766,7 @@ namespace Example } ``` - -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + The result will be something like this: diff --git a/delivery-analytics/domain-referrer.md b/delivery-analytics/domain-referrer.md index 922ca6c9..6f191066 100644 --- a/delivery-analytics/domain-referrer.md +++ b/delivery-analytics/domain-referrer.md @@ -48,9 +48,9 @@ The following information is needed to get you started: | Use case | Referrer | Example | | ------------------------------------- | ----------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | -| Browser player | strict domain referrer | - Domain: `mydomain.com`

\* Optional:
- subdomains: `yyy.mydomain.com`, `zzz.mydomain.com` | -| Browser player + native mobile player | strict domain referrer + empty referrer allowed | - Domain: `mydomain.com`
- `Allow empty referrer`

\* Optional:
- subdomains: `yyy.mydomain.com`, `zzz.mydomain.com` | -| Native mobile player | Not supported | - | +| Browser player | strict domain referrer | - Domain: `mydomain.com`
**Optional**:
- subdomains: `yyy.mydomain.com`, `zzz.mydomain.com` | +| Browser player + native mobile player | strict domain referrer + empty referrer allowed | - Domain: `mydomain.com`
- `Allow empty referrer`
**Optional**:

- subdomains: `yyy.mydomain.com`, `zzz.mydomain.com` | +| Native mobile player | **Not supported** | - | Our team will configure the feature on the backend and let you know as soon as it is ready. diff --git a/delivery-analytics/private-video-delivery-web-browser.md b/delivery-analytics/private-video-delivery-web-browser.md index 7e89b738..c14acec0 100644 --- a/delivery-analytics/private-video-delivery-web-browser.md +++ b/delivery-analytics/private-video-delivery-web-browser.md @@ -21,14 +21,12 @@ When delivering the embedded video, we will use our in-house player to playback ``` - -{% capture content %} + **iframes in incognito mode** When playing an embedded private video in a browser that runs in incognito mode you'll have to leverage sessions. Check out the guide for retaining a private session [here](/delivery-analytics/private-videos-with-custom-players-session-retention). -{% endcapture %} -{% include "_partials/callout.html" kind: "error", content: content %} + In order to build a dynamically served private videos, you can leverage the [/videos](/reference/api/Videos#retrieve-a-video-object) endpoint in order to get the url of the video and private token. For example the following steps are possible: diff --git a/delivery-analytics/private-video-delivery-with-mp4-built-in-players.md b/delivery-analytics/private-video-delivery-with-mp4-built-in-players.md index c7f7e33d..514b0d51 100644 --- a/delivery-analytics/private-video-delivery-with-mp4-built-in-players.md +++ b/delivery-analytics/private-video-delivery-with-mp4-built-in-players.md @@ -4,13 +4,11 @@ meta: description: Manage and control the access to mp4 videos that you publish with api.video. --- -Private Video Delivery With Mp4 Built In Players -================================================ +# Private Video Delivery With Mp4 Built In Players -{% capture content %} + api.video recommends that you read [Private Videos](/delivery-analytics/video-privacy-access-management) to ensure that you understand the concept of private videos before proceeding. -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + There are cases where you would want to use built-in players that are not api.video. We support private video delivery via other players other than our in-house. In this article you can find how to deliver private videos with MP4 built-in player diff --git a/delivery-analytics/private-video-get-started.md b/delivery-analytics/private-video-get-started.md index 26156512..534dfe52 100644 --- a/delivery-analytics/private-video-get-started.md +++ b/delivery-analytics/private-video-get-started.md @@ -9,7 +9,7 @@ This article explains how to secure and limit access to videos. ## Secure & manage access to your videos -Maybe you are asking yourself: “ok, but how does _video privacy_ help me?”. There are quite a few use cases for private videos, and we’ve discussed the hassle of securing the videos yourself. +Maybe you are asking yourself: "ok, but how does _video privacy_ help me?". There are quite a few use cases for private videos, and we’ve discussed the hassle of securing the videos yourself. - On-demand videos behind a paywall - Content Protection @@ -38,11 +38,11 @@ After you learn how private video works and what it’s good for, we can now tal To reiterate the private video concept, here’s a visual representation of how the whole thing works: -{% include "_partials/dark-light-image.md" dark: "/_assets/delivery-analytics/private-videos/private-videos-dark.svg", light: "/_assets/delivery-analytics/private-videos/private-videos-light.svg", alt: "A diagram that shows the process of using private tokens" %} +A diagram that shows the process of using private tokens Knowing that now we can finally start building stuff! -It’s that simple! (if you want the advanced stuff, scroll down to “Time to roll up our sleeves!”) +It’s that simple! (if you want the advanced stuff, scroll down to "Time to roll up our sleeves!") Let’s try to deliver one video in HTML with our own (amazing!) [api.video](https://api.video/) player. @@ -150,7 +150,7 @@ There are two types of tokens for private videos: At a very high level, to request different assets for the same private video, more than having the private token is required; you also need to retain the session. For that, we have the session token. In the flowchart below, you can see that for each private video, we are using a session token + the private token: -{% include "_partials/dark-light-image.md" dark: "/_assets/delivery-analytics/private-videos/single-session-token-dark.svg", light: "/_assets/delivery-analytics/private-videos/single-session-token-light.svg", alt: "A diagram that shows the steps of using a session token" %} +A diagram that shows the steps of using a session token So let’s get a bit technical here. To start the session, you will need to request the `/session` endpoint, get the session token, add it to the first asset you request, and then add it to every following asset you request. In the example above, we will request the `/session` endpoint, then add the session token to the query string of the private video thumbnail → request an embedded video asset with the session token in the query string → request a private video asset in mp4 format with the session token, and so on, you get the idea. @@ -250,9 +250,7 @@ Notice that the second object has a property `public` which is set to `false` , 2. If you remember, we need to get the session token by requesting the /session endpoint. The endpoint accepts the video id and private token; however, if you notice the private token is only in the URL. So let’s extract it! we can use this simple regex to extract it from the embedded URL `(?<=token=).*$` 3. We first extract the private token from the URL and map it to the asset objects (with the video URL, video id, etc.) 4. Then we request the /session endpoint passing in the video id and private token, and we get the session_token. Now we can also map to the same asset object. -{% raw %} 5. We’re almost done; hang in there! now let’s get generate `` tags with the src as the asset thumbnails and add the session token in the query string as an `avh` parameter, i.e: `` . Then in the same line generate the `` tag that will lead us to the actual video, and as you understood already, it too has to include the session token, i.e: `` -{% endraw %} 6. And lastly, generate the HTML `` and `` while encapsulating the `` we’ve already created, and…. DONE! Now you have clickable thumbnails of your private videos which you can secure behind user credentials for example. diff --git a/delivery-analytics/private-video-on-hls-or-external-players.md b/delivery-analytics/private-video-on-hls-or-external-players.md index b36dddd4..789e3dc4 100644 --- a/delivery-analytics/private-video-on-hls-or-external-players.md +++ b/delivery-analytics/private-video-on-hls-or-external-players.md @@ -6,10 +6,9 @@ meta: # Private Video On Hls Or External Players -{% capture content %} + api.video recommends that you read [Private Videos](/delivery-analytics/video-privacy-access-management) to ensure that you understand the concept of private videos before proceeding. -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + There are cases where you would want to use built-in players that are not api.video. We support private video delivery via other players other than our in-house. In this article you can find how to deliver private videos with HLS built-in player @@ -62,12 +61,11 @@ Example of loading the manifest with hls.js on Safari: Source: [GitHub](https://github.com/video-dev/hls.js/blob/master/docs/API.md#third-step-load-a-manifest) -{% capture content %} + **Test the manifest with hls.js demo** You can test and pass the manifest to this demo player that is provided by hls.js: https://hls-js.netlify.app/demo/ -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + ### Serving private videos dynamically diff --git a/delivery-analytics/private-video-session-tokens.md b/delivery-analytics/private-video-session-tokens.md index ecb3cbd6..99e1c512 100644 --- a/delivery-analytics/private-video-session-tokens.md +++ b/delivery-analytics/private-video-session-tokens.md @@ -14,14 +14,13 @@ The session starts with the /session endpoint where we get the session token fro Once the session token is acquired, it is reused in all other requests to the different assets. -{% include "_partials/dark-light-image.md" dark: "/_assets/delivery-analytics/private-videos/session-token-dark.svg", light: "/_assets/delivery-analytics/private-videos/session-token-light.svg", alt: "A diagram that shows the session token flow" %} +A diagram that shows the session token flow -{% capture content %} + **Time to Live** The session token TTL is 24 hours. Once the session token has expired, you will have to get a new private token and create a new session. -{% endcapture %} -{% include "_partials/callout.html" kind: "warning", content: content %} + ## Using the session token (getting thumbnail example) diff --git a/delivery-analytics/private-videos-with-custom-players-session-retention.md b/delivery-analytics/private-videos-with-custom-players-session-retention.md index 477babe9..6ca494c7 100644 --- a/delivery-analytics/private-videos-with-custom-players-session-retention.md +++ b/delivery-analytics/private-videos-with-custom-players-session-retention.md @@ -18,7 +18,7 @@ In these cases, you will have to make multiple requests to api.video assets. As In short a Session Token is api.video's way of retaining the session for every request you make to each asset. You can find the detailed article about session tokens [here](/delivery-analytics/private-video-session-tokens). -{% capture content %} + **Example for incorrect usage of private videos** Let's take an example where you want to create a clickable thumbnail which will lead to the video. If we just write the following HTML **it will not work**, you will get a **404 error**: @@ -33,8 +33,7 @@ Let's take an example where you want to create a clickable thumbnail which will ``` -{% endcapture %} -{% include "_partials/callout.html" kind: "error", content: content %} + ### How to play private video in a custom built player? @@ -50,10 +49,9 @@ Let look at some cases where we can build an application that will use the Sessi #### Node.js example: Delivering the video with video.js and adding a thumbnail on the top -{% capture content %} + You can find the source for the example below on [GitHub](https://github.com/apivideo/parivate_video_videojs_node_example). -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + Check out an example of consuming private videos and thumbnail with video.js (Node) below. diff --git a/delivery-analytics/using-custom-domains.md b/delivery-analytics/using-custom-domains.md index c06ce306..bed357c3 100644 --- a/delivery-analytics/using-custom-domains.md +++ b/delivery-analytics/using-custom-domains.md @@ -16,7 +16,7 @@ When you request custom domains, api.video only has 3 simple requirements: - Provide the domains you want to use - Provide the TLS certificates for those domanins -{% include "_partials/dark-light-image.md" dark: "/_assets/delivery-analytics/custom-domains/custom-domains-dark.svg", light: "/_assets/delivery-analytics/custom-domains/custom-domains-light.svg", alt: "A diagram that shows the steps of requesting and using custom domains" %} +A diagram that shows the steps of requesting and using custom domains You can maintain your company branding by utilizing custom domains in any of these use cases, and more: diff --git a/delivery-analytics/video-playback-features.md b/delivery-analytics/video-playback-features.md index f4d24475..3e873094 100644 --- a/delivery-analytics/video-playback-features.md +++ b/delivery-analytics/video-playback-features.md @@ -1,16 +1,15 @@ --- -title: api.video Player features +title: HTML5 Player URL Fragments meta: - description: URL fragments let you complete the api.video embed source URL with query parameters introduced by a hash (#). The api.video Player features page shows you how to use them with your project. + description: URL fragments let you complete the api.video embed source URL with query parameters introduced by a hash (#). The HTML5 Player URL Fragments page shows you how to use them with your project. --- -api.video Player features -========================== +# HTML5 Player URL Fragments ## Introduction Some features of the api.video player may be activated with `URL fragments`. -In other words, it means that the Api Video embed (iFrame) source URL may be completed by query parameters introduced by a hash (#). +In other words, it means that the api.video embed iFrame's source URL may be completed by query parameters introduced with a hash `#`. Here is the example of a Api Video embed code: @@ -23,13 +22,15 @@ Any fragment must be appended to the end of this URL after a hash `#`. Example : `https://embed.api.video/vod/vi54sj9dAakOHJXKrUycCQZp#autoplay` -Multiple fragments may be concatenated with a semi-colon `;`. For example, this video will autoplay and loop. -Example : `https://embed.api.video/vod/vi54sj9dAakOHJXKrUycCQZp#autoplay;loop` +Multiple fragments may be concatenated with a semi-colon `;`. For example, this video will autoplay and loop: + +Example: `https://embed.api.video/vod/vi54sj9dAakOHJXKrUycCQZp#autoplay;loop` ### 1. Autoplay -To launch video as soon as the player can, use `#autoplay`. - +To launch video as soon as the player can, use `#autoplay`: + +`https://embed.api.video/vod/vi54sj9dAakOHJXKrUycCQZp#autoplay` @@ -44,8 +45,9 @@ Time may be expressed in the following formats: - `mm:ss` (ex. `2:30` for two minutes and a half) - `hh:mm:ss` (ex. `1:30:00` for one hour and a half) -For example, this video will play from time =10 -> 15. - +For example, this video will play from time `10` to `15`: + +`https://embed.api.video/vod/vi54sj9dAakOHJXKrUycCQZp#t=10,15` @@ -63,10 +65,7 @@ To hide the Player's title that is displayed on the bottom left corner of the po To hide the Player's control bar, use `#hide-controls`. -{% capture content %} -Note that you need to integrate your own player controls if you hide the default api.video Player controls. -{% endcapture %} -{% include "_partials/callout.html" kind: "warning", content: content %} +Caution as you should integrate your own controls if you prevent users from accessing Api Video Player native ones. @@ -79,9 +78,9 @@ Video will play to end and automatically restart. This example will autoplay and ### 7. Show captions -If your video has captions, you can make them appear by default by adding the #show-subtitles url parameter to the player url: +If your video has captions, you can make them appear by default by adding the `#show-subtitles` url parameter to the player url: -![Showing video captions in the api.video player](/_assets/show-captions.png) +![Showing captions](/_assets/show-captions.png) ### 8. Download @@ -99,5 +98,4 @@ For example: https://embed.api.video/vod/#adTagUrl:https%3A%2F%2Fpubads.g.doubleclick.ne[…]tart%3D1%26env%3Dvp%26impl%3Ds%26correlator%3D` ``` -For more details, navigate to the dedicated documentation page for [in-stream ads](/delivery-analytics/ads). - +For more details, navigate to the dedicated documentation page for [in-stream ads](/delivery-analytics/ads). \ No newline at end of file diff --git a/delivery-analytics/video-privacy-access-management.md b/delivery-analytics/video-privacy-access-management.md index 52e7c748..1a2ffc08 100644 --- a/delivery-analytics/video-privacy-access-management.md +++ b/delivery-analytics/video-privacy-access-management.md @@ -12,12 +12,11 @@ When uploading user videos it's important to value the user's privacy, while we We offer the ability to create a one-time video with a destructible private token. When the user opens the video once, it's playable in the same page for the next 24 hours and the session is retained with the ability to refresh the page. The same url is not accessible the second time when trying to access it from a different browser, page or tab. -{% capture content %} + A **private token** is a string of unique numbers and letters. For example: `0092d5ef-5750-471d-9e7e-48d0a7580238` that is generated and passed with a private video in order to keep it secured and inaccessible to anyone that doesn't have that private token. -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + -{% include "_partials/dark-light-image.md" dark: "/_assets/delivery-analytics/private-videos/private-videos-dark.svg", light: "/_assets/delivery-analytics/private-videos/private-videos-light.svg", alt: "A diagram that shows the process of using private tokens" %} +A diagram that shows the process of using private tokens ### How to create private videos? @@ -41,6 +40,6 @@ You can see that for each url the token will be included in different places. Fo You can [retrieve a video](/reference/api/Videos#retrieve-a-video-object) via the API, which will generate the private token while you retrieve it. Each time you make a new request to retrieve a video it will generate a new private token. Hence, if the same user would like to play the video multiple times, on different pages you'll need to make a request to the `https://ws.api.video/videos/{videoId}` endpoint mentioned above in order to get a new private token. -{% include "_partials/dark-light-image.md" dark: "/_assets/delivery-analytics/private-videos/private-video-reusability-dark.svg", light: "/_assets/delivery-analytics/private-videos/private-video-reusability-light.svg", alt: "A diagram that shows the process of reusing private videos" %} +A diagram that shows the process of reusing private videos Once you've retrieved the video you can either use api.video player or an external player to play it back for the user. Hence the user can play it back for as long as the session lives, which is 24 hours in this case. When the session has ended, you will have to generate a new private token. \ No newline at end of file diff --git a/doctave.yaml b/doctave.yaml index 81767b73..d0a747a2 100644 --- a/doctave.yaml +++ b/doctave.yaml @@ -1,5 +1,6 @@ --- title: api.video documentation +version: 2 header: links: - external: https://community.api.video/ @@ -14,17 +15,15 @@ header: external: https://dashboard.api.video/register text: Sign up for free -colors: - main: "#FA5B30" - main_dark: "#FA5B30" - content_bg_secondary: "#F6F8FA" - -favicon: - src: _assets/favicon.ico - -logo: - src: _assets/logo.svg - src_dark: _assets/logo-dark.svg +theme: + colors: + accent: "#FA5B30" + content_bg_secondary: "#F6F8FA" + favicon: + src: _assets/favicon.ico + logo: + src: _assets/logo.svg + src_dark: _assets/logo-dark.svg styles: - _assets/css/style.css @@ -41,6 +40,50 @@ open_api: - spec_file: openapi.yaml uri_prefix: /reference/api +tabs: + - label: Get started + path: / + - label: VOD + path: /vod/ + - label: Live streaming + path: /live-streaming/ + - label: Delivery & analytics + path: /delivery-analytics/ + - label: API Reference + path: /reference/ + - label: Libraries & SDKs + path: /sdks/ + subtabs: + - label: Overview + path: /sdks/ + - label: Security best practices + path: /sdks/security/ + - label: API clients + path: /sdks/api-clients/ + icon: + set: lucide + name: square-code + - label: VOD + path: /sdks/vod/ + icon: + set: lucide + name: video + - label: Live streaming + path: /sdks/livestream/ + icon: + set: lucide + name: radio-tower + - label: Delivery & analytics + path: /sdks/player/ + icon: + set: lucide + name: monitor-play + - label: No-code solutions + path: /sdks/nocode/ + icon: + set: lucide + name: blocks + redirects: - from: /docs to: / diff --git a/get-started/aws-migration.md b/get-started/aws-migration.md index f8fbc193..f05feac1 100644 --- a/get-started/aws-migration.md +++ b/get-started/aws-migration.md @@ -36,13 +36,9 @@ Access keys consist of an access key ID and secret access key, which are used to We recommend that you use IAM access keys instead of AWS root account access keys. IAM lets you securely control access to AWS services and resources in your AWS account. -{% capture content %} - + To create access keys, you must have permission to perform the required IAM actions. For more information, see Granting IAM User Permission to Manage Password Policy and Credentials in the IAM User Guide. - -{% endcapture %} - -{% include "_partials/callout.html" kind: "info", content: content %} + **To get your access key ID and secret access key:** - Open the [IAM console](https://console.aws.amazon.com/iam/). @@ -52,22 +48,16 @@ To create access keys, you must have permission to perform the required IAM acti - To see the new access key, choose Show. Your credentials resemble the following: ``` - Access key ID: AKIAIOSFODNN7EXAMPLE Secret access key: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY - ``` - To download the key pair, choose Download .csv file. Store the .csv file with keys in a secure location. -{% capture content %} - + Keep the keys confidential to protect your AWS account, and never email them. Do not share them outside your organization, even if an inquiry appears to come from AWS or Amazon.com. No one who legitimately represents Amazon will ever ask you for your secret key. - -{% endcapture %} - -{% include "_partials/callout.html" kind: "warning", content: content %} + You can retrieve the secret access key only when you initially create the key pair. Like a password, **you can't retrieve it later.** If you lose it, you must create a new key pair. diff --git a/get-started/azure-migration.md b/get-started/azure-migration.md index 2efae1a0..9e55a2d3 100644 --- a/get-started/azure-migration.md +++ b/get-started/azure-migration.md @@ -11,10 +11,9 @@ Planning to migrate api.video from Azure Media Services? We got you covered! You can import all of your video content, both from Azure's Blob storage and Media storage using api.video's Import tool. -{% capture content %} + When you import videos from Azure Media Services, you have the option to enable importing video captions in `VTT` format. The imported captions will be automatically linked to the videos they belong to. Videos with multiple captions are also handled by the Import tool. -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + ## What's the cost? @@ -39,12 +38,11 @@ The Import tool requires you to authenticate with the provider you are migrating These steps will guide you through the process. -{% capture content %} + Creating a Credentials `JSON` file is only required when you import videos from your Azure Media storage containers. Obtaining a SAS URL is required both when you import videos from your Blob storage and Media storage containers. -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + ### Create a Credentials `JSON` file diff --git a/get-started/infra.md b/get-started/infra.md index cfa49ca4..31daf624 100644 --- a/get-started/infra.md +++ b/get-started/infra.md @@ -11,9 +11,9 @@ api.video is unwavering in its dedication to providing top-tier performance worl To fulfill this commitment, we've meticulously crafted a robust infrastructure that spans both the European Union and the United States. Our strategically positioned servers and data centers in these regions are engineered to optimize video content ingestion and delivery, ensuring lightning-fast load times and seamless streaming experiences, no matter where your audience is located. With api.video, you can trust in the reliability and speed of your video content, making global reach more accessible than ever. -## How it works? +## How it works -{% include "_partials/dark-light-image.md" dark: "/_assets/get-started/infra/infra_flow_dark.png", light: "/_assets/get-started/infra/infra_flow_light.png", alt: "A diagram that shows the hosting location flow" %} +A diagram that shows the hosting location flow When creating a new account or adding a project after you have switched to production, you will be prompted to choose the region from which your videos will be hosted and delivered. You will encounter two primary options: @@ -31,12 +31,12 @@ api.video utilizes a robust CDN service with a vast network of [multiple Points ### How do I change a region? -At present, to modify the region you have previously selected, kindly reach out to our dedicated support team. +Reach out to our dedicated support team to help you modify the region you have previously selected for a project. ### Can I have different regions for different projects? -Yes, on each new project creation process you will be presented with the selection of a region. Each project can exist in a different region. +Yes, you can select a region for every project you create. Each project can run in a different region. -### What if my users are in Asia, Africa or Oceania, which region should I select? +### What if my users are in Asia, Africa or Oceania - which region should I select? -For optimal performance for Asia, Africa and Oceania, we recommend to select the EU region. We are constantly working on improving our infrastructure and making sure that your users will have seamless experience while uploading and streaming videos. \ No newline at end of file +For optimal performance for Asia, Africa, and Oceania, we recommend selecting the EU region. The team is constantly working on improving api.video's infrastructure, making sure that your users will have a seamless experience while uploading and streaming videos. \ No newline at end of file diff --git a/get-started/migration-guides.md b/get-started/migration-guides.md index 504014e1..26fd5ddf 100644 --- a/get-started/migration-guides.md +++ b/get-started/migration-guides.md @@ -1,30 +1,83 @@ --- title: "Migration guides" slug: "migration-guides" -hide_side_table_of_contents: true +toc: false meta: description: This page gets users started on how to migrate to api.video from other platforms using the Import tool. --- +
+ # Migration guides +
+ Moving to a different provider takes time, effort, and development resources. api.video can help you migrate your existing content cost-efficiently, in only a few clicks. Read more about using our [Import tool](https://api.video/blog/tutorials/switch-to-api-video-in-minutes-latest-updates-on-our-import-tool/), or check out the migration guides if you plan to move from these providers: -
+ + + + Azure -{% include "_partials/hagrid-item.md" title: "Azure", image: "/_assets/get-started/migration-guide/Microsoft_Azure.svg", subtitle: "Media Services", link: "./azure-migration.md" %} + + Azure\ + Media Services + + + -{% include "_partials/hagrid-item.md" title: "Amazon", image: "/_assets/get-started/migration-guide/Amazon-S3-Logo.svg", subtitle: "S3", link: "./aws-migration.md" %} + + + Amazon -{% include "_partials/hagrid-item.md" title: "Google", image: "/_assets/get-started/migration-guide/Google-Storage-Logo.png", subtitle: "Cloud Storage", link: "./gcs-migration.md" %} + + Amazon\ + S3 + + + -{% include "_partials/hagrid-item.md" title: "Vimeo", image: "/_assets/get-started/migration-guide/vimeo.png", subtitle: "", link: "./vimeo-migration.md" %} + + + Google Cloud Storage -{% include "_partials/hagrid-item.md" title: "Wistia", image: "/_assets/get-started/migration-guide/wistia.png", subtitle: "", link: "./wistia-migration.md" %} + + Google\ + Cloud Storage + + + -{% include "_partials/hagrid-item.md" title: "Cloudinary", image: "/_assets/get-started/migration-guide/cloudinary-logo.png", subtitle: "", link: "./cloudinary-migration.md" %} + + + Vimeo -
+ + Vimeo + + + + + + + Wistia + + + Wistia + + + + + + + Cloudinary + + + Cloudinary + + + + ## FAQs @@ -32,22 +85,26 @@ Moving to a different provider takes time, effort, and development resources. ap What do I need to change in my implementation after the migration?

Once you migrate, api.video will host your assets and will provide the infrastructure for you. You only need to take care about updating your product to use the new assets. +

Can I keep the original IDs / URLs of my assets?

Technically speaking no. When you migrate your assets, api.video generates new unique IDs for each of your videos. Even though you will need to update your product to use the new asset URLs and IDs, we will help you ease the workload by providing an exact mapping of your old assets to the new ones hosted by api.video. +

Will api.video help me create a mapping from old assets to new assets?

Yes! The Import tool automatically creates a mapping in csv and in JSON formats. +

Can I import video captions with the Import tool?

Yes! However, note these limitations: importing captions is currently only supported from Azure Media Services, and only in VTT format. +

\ No newline at end of file diff --git a/get-started/start-building.md b/get-started/start-building.md index 15168bae..75c778d5 100644 --- a/get-started/start-building.md +++ b/get-started/start-building.md @@ -1,32 +1,52 @@ --- title: "Start building with api.video" slug: "start-building" -hide_side_table_of_contents: true +toc: false meta: description: This page serves as a staring point to integrating api.video's solutions for video on demand, live streaming, and video delivery. --- -Start building with api.video -============= +
+ +# Start building with api.video + +
This documentation serves as your foundational guide to integrating api.video's solutions seamlessly into your applications. You can find essential insights into building with api.video, an overview of api.video's key concepts and features, quickstart guides to speed up your development process, and information on how to securely authenticate your interactions with the API. ## What is api.video? -{% include "_partials/dark-light-image.md" dark: "/_assets/get-started/start-building/what-is-api-video-dark.svg", light: "/_assets/get-started/start-building/what-is-api-video-light.svg", alt: "A diagram that shows how api.video works" %} +A diagram that shows how api.video works api.video is a cloud-based video hosting and live streaming platform that provides developers and businesses with an easy-to-use API to handle all video-related tasks. The platform offers a range of features to help developers and businesses manage video content, including video hosting, transcoding, player customization, live streaming, and analytics. -
+## Start building with api.video -
+ + + ![VOD SDK quickstart](/_assets/icons/vod-quickstart.svg) -## Start building with api.video + **VOD quickstart**\ + Get up to speed about the concept of VOD through building a video uploader and a video listing service in this quickstart guide. -
+ [Learn more ›](/vod/get-started-in-5-minutes) + + + + ![Live streaming quickstart](/_assets/icons/livestream-quickstart.svg) + + **Live streaming quickstart**\ + api.video enables you to embed low-latency live streaming into your application or project seamlessly. Start building now! + + [Learn more ›](/live-streaming/create-a-live-stream) + + + + ![Delivery & analytics quickstart](/_assets/icons/player-customization.svg) + + **Delivery & analytics quickstart**\ + Learn how to make the most of your content delivery through branding, customization, and gathering analytics. -
-{% include "_partials/content-card.md" label: "VOD quickstart", icon: "/_assets/icons/vod-quickstart.svg", description: "Get up to speed about the concept of VOD through building a video uploader and a video listing service in this quickstart guide.", link: "/vod/get-started-in-5-minutes" %} -{% include "_partials/content-card.md" label: "Live streaming quickstart", icon: "/_assets/icons/livestream-quickstart.svg", description: "api.video enables you to embed live streaming into your application or project seamlessly. Start building now!", link: "/live-streaming/create-a-live-stream" %} -{% include "_partials/content-card.md" label: "Delivery & analytics quickstart", icon: "/_assets/icons/player-customization.svg", description: "Learn how to make the most of your content delivery through branding, customization, and gathering analytics.", link: "/delivery-analytics/delivery-analytics-quickstart" %} -
\ No newline at end of file + [Learn more ›](/delivery-analytics/delivery-analytics-quickstart) +
+ \ No newline at end of file diff --git a/get-started/vimeo-migration.md b/get-started/vimeo-migration.md index d159203c..fd78a8ff 100644 --- a/get-started/vimeo-migration.md +++ b/get-started/vimeo-migration.md @@ -13,13 +13,9 @@ Using the api.video Import tool, it only takes a couple of clicks to migrate all Check out the [Import tool](https://dashboard.api.video/import) to get started. -{% capture content %} - + Migrating from Vimeo requires that you have at least a Pro subscription or higher with Vimeo. This limitation is set by Vimeo, and is a requirement for video file access. - -{% endcapture %} - -{% include "_partials/callout.html" kind: "warning", content: content %} + ## What's the cost? diff --git a/live-streaming/README.md b/live-streaming/README.md index 900da81f..337ef977 100644 --- a/live-streaming/README.md +++ b/live-streaming/README.md @@ -1,31 +1,54 @@ --- title: Live stream overview -hide_side_table_of_contents: true +toc: false +breadcrumbs: false meta: description: This page serves as a foundational guide to integrating api.video's solutions for live streaming. --- -

- - What is live streaming? -

+
-

- api.video's live streaming service enables you to stream live video content to any device in real time. You can create custom video players with api.video's player customization feature, which empowers you to change the appearance and functionality of the player to suit your needs. -
-

+# What is live streaming? -
+ api.video's live streaming service enables you to stream live video content to any device in real time. You can create custom video players with api.video's player customization feature, which empowers you to change the appearance and functionality of the player to suit your needs. -
+
-# Start streaming with api.video +--- -
+## Start streaming with api.video + + + + ![Live streaming quickstart](/_assets/icons/livestream-quickstart.svg) + + **Live streaming quickstart**\ + api.video enables you to embed live streaming into your application or project seamlessly. Start building now! + + [Learn more ›](/live-streaming/create-a-live-stream) + + + ![Working with live streams](/_assets/icons/livestream-management.svg) + + **Working with live streams**\ + Learn about the different operations you can use to manage your live streams. + + [Learn more ›](/live-streaming/working-with-live-streams) + + + ![Live streaming SDKs](/_assets/icons/livestream-sdks.svg) + + **Live streaming SDKs**\ + Check out api.video's dedicated libraries and SDKs for live streaming. + + [Learn more ›](/sdks/livestream) + + + ![No-code solutions for live streaming](/_assets/icons/no-code.svg) + + **No-code solutions for live streaming**\ + Build your solution without code using api.video's supported no-code plugins. -
-{% include "_partials/content-card.md" label: "Live streaming quickstart", icon: "/_assets/icons/livestream-quickstart.svg", description: "api.video enables you to embed live streaming into your application or project seamlessly. Start building now!", link: "/live-streaming/create-a-live-stream" %} -{% include "_partials/content-card.md" label: "Working with live streams", icon: "/_assets/icons/livestream-management.svg", description: "Learn about the different operations you can use to manage your live streams.", link: "/live-streaming/working-with-live-streams" %} -{% include "_partials/content-card.md" label: "Live streaming SDKs", icon: "/_assets/icons/livestream-sdks.svg", description: "Check out api.video's dedicated libraries and SDKs for live streaming.", link: "/sdks/livestream" %} -{% include "_partials/content-card.md" label: "No-code solutions for live streaming", icon: "/_assets/icons/no-code.svg", description: "Build your solution without code using api.video's supported no-code plugins.", link: "/sdks/nocode" %} -
\ No newline at end of file + [Learn more ›](/sdks/nocode) +
+
\ No newline at end of file diff --git a/live-streaming/add-or-delete-a-live-stream-thumbnail.md b/live-streaming/add-or-delete-a-live-stream-thumbnail.md index e59857d7..8f9ff043 100644 --- a/live-streaming/add-or-delete-a-live-stream-thumbnail.md +++ b/live-streaming/add-or-delete-a-live-stream-thumbnail.md @@ -8,10 +8,9 @@ meta: You can add your image as the thumbnail. There is only one way to add a thumbnail to a live stream, unlike videos. This guide walks through how to add a live stream thumbnail. -{% capture content %} + If you want to add a thumbnail to a video, there are two methods available - you can choose an image to upload, or you can pick a frame from the video to set as the thumbnail. To learn how to do this, please see the [Add a thumbnail to your video](/vod/add-a-thumbnail-to-your-video) guide. -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + ## API documentation @@ -35,7 +34,8 @@ The clients offered by api.video include: To install your selected client, do the following: -{% capture samples %} + + ```go go get github.com/apivideo/api.video-go-client ``` @@ -57,8 +57,7 @@ Using Nuget Install-Package ApiVideo ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + ## Create an account @@ -70,7 +69,8 @@ Once you are logged in to the Dashboard, select the environment of your choice ( You can add a thumbnail image to your live stream by uploading the picture you want to use. You have the option to choose a photo that's in .jpg, .png, or .webp format. It must be 8MB or smaller. To send your file, add the path to where it's stored and open it in binary. Then you can upload it with the client of your choice or see how it works with cURL. -{% capture samples %} + + ```curl curl --request POST \ --url https://ws.api.video/live-streams/vi4k0jvEUuaTdRAEjQ4Jfrgz/thumbnail \ @@ -175,14 +175,14 @@ file = open("image1.jpg", "rb") response = live_stream_api.upload_thumbnail(live_stream_id, file) print(response) ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + ## Delete a live stream thumbnail To delete a live stream thumbnail, get the live stream ID for the live stream with the thumbnail you want to remove. Then send in a request for deletion using the client of your choice. The thumbnail will be removed from your live stream! -{% capture samples %} + + ```curl curl --request DELETE \ --url https://ws.api.video/live-streams/li400mYKSgQ6xs7taUeSaEKr/thumbnail \ @@ -277,8 +277,7 @@ live_stream_api = LiveStreamsApi(client) response = live_stream_api.delete_thumbnail(live_stream) print(response) ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + ## Conclusion diff --git a/live-streaming/create-a-live-stream.md b/live-streaming/create-a-live-stream.md index 70bed255..d853c873 100644 --- a/live-streaming/create-a-live-stream.md +++ b/live-streaming/create-a-live-stream.md @@ -12,12 +12,11 @@ Creating a live stream is simple with api.video. After you create it, you have a This guide helps you follow along with the video and learn how to set up your live stream with api.video, and then use OBS to broadcast. -{% capture content %} + api.video supports both `RTMP` and `SRT` protocols for live streaming. Accepting live streams through `SRT` **is currently in beta** - reach out if you have any questions or encounter any issues! -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + ## API reference @@ -40,7 +39,8 @@ The clients offered by api.video include: To install your selected client, do the following: -{% capture samples %} + + ```go go get github.com/apivideo/api.video-go-client ``` @@ -62,8 +62,7 @@ Using Nuget Install-Package ApiVideo ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + ## Create an account @@ -75,7 +74,8 @@ Once you are logged in to the Dashboard, select the environment of your choice ( The first part of setting up your live stream to broadcast is to create a live stream container. Once you create the container, you can use it for live streaming. Here is the code to create the container: -{% capture samples %} + + ```go package main @@ -183,8 +183,7 @@ curl --request POST \ "playerId": "pt240hxAaDBLCYxUIPh0Fb2" } ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + ## Connect to your live stream container @@ -214,10 +213,9 @@ In this example, we will use [OBS Studio](https://obsproject.com), which is an o To share your stream, grab the embed URL or the `iframe` that you received in the API response when you created the live stream container. -{% capture content %} + All live stream details like your Stream key, the embed URL, and the `iframe` are also available through the api.video dashboard. Go to the [Live streams](https://dashboard.api.video/livestreams) page, and open the Details of the live stream that you want to share. -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + ## Live stream directly from your dashboard diff --git a/live-streaming/list-live-streams.md b/live-streaming/list-live-streams.md index 192f90db..145b7c1a 100644 --- a/live-streaming/list-live-streams.md +++ b/live-streaming/list-live-streams.md @@ -29,7 +29,8 @@ The clients offered by api.video include: To install your selected client, do the following: -{% capture samples %} + + ```go go get github.com/apivideo/api.video-go-client ``` @@ -51,8 +52,7 @@ Using Nuget Install-Package ApiVideo ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + ## Create an account @@ -64,7 +64,8 @@ Once you are logged in to the Dashboard, select the environment of your choice ( You can list all live streams you have to see what's available or send a request that filters your live streams. This code sample shows you how to list all live streams: -{% capture samples %} + + ```curl curl --request GET \ --url https://ws.api.video/live-streams \ @@ -152,8 +153,7 @@ live_stream_api = LiveStreamsApi(client) response = live_stream_api.list() print(response) ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + ## List a subset of live streams @@ -166,7 +166,8 @@ You can send in a request to filter based on the different parameters for a live - `currentPage` - Choose the search results page to return—minimum value: 1. - `pageSize` - Choose the number of results per page. Allowed values: 1-100, default is 25. -{% capture samples %} + + ```curl curl --request GET \ --url 'https://ws.api.video/live-streams?name=My%20video¤tPage=1&pageSize=25' \ @@ -272,8 +273,7 @@ title = 'My Video Title' response = live_stream_api.list(title=title) print(response) ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + ## List live streams using your dashboard diff --git a/live-streaming/live-stream-best-practices.md b/live-streaming/live-stream-best-practices.md index 78196ad5..7a37754d 100644 --- a/live-streaming/live-stream-best-practices.md +++ b/live-streaming/live-stream-best-practices.md @@ -72,12 +72,12 @@ Keyframe Interval: 2 second ## Limitations -{% capture content %} + + * When using the sandbox environment, live streaming is limited to 24 hours. * The **video codec must be H.264** * The **audio codec must be AAC or MP3** * DVR is exactly 1 hour * During a disconnection on ingest side, re-connection must occur within 10 seconds * When creating a new live event using the same `streamID` without keeping the DVR of a previous live, you must wait at least 5 minutes before re-using it -{% endcapture %} -{% include "_partials/callout.html" kind: "warning", content: content %} \ No newline at end of file + \ No newline at end of file diff --git a/live-streaming/restreams.md b/live-streaming/restreams.md index fe79177e..9a7baadb 100644 --- a/live-streaming/restreams.md +++ b/live-streaming/restreams.md @@ -6,20 +6,19 @@ meta: # Restreaming -{% capture content %} + **Beta Feature** Please note that Restreaming is currently a beta feature. The api.video engineering team is continuously working on improving the feature, thus issues may occur. If you are experiencing an issue, please do not hesitate to contact our support team. -{% endcapture %} -{% include "_partials/callout.html" kind: "warning", content: content %} + api.video gives you the ability to broadcast a live stream to multiple platforms simultaneously. You'll be able to stream to Youtube, Twitch, and any other platform that supports [RTMP](https://api.video/blog/video-trends/what-is-rtmp-and-why-do-we-use-it-for-live-streaming/) from one source. ## How it works -{% include "_partials/dark-light-image.md" dark: "/_assets/live-streaming/restreams/restreams-dark.svg", light: "/_assets/live-streaming/restreams/restreams-light.svg", alt: "A diagram that shows RTMP restreaming on different platforms" %} +A diagram that shows RTMP restreaming on different platforms You can add restreams to an existing live stream or you can create a live stream that already includes the restream list. @@ -47,7 +46,7 @@ The Live stream endpoint has an optional field called `restreams` which is an ar | `serverUrl` | `string` | The RTMP url of the streaming server. | | `streamKey` | `string` | Stream key provided by the streaming provider. | -{% capture content %} + Please note that: - Currently api.video supports up to 5 restreams @@ -55,8 +54,7 @@ Please note that: - The names of the providers are arbitrary, you can provide any name you like - When updating the restreams object, it's important to make sure that you are passing the previous values if you would like to keep them - Modifying the restreams array while the live stream is already broadcasting will only take only effect after the stream has been restarted -{% endcapture %} -{% include "_partials/callout.html" kind: "warning", content: content %} + ## Supported Platforms @@ -75,12 +73,11 @@ In order to get started with restream, you will need to create a live stream. Ch ## Usage -{% capture content %} + **Limitations** Restreaming in Sandbox mode is limited to 2 minutes. The original live stream is not limited, only the restreams are limited. -{% endcapture %} -{% include "_partials/callout.html" kind: "warning", content: content %} + ### Creating a live stream with restreams diff --git a/live-streaming/working-with-live-streams.md b/live-streaming/working-with-live-streams.md index 5904388d..57a06132 100644 --- a/live-streaming/working-with-live-streams.md +++ b/live-streaming/working-with-live-streams.md @@ -31,7 +31,8 @@ The clients offered by api.video include: To install your selected client, do the following: -{% capture samples %} + + ```go go get github.com/apivideo/api.video-go-client @@ -54,9 +55,7 @@ Using Nuget Install-Package ApiVideo ``` - -{% endcapture %} -{% include "_partials/code-tabs.html" content: samples %} + ## Create an account @@ -68,8 +67,8 @@ Once you are logged in to the Dashboard, select the environment of your choice ( You can retrieve details about any live stream by sending a request containing the live stream ID. The response will show you the current state of the live stream and provide all the details you need if you want to broadcast using a particular live stream container. -{% capture samples %} + ```curl curl --request GET \ --url https://ws.api.video/live-streams/li400mYKSgQ6xs7taUeSaEKr \ @@ -164,8 +163,7 @@ live_stream_api = LiveStreamsApi(client) response = live_stream_api.get(live_stream_id) print(response) ``` -{% endcapture %} -{% include "_partials/code-tabs.html" content: samples %} + ## Show live stream (retrieve details for watching) with your dashboard @@ -185,14 +183,14 @@ If you don't want to retrieve details about a live stream programmatically, you If you want to update details for your live stream, you need the unique ID for your live stream and then the changes you want to make. You're able to update: -- name - A string representing the name of your live stream. -- public - A boolean representing whether your video is public or not (true for public, false for private). -- playerId - You can associate an api.video player with your live stream by providing the player's ID. +- `name` - A string representing the name of your live stream. +- `public` - A boolean representing whether your video is public or not (true for public, false for private). +- `playerId` - You can associate an api.video player with your live stream by providing the player's ID. The code sample to update is: -{% capture samples %} + ```curl curl --request PATCH \ --url https://ws.api.video/live-streams/li400mYKSgQ6xs7taUeSaEKr \ @@ -285,9 +283,7 @@ live_stream_update_payload = { response = live_stream_api.update(live_stream_id, live_stream_update_payload) print(response) ``` - -{% endcapture %} -{% include "_partials/code-tabs.html" content: samples %} + ## Update a live stream using the dashboard @@ -309,8 +305,8 @@ You can update live stream details from your dashboard if you don't want to retr You can delete a live stream by sending in a DELETE request using the unique ID for the live stream. The code sample looks like this: -{% capture samples %} + ```curl curl --request DELETE \ --url https://ws.api.video/live-streams/li400mYKSgQ6xs7taUeSaEKr \ @@ -380,9 +376,7 @@ live_stream_api = LiveStreamsApi(client) response = live_stream_api.delete(live_stream) print(response) ``` - -{% endcapture %} -{% include "_partials/code-tabs.html" content: samples %} + ## Delete a live stream from your dashboard diff --git a/reference/README.md b/reference/README.md index 05d62ba5..ba8940c7 100644 --- a/reference/README.md +++ b/reference/README.md @@ -1,24 +1,18 @@ --- title: API reference -hide_side_table_of_contents: true +toc: true +breadcrumbs: false meta: description: The API reference serves as a practical developers' documentation about api.video's solutions for video on demand, live streaming, and delivery. --- -

- - api.video - - API reference -

-

- -

- This page describes how to authenticate, set up, and securely implement the api.video API solutions with your product. -
-

+
+ +# api.video API reference + + This page describes how to authenticate, set up, and securely implement the api.video API solutions with your product. + +
api.video API is built with the [REST API](https://en.wikipedia.org/wiki/Representational_state_transfer) standard, the most common standard used today. @@ -28,8 +22,8 @@ We are following the [OpenAPI](https://www.openapis.org/) specs. You can find ou ## Environments -| Environment | URL | -| ----------- | -------------------------------------------------------- | +| Environment | URL | +| ----------- | ------------------------------------------------------ | | Production | [https://ws.api.video](https://ws.api.video) | | Sandbox | [https://sandbox.api.video](https://sandbox.api.video) | @@ -39,14 +33,13 @@ Once you've upgraded you can switch between sandbox and production by toggling t ![Switching to the sandbox environment in the Dashboard](/_assets/reference/sandbox-switch.png) -{% capture content %} + **The sandbox mode has these limitations** - Limited to 30 seconds videos and live streams. - Will include an unremovable watermark - Videos or recorded live streams will be deleted after 24 hours, after upload or recording. -{% endcapture %} -{% include "_partials/callout.html" kind: "warning", content: content %} + ## Security diff --git a/reference/authentication-guide.md b/reference/authentication-guide.md index ef1b13d6..e12aa5ab 100644 --- a/reference/authentication-guide.md +++ b/reference/authentication-guide.md @@ -13,10 +13,9 @@ With api.video, every call to the API requires authentication. In order to authe Each of these methods has its advantages. You can choose either of the authentication methods that suit your security needs. -{% capture content %} + When using the [api.video client libraries](/sdks/api-clients), the Disposable Bearer token will be applied by default. -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + * Basic authentication is great for quick testing (with Postman for example) and will be quicker to implement if you decide to write your own wrapper for the API. @@ -45,13 +44,9 @@ This method will allow you to use a simple way of authentication. By sending you Here's an example of how to make a request with Basic Authentication to api.video: -{% capture samples %} ```curl $ curl -u apikey: https://sandbox.api.video/ ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} - ## Bearer Token Authentication @@ -59,7 +54,7 @@ Bearer authentication (also called token authentication) is an HTTP authenticati api.video provides an enhanced security authentication method, which uses a disposable bearer token that has a short time to live and has to be refreshed every 3600 seconds. -{% include "_partials/dark-light-image.md" dark: "/_assets/reference/authentication/disposable-bearer-token-dark.svg", light: "/_assets/reference/authentication/disposable-bearer-token-light.svg", alt: "A diagram that shows how disposable bearer tokens can be created, used, and refreshed"%} +A diagram that shows how disposable bearer tokens can be created, used, and refreshed Bearer token authentication is simple to set up and use; however, we encourage you to use one of our client libraries if possible. [api.video client libraries](/sdks/api-clients) handle authentication for you, including renewing your token as needed. @@ -68,6 +63,7 @@ Bearer token authentication is simple to set up and use; however, we encourage y With the Bearer Token method, there are [two endpoints](/reference/api/Advanced-authentication) at your disposable in order to generate the access token. 1. You have to make a request to the `/auth/api-key` endpoint in order to get the bearer token + ```curl curl -X POST \ https://sandbox.api.video/auth/api-key \ @@ -105,7 +101,8 @@ curl --request POST \ The simplest way, of course, is using the [api.video client libraries](/sdks/api-clients). You can find an example of how to authenticate below: -{% capture samples %} + + ```go package main @@ -204,6 +201,4 @@ namespace Example } } ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} - + diff --git a/reference/basic-authentication.md b/reference/basic-authentication.md index 5279dded..ba9e45c7 100644 --- a/reference/basic-authentication.md +++ b/reference/basic-authentication.md @@ -14,15 +14,13 @@ If invalid credentials are provided, a `401 Unauthorized` response code is retur You must use different credentials depending on the [environment](/reference/README.md#environments) you are in. If credentials for the wrong environment are used, a `401 Unauthorized` response code is returned with the corresponding JSON body. - -{% capture content %} + **API Key protection** To protect your credentials from being revealed on the client-side, invoke the api.video calls from your own server-side applications only. Please make sure to read the security guidance [here](/reference/README.md#security). -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + ## Retrieve API keys @@ -50,7 +48,7 @@ Sample requests with authentication can be found below: curl -u api_key: https://sandbox.api.video/videos ``` -{% capture content %} + **Notes** * Replace `api_key` with the key you have already copied from [https://dashboard.api.video](https://dashboard.api.video/) @@ -59,5 +57,4 @@ Sample requests with authentication can be found below: ```bash curl --header 'Authorization: Basic your\_api\_key\_with\_trailing\_colon\_in\_base64' https://ws.api.video/videos ``` -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + \ No newline at end of file diff --git a/reference/create-and-manage-webhooks.md b/reference/create-and-manage-webhooks.md index 8f40d742..25763c00 100644 --- a/reference/create-and-manage-webhooks.md +++ b/reference/create-and-manage-webhooks.md @@ -17,11 +17,11 @@ api.video provides you the possibility to get a `POST` request to your server th | `video.source.recorded` | Triggers to indicate that a live stream has been completed and the recording of the live stream (if you set it to record) is ready to be transcoded. NOTE: This means the video has been enqueued for transcoding. | | `video.encoding.quality.completed` | Triggers when you upload a video, every time api.video finishes encoding a video in a set quality (up to the same level of quality that you uploaded), you get an announcement about it. | -
+--- Here’s how the `video.encoding` webhook’s flow looks like: -{% include "_partials/dark-light-image.md" dark: "/_assets/reference/webhooks/webhooks-dark.svg", light: "/_assets/reference/webhooks/webhooks-light.svg", alt: "A diagram that shows the video.encoding webhook flow" %} +A diagram that shows the video.encoding webhook flow ## Event properties @@ -78,12 +78,11 @@ You can test your webhooks with tools like [Pipedream](https://pipedream.com/wor ### Retry policy -{% capture content %} + **Webhook retry policy** api.video’s webhook service makes 3 notification attempts, with 3 second intervals between each try. -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + ### Choose an api.video client @@ -100,7 +99,8 @@ The clients offered by api.video include: To install your selected client, do the following: -{% capture samples %} + + ```go go get github.com/apivideo/api.video-go-client ``` @@ -122,8 +122,7 @@ Using Nuget Install-Package ApiVideo ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + ## Create an account @@ -135,7 +134,8 @@ Once you are logged in to the Dashboard, select the environment of your choice ( To create a webhook, all you have to do is set up your server and provide api.video with the URL you want events sent to and the list of events you wish to be sent to that URL. -{% capture samples %} + + ```curl curl --request POST \ --url https://ws.api.video/webhooks \ @@ -244,14 +244,14 @@ webhooks_creation_payload = { response = webhooks_api.create(webhooks_creation_payload) print(response) ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + ### List all webhooks After you create webhooks, you can retrieve a complete list of the URLs and associated events going to them with this code sample: -{% capture samples %} + + ```curl curl --request GET \ --url 'https://ws.api.video/webhooks?events=video.encoding.quality.completed¤tPage=1&pageSize=25' \ @@ -353,14 +353,13 @@ webhooks_api = WebhooksApi(client) response = webhooks_api.list() print(response) ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + ### Show a webhook You can retrieve details about a specific webhook, including the URL and associated events, by sending a request with the unique webhook ID using this code sample: -{% capture samples %} + ```curl curl --request GET \ --url https://ws.api.video/webhooks/webhook_XXXXXXXXXXXXXXX \ @@ -453,14 +452,13 @@ webhooks_api = WebhooksApi(client) response = webhooks_api.get("your webhook ID here") print(response) ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + ### Delete a webhook You can delete a webhook using its unique ID with this code sample: -{% capture samples %} + ```curl curl --request DELETE \ --url https://ws.api.video/webhooks/webhook_XXXXXXXXXXXXXXX \ @@ -551,18 +549,16 @@ webhooks_api = WebhooksApi(client) response = webhooks_api.delete("your webhook ID here") print(response) ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + -{% capture content %} + **Warning** Deleting a webhook is a permanent action and deleted webhooks cannot be recovered. -{% endcapture %} -{% include "_partials/callout.html" kind: "warning", content: content %} + ## Next steps -You can also use the **[Get video status](/reference/api/Videos#retrieve-video-status-and-details)** endpoint operation to check whether a video is uploaded and ready for playback. +You can also use the [Get video status](/reference/api/Videos#retrieve-video-status-and-details) endpoint operation to check whether a video is uploaded and ready for playback. -Visit the API reference for a complete list of **[webhook](/reference/api/Webhooks)** endpoint operations. +Visit the API reference for a complete list of [webhook](/reference/api/Webhooks) endpoint operations. \ No newline at end of file diff --git a/reference/disposable-bearer-token-authentication.md b/reference/disposable-bearer-token-authentication.md index 7f9b6b55..995b0c2c 100644 --- a/reference/disposable-bearer-token-authentication.md +++ b/reference/disposable-bearer-token-authentication.md @@ -10,7 +10,7 @@ We provide an enhanced security authentication method, which uses a disposable b ## How it works? -{% include "_partials/dark-light-image.md" dark: "/_assets/reference/disposable-bearer-auth/disposable-bearer-token-dark.svg", light: "/_assets/reference/disposable-bearer-auth/disposable-bearer-token-light.svg", alt: "A diagram that shows how disposable bearer tokens can be created, used, and refreshed" %} +A diagram that shows how disposable bearer tokens can be created, used, and refreshed _Fig. 1_ diff --git a/reference/progressive-upload-errors-general.md b/reference/progressive-upload-errors-general.md index c4243426..38abe926 100644 --- a/reference/progressive-upload-errors-general.md +++ b/reference/progressive-upload-errors-general.md @@ -12,5 +12,5 @@ meta: | :------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | :------ | | `This "Content-Range" upload has been started with "part", you cannot continue it with "bytes".` | `400` | This "Content-Range" upload has been started with "part", you cannot continue it with "bytes". | | | `This "Content-Range" upload has been started with "bytes", you cannot continue it with "part"` | `400` | This "Content-Range" upload has been started with "bytes", you cannot continue it with "part". | | -| `The value of the "Content-Range" header is malformed, the expected format is "bytes \-\/\" or "part /\".` | `400` | The value of the "Content-Range" header is malformed, the expected format is "bytes \-\/\" or "part /\". | | +| `The value of the "Content-Range" header is malformed, the expected format is "bytes \-\/\" or "part /\".` | `400` | The value of the "Content-Range" header is malformed, the expected format is `from_byte` - `to_byte` / `total_bytes` or `part` / `total_parts`. | | | `This video source has already been initiated with a "Content-Range" upload.` | `400` | | | diff --git a/reference/video-content-range-malformed.md b/reference/video-content-range-malformed.md index 7c6a2c0a..46a67cd1 100644 --- a/reference/video-content-range-malformed.md +++ b/reference/video-content-range-malformed.md @@ -6,7 +6,7 @@ meta: # Video Content Range Malformed -The value of the "Content-Range" header is malformed, the expected format is "bytes -/" or "part /". +The value of the "Content-Range" header is malformed, the expected format is "bytes `from_byte`-`to_byte`/`total_bytes`" or "part `part`/`total_parts`". ## Solution diff --git a/sdks/README.md b/sdks/README.md index 29ae9edc..4c321006 100644 --- a/sdks/README.md +++ b/sdks/README.md @@ -1,37 +1,62 @@ --- hide_navigation: false -hide_side_table_of_contents: true +toc: false +breadcrumbs: false meta: description: Cloud-based video hosting and live streaming platform with analytics. Mobile and web SDKs for VOD, live streaming, and player for NodeJS, Javascript, Typescript, Python, Go, PHP, C#, Swift, and Kotlin. --- -

- - api.video - - Libraries & SDKs -

-

+
-

- api.video simplifies complex video infrastructure processes and provides the basis for creating fast, reliable, and scalable custom video experiences. api.video offers simple and transparent APIs for integrating, scaling, and managing on-demand & low latency live streaming features in your applications. -
-

+# api.video Libraries & SDKs -
+ api.video simplifies complex video infrastructure processes and provides the basis for creating fast, reliable, and scalable custom video experiences. api.video offers simple and transparent APIs for integrating, scaling, and managing on-demand & low latency live streaming features in your applications. -
+
+ +--- -# Start implementing with api.video +## Start implementing with api.video -
+ + + ![API client SDKs](/_assets/icons/github.svg) + + **API client SDKs**\ + Seamlessly integrate video on demand or live streaming into your current tech stack. + + [Learn more ›](/sdks/api-clients) + + + ![VOD SDKs](/_assets/icons/videos-sdks.svg) + + **VOD SDKs**\ + Enable your users to upload and store videos, which can be easily delivered and shared across various platforms. + + [Learn more ›](/sdks/vod) + + + ![Live streaming SDKs](/_assets/icons/livestream-sdks.svg) + + **Live streaming SDKs**\ + api.video provides you with the possibility to embed live streaming into your application or project seamlessly. + + [Learn more ›](/sdks/livestream) + + + ![Delivery & analytics SDKs](/_assets/icons/player-sdks.svg) + + **Delivery & analytics SDKs**\ + api.video lets you customize a large part of the delivery, whether it's the player's branding or adding captions, chapters, and watermarks. + + [Learn more ›](/sdks/player) + + + ![No-code solutions](/_assets/icons/no-code.svg) + + **No-code solutions**\ + Build your solution without code using api.video's supported no-code plugins. -
-{% include "_partials/content-card.md" label: "API client SDKs", icon: "/_assets/icons/github.svg", description: "Seamlessly integrate video on demand or live streaming into your current tech stack.", link: "/sdks/api-clients" %} -{% include "_partials/content-card.md" label: "VOD SDKs", icon: "/_assets/icons/videos-sdks.svg", description: "Enable your users to upload and store videos, which can be easily delivered and shared across various platforms.", link: "/sdks/vod" %} -{% include "_partials/content-card.md" label: "Live streaming SDKs", icon: "/_assets/icons/livestream-sdks.svg", description: "api.video provides you with the possibility to embed live streaming into your application or project seamlessly.", link: "/sdks/livestream" %} -{% include "_partials/content-card.md" label: "Delivery & analytics SDKs", icon: "/_assets/icons/player-sdks.svg", description: "api.video lets you customize a large part of the delivery, whether it's the player's branding or adding captions, chapters, and watermarks.", link: "/sdks/player" %} -{% include "_partials/content-card.md" label: "No-code solutions", icon: "/_assets/icons/no-code.svg", description: "Build your solution without code using api.video's supported no-code plugins.", link: "/sdks/nocode" %} -
\ No newline at end of file + [Learn more ›](/sdks/nocode) +
+
\ No newline at end of file diff --git a/sdks/api-clients/README.md b/sdks/api-clients/README.md index 34511439..8b64bda1 100644 --- a/sdks/api-clients/README.md +++ b/sdks/api-clients/README.md @@ -1,39 +1,111 @@ --- title: API client libraries -hide_side_table_of_contents: true +toc: false +breadcrumbs: false meta: description: api.video client libraries for NodeJS, Python, PHP, Go, C#, Java, iOS Swift, and Android. --- -API client libraries -================== +
-Seamlessly integrate video on demand or live streaming into your current tech stack. - -### Server-side - -
- -{% include "_partials/hagrid-item.md" title: "NodeJS", image: "/_assets/icons/sdk_icons/NodeJs.svg", subtitle: "API client", link: "././apivideo-nodejs-client.md" %} - -{% include "_partials/hagrid-item.md" title: "Python", image: "/_assets/icons/sdk_icons/Python.svg", subtitle: "API client", link: "././apivideo-python-client.md" %} - -{% include "_partials/hagrid-item.md" title: "PHP", image: "/_assets/icons/sdk_icons/Php.svg", subtitle: "API client", link: "././apivideo-php-client.md" %} - -{% include "_partials/hagrid-item.md" title: "Go", image: "/_assets/icons/sdk_icons/Go.svg", subtitle: "API client", link: "././apivideo-go-client.md" %} - -{% include "_partials/hagrid-item.md" title: "C#", image: "/_assets/icons/sdk_icons/Csharp.svg", subtitle: "API client", link: "././apivideo-csharp-client.md" %} - -{% include "_partials/hagrid-item.md" title: "Java", image: "/_assets/icons/sdk_icons/Java.svg", subtitle: "API client", link: "././apivideo-java-client.md" %} +# API client libraries
-### Mobile - -
- -{% include "_partials/hagrid-item.md" title: "Swift", image: "/_assets/icons/sdk_icons/Swift.svg", subtitle: "API client", link: "././apivideo-swift5-client.md" %} - -{% include "_partials/hagrid-item.md" title: "Android", image: "/_assets/icons/sdk_icons/Android.svg", subtitle: "API client", link: "././apivideo-android-client.md" %} +Seamlessly integrate video on demand or live streaming into your current tech stack. -
\ No newline at end of file +## Server-side + + + + + ![NodeJS](/_assets/icons/sdk_icons/NodeJs.svg) + + + NodeJS\ + API Client + + + + + + + ![Python](/_assets/icons/sdk_icons/Python.svg) + + + Python\ + API Client + + + + + + + ![PHP](/_assets/icons/sdk_icons/Php.svg) + + + PHP\ + API Client + + + + + + + ![Go](/_assets/icons/sdk_icons/Go.svg) + + + Go\ + API Client + + + + + + + ![C#](/_assets/icons/sdk_icons/Csharp.svg) + + + C#\ + API Client + + + + + + + ![Java](/_assets/icons/sdk_icons/Java.svg) + + + Java\ + API Client + + + + + +## Mobile + + + + + ![Swift](/_assets/icons/sdk_icons/Swift.svg) + + + Swift\ + API Client + + + + + + + ![Android](/_assets/icons/sdk_icons/Android.svg) + + + Android\ + API Client + + + + \ No newline at end of file diff --git a/sdks/api-clients/apivideo-android-client.md b/sdks/api-clients/apivideo-android-client.md index 111e6b07..38a53e40 100644 --- a/sdks/api-clients/apivideo-android-client.md +++ b/sdks/api-clients/apivideo-android-client.md @@ -1,12 +1,9 @@ --- +## THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. IF YOU NEED TO CHANGE THIS FILE, CREATE A PR IN THE SOURCE REPOSITORY. title: Android API client meta: description: The official Android API client for api.video. [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. --- - # api.video Android API client @@ -187,11 +184,11 @@ val captions = client.captions() Method | HTTP request | Description ------------- | ------------- | ------------- -[**upload**](https://github.com/apivideo/api.video-android-client/blob/main/docs/CaptionsApi.md#upload) | **POST** /videos/{videoId}/captions/{language} | Upload a caption -[**get**](https://github.com/apivideo/api.video-android-client/blob/main/docs/CaptionsApi.md#get) | **GET** /videos/{videoId}/captions/{language} | Retrieve a caption -[**update**](https://github.com/apivideo/api.video-android-client/blob/main/docs/CaptionsApi.md#update) | **PATCH** /videos/{videoId}/captions/{language} | Update a caption -[**delete**](https://github.com/apivideo/api.video-android-client/blob/main/docs/CaptionsApi.md#delete) | **DELETE** /videos/{videoId}/captions/{language} | Delete a caption -[**list**](https://github.com/apivideo/api.video-android-client/blob/main/docs/CaptionsApi.md#list) | **GET** /videos/{videoId}/captions | List video captions +[**upload**](https://github.com/apivideo/api.video-android-client/blob/main/docs/CaptionsApi.md#upload) | **POST** /videos/\{videoId}/captions/\{language} | Upload a caption +[**get**](https://github.com/apivideo/api.video-android-client/blob/main/docs/CaptionsApi.md#get) | **GET** /videos/\{videoId}/captions/\{language} | Retrieve a caption +[**update**](https://github.com/apivideo/api.video-android-client/blob/main/docs/CaptionsApi.md#update) | **PATCH** /videos/\{videoId}/captions/\{language} | Update a caption +[**delete**](https://github.com/apivideo/api.video-android-client/blob/main/docs/CaptionsApi.md#delete) | **DELETE** /videos/\{videoId}/captions/\{language} | Delete a caption +[**list**](https://github.com/apivideo/api.video-android-client/blob/main/docs/CaptionsApi.md#list) | **GET** /videos/\{videoId}/captions | List video captions ### ChaptersApi @@ -209,10 +206,10 @@ val chapters = client.chapters() Method | HTTP request | Description ------------- | ------------- | ------------- -[**upload**](https://github.com/apivideo/api.video-android-client/blob/main/docs/ChaptersApi.md#upload) | **POST** /videos/{videoId}/chapters/{language} | Upload a chapter -[**get**](https://github.com/apivideo/api.video-android-client/blob/main/docs/ChaptersApi.md#get) | **GET** /videos/{videoId}/chapters/{language} | Retrieve a chapter -[**delete**](https://github.com/apivideo/api.video-android-client/blob/main/docs/ChaptersApi.md#delete) | **DELETE** /videos/{videoId}/chapters/{language} | Delete a chapter -[**list**](https://github.com/apivideo/api.video-android-client/blob/main/docs/ChaptersApi.md#list) | **GET** /videos/{videoId}/chapters | List video chapters +[**upload**](https://github.com/apivideo/api.video-android-client/blob/main/docs/ChaptersApi.md#upload) | **POST** /videos/\{videoId}/chapters/\{language} | Upload a chapter +[**get**](https://github.com/apivideo/api.video-android-client/blob/main/docs/ChaptersApi.md#get) | **GET** /videos/\{videoId}/chapters/\{language} | Retrieve a chapter +[**delete**](https://github.com/apivideo/api.video-android-client/blob/main/docs/ChaptersApi.md#delete) | **DELETE** /videos/\{videoId}/chapters/\{language} | Delete a chapter +[**list**](https://github.com/apivideo/api.video-android-client/blob/main/docs/ChaptersApi.md#list) | **GET** /videos/\{videoId}/chapters | List video chapters ### LiveStreamsApi @@ -231,12 +228,12 @@ val liveStreams = client.liveStreams() Method | HTTP request | Description ------------- | ------------- | ------------- [**create**](https://github.com/apivideo/api.video-android-client/blob/main/docs/LiveStreamsApi.md#create) | **POST** /live-streams | Create live stream -[**get**](https://github.com/apivideo/api.video-android-client/blob/main/docs/LiveStreamsApi.md#get) | **GET** /live-streams/{liveStreamId} | Retrieve live stream -[**update**](https://github.com/apivideo/api.video-android-client/blob/main/docs/LiveStreamsApi.md#update) | **PATCH** /live-streams/{liveStreamId} | Update a live stream -[**delete**](https://github.com/apivideo/api.video-android-client/blob/main/docs/LiveStreamsApi.md#delete) | **DELETE** /live-streams/{liveStreamId} | Delete a live stream +[**get**](https://github.com/apivideo/api.video-android-client/blob/main/docs/LiveStreamsApi.md#get) | **GET** /live-streams/\{liveStreamId} | Retrieve live stream +[**update**](https://github.com/apivideo/api.video-android-client/blob/main/docs/LiveStreamsApi.md#update) | **PATCH** /live-streams/\{liveStreamId} | Update a live stream +[**delete**](https://github.com/apivideo/api.video-android-client/blob/main/docs/LiveStreamsApi.md#delete) | **DELETE** /live-streams/\{liveStreamId} | Delete a live stream [**list**](https://github.com/apivideo/api.video-android-client/blob/main/docs/LiveStreamsApi.md#list) | **GET** /live-streams | List all live streams -[**uploadThumbnail**](https://github.com/apivideo/api.video-android-client/blob/main/docs/LiveStreamsApi.md#uploadThumbnail) | **POST** /live-streams/{liveStreamId}/thumbnail | Upload a thumbnail -[**deleteThumbnail**](https://github.com/apivideo/api.video-android-client/blob/main/docs/LiveStreamsApi.md#deleteThumbnail) | **DELETE** /live-streams/{liveStreamId}/thumbnail | Delete a thumbnail +[**uploadThumbnail**](https://github.com/apivideo/api.video-android-client/blob/main/docs/LiveStreamsApi.md#uploadThumbnail) | **POST** /live-streams/\{liveStreamId}/thumbnail | Upload a thumbnail +[**deleteThumbnail**](https://github.com/apivideo/api.video-android-client/blob/main/docs/LiveStreamsApi.md#deleteThumbnail) | **DELETE** /live-streams/\{liveStreamId}/thumbnail | Delete a thumbnail ### PlayerThemesApi @@ -255,12 +252,12 @@ val playerThemes = client.playerThemes() Method | HTTP request | Description ------------- | ------------- | ------------- [**create**](https://github.com/apivideo/api.video-android-client/blob/main/docs/PlayerThemesApi.md#create) | **POST** /players | Create a player -[**get**](https://github.com/apivideo/api.video-android-client/blob/main/docs/PlayerThemesApi.md#get) | **GET** /players/{playerId} | Retrieve a player -[**update**](https://github.com/apivideo/api.video-android-client/blob/main/docs/PlayerThemesApi.md#update) | **PATCH** /players/{playerId} | Update a player -[**delete**](https://github.com/apivideo/api.video-android-client/blob/main/docs/PlayerThemesApi.md#delete) | **DELETE** /players/{playerId} | Delete a player +[**get**](https://github.com/apivideo/api.video-android-client/blob/main/docs/PlayerThemesApi.md#get) | **GET** /players/\{playerId} | Retrieve a player +[**update**](https://github.com/apivideo/api.video-android-client/blob/main/docs/PlayerThemesApi.md#update) | **PATCH** /players/\{playerId} | Update a player +[**delete**](https://github.com/apivideo/api.video-android-client/blob/main/docs/PlayerThemesApi.md#delete) | **DELETE** /players/\{playerId} | Delete a player [**list**](https://github.com/apivideo/api.video-android-client/blob/main/docs/PlayerThemesApi.md#list) | **GET** /players | List all player themes -[**uploadLogo**](https://github.com/apivideo/api.video-android-client/blob/main/docs/PlayerThemesApi.md#uploadLogo) | **POST** /players/{playerId}/logo | Upload a logo -[**deleteLogo**](https://github.com/apivideo/api.video-android-client/blob/main/docs/PlayerThemesApi.md#deleteLogo) | **DELETE** /players/{playerId}/logo | Delete logo +[**uploadLogo**](https://github.com/apivideo/api.video-android-client/blob/main/docs/PlayerThemesApi.md#uploadLogo) | **POST** /players/\{playerId}/logo | Upload a logo +[**deleteLogo**](https://github.com/apivideo/api.video-android-client/blob/main/docs/PlayerThemesApi.md#deleteLogo) | **DELETE** /players/\{playerId}/logo | Delete logo ### UploadTokensApi @@ -279,8 +276,8 @@ val uploadTokens = client.uploadTokens() Method | HTTP request | Description ------------- | ------------- | ------------- [**createToken**](https://github.com/apivideo/api.video-android-client/blob/main/docs/UploadTokensApi.md#createToken) | **POST** /upload-tokens | Generate an upload token -[**getToken**](https://github.com/apivideo/api.video-android-client/blob/main/docs/UploadTokensApi.md#getToken) | **GET** /upload-tokens/{uploadToken} | Retrieve upload token -[**deleteToken**](https://github.com/apivideo/api.video-android-client/blob/main/docs/UploadTokensApi.md#deleteToken) | **DELETE** /upload-tokens/{uploadToken} | Delete an upload token +[**getToken**](https://github.com/apivideo/api.video-android-client/blob/main/docs/UploadTokensApi.md#getToken) | **GET** /upload-tokens/\{uploadToken} | Retrieve upload token +[**deleteToken**](https://github.com/apivideo/api.video-android-client/blob/main/docs/UploadTokensApi.md#deleteToken) | **DELETE** /upload-tokens/\{uploadToken} | Delete an upload token [**list**](https://github.com/apivideo/api.video-android-client/blob/main/docs/UploadTokensApi.md#list) | **GET** /upload-tokens | List all active upload tokens @@ -300,15 +297,15 @@ val videos = client.videos() Method | HTTP request | Description ------------- | ------------- | ------------- [**create**](https://github.com/apivideo/api.video-android-client/blob/main/docs/VideosApi.md#create) | **POST** /videos | Create a video object -[**upload**](https://github.com/apivideo/api.video-android-client/blob/main/docs/VideosApi.md#upload) | **POST** /videos/{videoId}/source | Upload a video +[**upload**](https://github.com/apivideo/api.video-android-client/blob/main/docs/VideosApi.md#upload) | **POST** /videos/\{videoId}/source | Upload a video [**uploadWithUploadToken**](https://github.com/apivideo/api.video-android-client/blob/main/docs/VideosApi.md#uploadWithUploadToken) | **POST** /upload | Upload with an delegated upload token -[**get**](https://github.com/apivideo/api.video-android-client/blob/main/docs/VideosApi.md#get) | **GET** /videos/{videoId} | Retrieve a video object -[**update**](https://github.com/apivideo/api.video-android-client/blob/main/docs/VideosApi.md#update) | **PATCH** /videos/{videoId} | Update a video object -[**delete**](https://github.com/apivideo/api.video-android-client/blob/main/docs/VideosApi.md#delete) | **DELETE** /videos/{videoId} | Delete a video object +[**get**](https://github.com/apivideo/api.video-android-client/blob/main/docs/VideosApi.md#get) | **GET** /videos/\{videoId} | Retrieve a video object +[**update**](https://github.com/apivideo/api.video-android-client/blob/main/docs/VideosApi.md#update) | **PATCH** /videos/\{videoId} | Update a video object +[**delete**](https://github.com/apivideo/api.video-android-client/blob/main/docs/VideosApi.md#delete) | **DELETE** /videos/\{videoId} | Delete a video object [**list**](https://github.com/apivideo/api.video-android-client/blob/main/docs/VideosApi.md#list) | **GET** /videos | List all video objects -[**uploadThumbnail**](https://github.com/apivideo/api.video-android-client/blob/main/docs/VideosApi.md#uploadThumbnail) | **POST** /videos/{videoId}/thumbnail | Upload a thumbnail -[**pickThumbnail**](https://github.com/apivideo/api.video-android-client/blob/main/docs/VideosApi.md#pickThumbnail) | **PATCH** /videos/{videoId}/thumbnail | Set a thumbnail -[**getStatus**](https://github.com/apivideo/api.video-android-client/blob/main/docs/VideosApi.md#getStatus) | **GET** /videos/{videoId}/status | Retrieve video status and details +[**uploadThumbnail**](https://github.com/apivideo/api.video-android-client/blob/main/docs/VideosApi.md#uploadThumbnail) | **POST** /videos/\{videoId}/thumbnail | Upload a thumbnail +[**pickThumbnail**](https://github.com/apivideo/api.video-android-client/blob/main/docs/VideosApi.md#pickThumbnail) | **PATCH** /videos/\{videoId}/thumbnail | Set a thumbnail +[**getStatus**](https://github.com/apivideo/api.video-android-client/blob/main/docs/VideosApi.md#getStatus) | **GET** /videos/\{videoId}/status | Retrieve video status and details ### WatermarksApi @@ -327,7 +324,7 @@ val watermarks = client.watermarks() Method | HTTP request | Description ------------- | ------------- | ------------- [**upload**](https://github.com/apivideo/api.video-android-client/blob/main/docs/WatermarksApi.md#upload) | **POST** /watermarks | Upload a watermark -[**delete**](https://github.com/apivideo/api.video-android-client/blob/main/docs/WatermarksApi.md#delete) | **DELETE** /watermarks/{watermarkId} | Delete a watermark +[**delete**](https://github.com/apivideo/api.video-android-client/blob/main/docs/WatermarksApi.md#delete) | **DELETE** /watermarks/\{watermarkId} | Delete a watermark [**list**](https://github.com/apivideo/api.video-android-client/blob/main/docs/WatermarksApi.md#list) | **GET** /watermarks | List all watermarks @@ -347,8 +344,8 @@ val webhooks = client.webhooks() Method | HTTP request | Description ------------- | ------------- | ------------- [**create**](https://github.com/apivideo/api.video-android-client/blob/main/docs/WebhooksApi.md#create) | **POST** /webhooks | Create Webhook -[**get**](https://github.com/apivideo/api.video-android-client/blob/main/docs/WebhooksApi.md#get) | **GET** /webhooks/{webhookId} | Retrieve Webhook details -[**delete**](https://github.com/apivideo/api.video-android-client/blob/main/docs/WebhooksApi.md#delete) | **DELETE** /webhooks/{webhookId} | Delete a Webhook +[**get**](https://github.com/apivideo/api.video-android-client/blob/main/docs/WebhooksApi.md#get) | **GET** /webhooks/\{webhookId} | Retrieve Webhook details +[**delete**](https://github.com/apivideo/api.video-android-client/blob/main/docs/WebhooksApi.md#delete) | **DELETE** /webhooks/\{webhookId} | Delete a Webhook [**list**](https://github.com/apivideo/api.video-android-client/blob/main/docs/WebhooksApi.md#list) | **GET** /webhooks | List all webhooks diff --git a/sdks/api-clients/apivideo-android-uploader-client.md b/sdks/api-clients/apivideo-android-uploader-client.md index abbd56d6..324324a2 100644 --- a/sdks/api-clients/apivideo-android-uploader-client.md +++ b/sdks/api-clients/apivideo-android-uploader-client.md @@ -120,7 +120,7 @@ val videosApi = VideosApi("YOUR_API_KEY", Environment.PRODUCTION) Method | HTTP request | Description ------------- | ------------- | ------------- -[**upload**](https://github.com/apivideo/api.video-android-uploader/blob/main/docs/VideosApi.md#upload) | **POST** /videos/{videoId}/source | Upload a video +[**upload**](https://github.com/apivideo/api.video-android-uploader/blob/main/docs/VideosApi.md#upload) | **POST** /videos/\{videoId}/source | Upload a video [**uploadWithUploadToken**](https://github.com/apivideo/api.video-android-uploader/blob/main/docs/VideosApi.md#uploadWithUploadToken) | **POST** /upload | Upload with an delegated upload token diff --git a/sdks/api-clients/apivideo-csharp-client.md b/sdks/api-clients/apivideo-csharp-client.md index fbf2b2a0..9e5dda93 100644 --- a/sdks/api-clients/apivideo-csharp-client.md +++ b/sdks/api-clients/apivideo-csharp-client.md @@ -1,12 +1,9 @@ --- +## THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. IF YOU NEED TO CHANGE THIS FILE, CREATE A PR IN THE SOURCE REPOSITORY. title: C# API client meta: description: The official C# API client for api.video. [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. --- - # api.video C# API client @@ -152,11 +149,11 @@ CaptionsApi captions = client.Captions() 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 +[**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 @@ -172,10 +169,10 @@ ChaptersApi chapters = client.Chapters() 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 +[**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 @@ -192,12 +189,12 @@ LiveStreamsApi liveStreams = client.LiveStreams() 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 +[**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 +[**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 #### PlayerThemesApi @@ -214,12 +211,12 @@ PlayerThemesApi playerThemes = client.PlayerThemes() 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 +[**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 +[**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 #### UploadTokensApi @@ -236,8 +233,8 @@ UploadTokensApi uploadTokens = client.UploadTokens() 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 +[**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 @@ -255,15 +252,15 @@ VideosApi videos = client.Videos() 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 +[**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 +[**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 -[**getStatus**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/VideosApi.md#getStatus) | **GET** /videos/{videoId}/status | Retrieve video status and details +[**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 +[**getStatus**](https://github.com/apivideo/api.video-csharp-client/blob/main/docs/VideosApi.md#getStatus) | **GET** /videos/\{videoId}/status | Retrieve video status and details #### WatermarksApi @@ -280,7 +277,7 @@ WatermarksApi watermarks = client.Watermarks() 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 +[**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 @@ -298,8 +295,8 @@ WebhooksApi webhooks = client.Webhooks() 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 +[**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 diff --git a/sdks/api-clients/apivideo-go-client.md b/sdks/api-clients/apivideo-go-client.md index 98d5e8e3..f7ce9f06 100644 --- a/sdks/api-clients/apivideo-go-client.md +++ b/sdks/api-clients/apivideo-go-client.md @@ -1,12 +1,9 @@ --- +## THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. IF YOU NEED TO CHANGE THIS FILE, CREATE A PR IN THE SOURCE REPOSITORY. title: Go API client meta: description: The official Go API client for api.video. [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. --- - # api.video Go API client @@ -132,11 +129,11 @@ captionsApi := client.Captions Method | HTTP request | Description ------------- | ------------- | ------------- -[**Upload**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Captions.md#Upload) | **Post** /videos/{videoId}/captions/{language} | Upload a caption -[**Get**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Captions.md#Get) | **Get** /videos/{videoId}/captions/{language} | Retrieve a caption -[**Update**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Captions.md#Update) | **Patch** /videos/{videoId}/captions/{language} | Update a caption -[**Delete**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Captions.md#Delete) | **Delete** /videos/{videoId}/captions/{language} | Delete a caption -[**List**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Captions.md#List) | **Get** /videos/{videoId}/captions | List video captions +[**Upload**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Captions.md#Upload) | **Post** /videos/\{videoId}/captions/\{language} | Upload a caption +[**Get**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Captions.md#Get) | **Get** /videos/\{videoId}/captions/\{language} | Retrieve a caption +[**Update**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Captions.md#Update) | **Patch** /videos/\{videoId}/captions/\{language} | Update a caption +[**Delete**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Captions.md#Delete) | **Delete** /videos/\{videoId}/captions/\{language} | Delete a caption +[**List**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Captions.md#List) | **Get** /videos/\{videoId}/captions | List video captions #### Chapters @@ -152,10 +149,10 @@ chaptersApi := client.Chapters Method | HTTP request | Description ------------- | ------------- | ------------- -[**Upload**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Chapters.md#Upload) | **Post** /videos/{videoId}/chapters/{language} | Upload a chapter -[**Get**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Chapters.md#Get) | **Get** /videos/{videoId}/chapters/{language} | Retrieve a chapter -[**Delete**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Chapters.md#Delete) | **Delete** /videos/{videoId}/chapters/{language} | Delete a chapter -[**List**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Chapters.md#List) | **Get** /videos/{videoId}/chapters | List video chapters +[**Upload**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Chapters.md#Upload) | **Post** /videos/\{videoId}/chapters/\{language} | Upload a chapter +[**Get**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Chapters.md#Get) | **Get** /videos/\{videoId}/chapters/\{language} | Retrieve a chapter +[**Delete**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Chapters.md#Delete) | **Delete** /videos/\{videoId}/chapters/\{language} | Delete a chapter +[**List**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Chapters.md#List) | **Get** /videos/\{videoId}/chapters | List video chapters #### LiveStreams @@ -172,12 +169,12 @@ liveStreamsApi := client.LiveStreams Method | HTTP request | Description ------------- | ------------- | ------------- [**Create**](https://github.com/apivideo/api.video-go-client/blob/main/docs/LiveStreams.md#Create) | **Post** /live-streams | Create live stream -[**Get**](https://github.com/apivideo/api.video-go-client/blob/main/docs/LiveStreams.md#Get) | **Get** /live-streams/{liveStreamId} | Retrieve live stream -[**Update**](https://github.com/apivideo/api.video-go-client/blob/main/docs/LiveStreams.md#Update) | **Patch** /live-streams/{liveStreamId} | Update a live stream -[**Delete**](https://github.com/apivideo/api.video-go-client/blob/main/docs/LiveStreams.md#Delete) | **Delete** /live-streams/{liveStreamId} | Delete a live stream +[**Get**](https://github.com/apivideo/api.video-go-client/blob/main/docs/LiveStreams.md#Get) | **Get** /live-streams/\{liveStreamId} | Retrieve live stream +[**Update**](https://github.com/apivideo/api.video-go-client/blob/main/docs/LiveStreams.md#Update) | **Patch** /live-streams/\{liveStreamId} | Update a live stream +[**Delete**](https://github.com/apivideo/api.video-go-client/blob/main/docs/LiveStreams.md#Delete) | **Delete** /live-streams/\{liveStreamId} | Delete a live stream [**List**](https://github.com/apivideo/api.video-go-client/blob/main/docs/LiveStreams.md#List) | **Get** /live-streams | List all live streams -[**UploadThumbnail**](https://github.com/apivideo/api.video-go-client/blob/main/docs/LiveStreams.md#UploadThumbnail) | **Post** /live-streams/{liveStreamId}/thumbnail | Upload a thumbnail -[**DeleteThumbnail**](https://github.com/apivideo/api.video-go-client/blob/main/docs/LiveStreams.md#DeleteThumbnail) | **Delete** /live-streams/{liveStreamId}/thumbnail | Delete a thumbnail +[**UploadThumbnail**](https://github.com/apivideo/api.video-go-client/blob/main/docs/LiveStreams.md#UploadThumbnail) | **Post** /live-streams/\{liveStreamId}/thumbnail | Upload a thumbnail +[**DeleteThumbnail**](https://github.com/apivideo/api.video-go-client/blob/main/docs/LiveStreams.md#DeleteThumbnail) | **Delete** /live-streams/\{liveStreamId}/thumbnail | Delete a thumbnail #### PlayerThemes @@ -194,12 +191,12 @@ playerThemesApi := client.PlayerThemes Method | HTTP request | Description ------------- | ------------- | ------------- [**Create**](https://github.com/apivideo/api.video-go-client/blob/main/docs/PlayerThemes.md#Create) | **Post** /players | Create a player -[**Get**](https://github.com/apivideo/api.video-go-client/blob/main/docs/PlayerThemes.md#Get) | **Get** /players/{playerId} | Retrieve a player -[**Update**](https://github.com/apivideo/api.video-go-client/blob/main/docs/PlayerThemes.md#Update) | **Patch** /players/{playerId} | Update a player -[**Delete**](https://github.com/apivideo/api.video-go-client/blob/main/docs/PlayerThemes.md#Delete) | **Delete** /players/{playerId} | Delete a player +[**Get**](https://github.com/apivideo/api.video-go-client/blob/main/docs/PlayerThemes.md#Get) | **Get** /players/\{playerId} | Retrieve a player +[**Update**](https://github.com/apivideo/api.video-go-client/blob/main/docs/PlayerThemes.md#Update) | **Patch** /players/\{playerId} | Update a player +[**Delete**](https://github.com/apivideo/api.video-go-client/blob/main/docs/PlayerThemes.md#Delete) | **Delete** /players/\{playerId} | Delete a player [**List**](https://github.com/apivideo/api.video-go-client/blob/main/docs/PlayerThemes.md#List) | **Get** /players | List all player themes -[**UploadLogo**](https://github.com/apivideo/api.video-go-client/blob/main/docs/PlayerThemes.md#UploadLogo) | **Post** /players/{playerId}/logo | Upload a logo -[**DeleteLogo**](https://github.com/apivideo/api.video-go-client/blob/main/docs/PlayerThemes.md#DeleteLogo) | **Delete** /players/{playerId}/logo | Delete logo +[**UploadLogo**](https://github.com/apivideo/api.video-go-client/blob/main/docs/PlayerThemes.md#UploadLogo) | **Post** /players/\{playerId}/logo | Upload a logo +[**DeleteLogo**](https://github.com/apivideo/api.video-go-client/blob/main/docs/PlayerThemes.md#DeleteLogo) | **Delete** /players/\{playerId}/logo | Delete logo #### UploadTokens @@ -216,8 +213,8 @@ uploadTokensApi := client.UploadTokens Method | HTTP request | Description ------------- | ------------- | ------------- [**CreateToken**](https://github.com/apivideo/api.video-go-client/blob/main/docs/UploadTokens.md#CreateToken) | **Post** /upload-tokens | Generate an upload token -[**GetToken**](https://github.com/apivideo/api.video-go-client/blob/main/docs/UploadTokens.md#GetToken) | **Get** /upload-tokens/{uploadToken} | Retrieve upload token -[**DeleteToken**](https://github.com/apivideo/api.video-go-client/blob/main/docs/UploadTokens.md#DeleteToken) | **Delete** /upload-tokens/{uploadToken} | Delete an upload token +[**GetToken**](https://github.com/apivideo/api.video-go-client/blob/main/docs/UploadTokens.md#GetToken) | **Get** /upload-tokens/\{uploadToken} | Retrieve upload token +[**DeleteToken**](https://github.com/apivideo/api.video-go-client/blob/main/docs/UploadTokens.md#DeleteToken) | **Delete** /upload-tokens/\{uploadToken} | Delete an upload token [**List**](https://github.com/apivideo/api.video-go-client/blob/main/docs/UploadTokens.md#List) | **Get** /upload-tokens | List all active upload tokens @@ -235,15 +232,15 @@ videosApi := client.Videos Method | HTTP request | Description ------------- | ------------- | ------------- [**Create**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Videos.md#Create) | **Post** /videos | Create a video object -[**Upload**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Videos.md#Upload) | **Post** /videos/{videoId}/source | Upload a video +[**Upload**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Videos.md#Upload) | **Post** /videos/\{videoId}/source | Upload a video [**UploadWithUploadToken**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Videos.md#UploadWithUploadToken) | **Post** /upload | Upload with an delegated upload token -[**Get**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Videos.md#Get) | **Get** /videos/{videoId} | Retrieve a video object -[**Update**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Videos.md#Update) | **Patch** /videos/{videoId} | Update a video object -[**Delete**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Videos.md#Delete) | **Delete** /videos/{videoId} | Delete a video object +[**Get**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Videos.md#Get) | **Get** /videos/\{videoId} | Retrieve a video object +[**Update**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Videos.md#Update) | **Patch** /videos/\{videoId} | Update a video object +[**Delete**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Videos.md#Delete) | **Delete** /videos/\{videoId} | Delete a video object [**List**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Videos.md#List) | **Get** /videos | List all video objects -[**UploadThumbnail**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Videos.md#UploadThumbnail) | **Post** /videos/{videoId}/thumbnail | Upload a thumbnail -[**PickThumbnail**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Videos.md#PickThumbnail) | **Patch** /videos/{videoId}/thumbnail | Set a thumbnail -[**GetStatus**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Videos.md#GetStatus) | **Get** /videos/{videoId}/status | Retrieve video status and details +[**UploadThumbnail**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Videos.md#UploadThumbnail) | **Post** /videos/\{videoId}/thumbnail | Upload a thumbnail +[**PickThumbnail**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Videos.md#PickThumbnail) | **Patch** /videos/\{videoId}/thumbnail | Set a thumbnail +[**GetStatus**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Videos.md#GetStatus) | **Get** /videos/\{videoId}/status | Retrieve video status and details #### Watermarks @@ -260,7 +257,7 @@ watermarksApi := client.Watermarks Method | HTTP request | Description ------------- | ------------- | ------------- [**Upload**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Watermarks.md#Upload) | **Post** /watermarks | Upload a watermark -[**Delete**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Watermarks.md#Delete) | **Delete** /watermarks/{watermarkId} | Delete a watermark +[**Delete**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Watermarks.md#Delete) | **Delete** /watermarks/\{watermarkId} | Delete a watermark [**List**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Watermarks.md#List) | **Get** /watermarks | List all watermarks @@ -278,8 +275,8 @@ webhooksApi := client.Webhooks Method | HTTP request | Description ------------- | ------------- | ------------- [**Create**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Webhooks.md#Create) | **Post** /webhooks | Create Webhook -[**Get**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Webhooks.md#Get) | **Get** /webhooks/{webhookId} | Retrieve Webhook details -[**Delete**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Webhooks.md#Delete) | **Delete** /webhooks/{webhookId} | Delete a Webhook +[**Get**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Webhooks.md#Get) | **Get** /webhooks/\{webhookId} | Retrieve Webhook details +[**Delete**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Webhooks.md#Delete) | **Delete** /webhooks/\{webhookId} | Delete a Webhook [**List**](https://github.com/apivideo/api.video-go-client/blob/main/docs/Webhooks.md#List) | **Get** /webhooks | List all webhooks diff --git a/sdks/api-clients/apivideo-java-client.md b/sdks/api-clients/apivideo-java-client.md index cb07694d..adafad08 100644 --- a/sdks/api-clients/apivideo-java-client.md +++ b/sdks/api-clients/apivideo-java-client.md @@ -1,12 +1,9 @@ --- +## THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. IF YOU NEED TO CHANGE THIS FILE, CREATE A PR IN THE SOURCE REPOSITORY. title: Java API client meta: description: The official Java API client for api.video. [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. --- - # api.video Java API client @@ -136,11 +133,11 @@ CaptionsApi captions = client.captions() Method | HTTP request | Description ------------- | ------------- | ------------- -[**upload**](https://github.com/apivideo/api.video-java-client/blob/main/docs/CaptionsApi.md#upload) | **POST** /videos/{videoId}/captions/{language} | Upload a caption -[**get**](https://github.com/apivideo/api.video-java-client/blob/main/docs/CaptionsApi.md#get) | **GET** /videos/{videoId}/captions/{language} | Retrieve a caption -[**update**](https://github.com/apivideo/api.video-java-client/blob/main/docs/CaptionsApi.md#update) | **PATCH** /videos/{videoId}/captions/{language} | Update a caption -[**delete**](https://github.com/apivideo/api.video-java-client/blob/main/docs/CaptionsApi.md#delete) | **DELETE** /videos/{videoId}/captions/{language} | Delete a caption -[**list**](https://github.com/apivideo/api.video-java-client/blob/main/docs/CaptionsApi.md#list) | **GET** /videos/{videoId}/captions | List video captions +[**upload**](https://github.com/apivideo/api.video-java-client/blob/main/docs/CaptionsApi.md#upload) | **POST** /videos/\{videoId}/captions/\{language} | Upload a caption +[**get**](https://github.com/apivideo/api.video-java-client/blob/main/docs/CaptionsApi.md#get) | **GET** /videos/\{videoId}/captions/\{language} | Retrieve a caption +[**update**](https://github.com/apivideo/api.video-java-client/blob/main/docs/CaptionsApi.md#update) | **PATCH** /videos/\{videoId}/captions/\{language} | Update a caption +[**delete**](https://github.com/apivideo/api.video-java-client/blob/main/docs/CaptionsApi.md#delete) | **DELETE** /videos/\{videoId}/captions/\{language} | Delete a caption +[**list**](https://github.com/apivideo/api.video-java-client/blob/main/docs/CaptionsApi.md#list) | **GET** /videos/\{videoId}/captions | List video captions ### ChaptersApi @@ -158,10 +155,10 @@ ChaptersApi chapters = client.chapters() Method | HTTP request | Description ------------- | ------------- | ------------- -[**upload**](https://github.com/apivideo/api.video-java-client/blob/main/docs/ChaptersApi.md#upload) | **POST** /videos/{videoId}/chapters/{language} | Upload a chapter -[**get**](https://github.com/apivideo/api.video-java-client/blob/main/docs/ChaptersApi.md#get) | **GET** /videos/{videoId}/chapters/{language} | Retrieve a chapter -[**delete**](https://github.com/apivideo/api.video-java-client/blob/main/docs/ChaptersApi.md#delete) | **DELETE** /videos/{videoId}/chapters/{language} | Delete a chapter -[**list**](https://github.com/apivideo/api.video-java-client/blob/main/docs/ChaptersApi.md#list) | **GET** /videos/{videoId}/chapters | List video chapters +[**upload**](https://github.com/apivideo/api.video-java-client/blob/main/docs/ChaptersApi.md#upload) | **POST** /videos/\{videoId}/chapters/\{language} | Upload a chapter +[**get**](https://github.com/apivideo/api.video-java-client/blob/main/docs/ChaptersApi.md#get) | **GET** /videos/\{videoId}/chapters/\{language} | Retrieve a chapter +[**delete**](https://github.com/apivideo/api.video-java-client/blob/main/docs/ChaptersApi.md#delete) | **DELETE** /videos/\{videoId}/chapters/\{language} | Delete a chapter +[**list**](https://github.com/apivideo/api.video-java-client/blob/main/docs/ChaptersApi.md#list) | **GET** /videos/\{videoId}/chapters | List video chapters ### LiveStreamsApi @@ -180,12 +177,12 @@ LiveStreamsApi liveStreams = client.liveStreams() Method | HTTP request | Description ------------- | ------------- | ------------- [**create**](https://github.com/apivideo/api.video-java-client/blob/main/docs/LiveStreamsApi.md#create) | **POST** /live-streams | Create live stream -[**get**](https://github.com/apivideo/api.video-java-client/blob/main/docs/LiveStreamsApi.md#get) | **GET** /live-streams/{liveStreamId} | Retrieve live stream -[**update**](https://github.com/apivideo/api.video-java-client/blob/main/docs/LiveStreamsApi.md#update) | **PATCH** /live-streams/{liveStreamId} | Update a live stream -[**delete**](https://github.com/apivideo/api.video-java-client/blob/main/docs/LiveStreamsApi.md#delete) | **DELETE** /live-streams/{liveStreamId} | Delete a live stream +[**get**](https://github.com/apivideo/api.video-java-client/blob/main/docs/LiveStreamsApi.md#get) | **GET** /live-streams/\{liveStreamId} | Retrieve live stream +[**update**](https://github.com/apivideo/api.video-java-client/blob/main/docs/LiveStreamsApi.md#update) | **PATCH** /live-streams/\{liveStreamId} | Update a live stream +[**delete**](https://github.com/apivideo/api.video-java-client/blob/main/docs/LiveStreamsApi.md#delete) | **DELETE** /live-streams/\{liveStreamId} | Delete a live stream [**list**](https://github.com/apivideo/api.video-java-client/blob/main/docs/LiveStreamsApi.md#list) | **GET** /live-streams | List all live streams -[**uploadThumbnail**](https://github.com/apivideo/api.video-java-client/blob/main/docs/LiveStreamsApi.md#uploadThumbnail) | **POST** /live-streams/{liveStreamId}/thumbnail | Upload a thumbnail -[**deleteThumbnail**](https://github.com/apivideo/api.video-java-client/blob/main/docs/LiveStreamsApi.md#deleteThumbnail) | **DELETE** /live-streams/{liveStreamId}/thumbnail | Delete a thumbnail +[**uploadThumbnail**](https://github.com/apivideo/api.video-java-client/blob/main/docs/LiveStreamsApi.md#uploadThumbnail) | **POST** /live-streams/\{liveStreamId}/thumbnail | Upload a thumbnail +[**deleteThumbnail**](https://github.com/apivideo/api.video-java-client/blob/main/docs/LiveStreamsApi.md#deleteThumbnail) | **DELETE** /live-streams/\{liveStreamId}/thumbnail | Delete a thumbnail ### PlayerThemesApi @@ -204,12 +201,12 @@ PlayerThemesApi playerThemes = client.playerThemes() Method | HTTP request | Description ------------- | ------------- | ------------- [**create**](https://github.com/apivideo/api.video-java-client/blob/main/docs/PlayerThemesApi.md#create) | **POST** /players | Create a player -[**get**](https://github.com/apivideo/api.video-java-client/blob/main/docs/PlayerThemesApi.md#get) | **GET** /players/{playerId} | Retrieve a player -[**update**](https://github.com/apivideo/api.video-java-client/blob/main/docs/PlayerThemesApi.md#update) | **PATCH** /players/{playerId} | Update a player -[**delete**](https://github.com/apivideo/api.video-java-client/blob/main/docs/PlayerThemesApi.md#delete) | **DELETE** /players/{playerId} | Delete a player +[**get**](https://github.com/apivideo/api.video-java-client/blob/main/docs/PlayerThemesApi.md#get) | **GET** /players/\{playerId} | Retrieve a player +[**update**](https://github.com/apivideo/api.video-java-client/blob/main/docs/PlayerThemesApi.md#update) | **PATCH** /players/\{playerId} | Update a player +[**delete**](https://github.com/apivideo/api.video-java-client/blob/main/docs/PlayerThemesApi.md#delete) | **DELETE** /players/\{playerId} | Delete a player [**list**](https://github.com/apivideo/api.video-java-client/blob/main/docs/PlayerThemesApi.md#list) | **GET** /players | List all player themes -[**uploadLogo**](https://github.com/apivideo/api.video-java-client/blob/main/docs/PlayerThemesApi.md#uploadLogo) | **POST** /players/{playerId}/logo | Upload a logo -[**deleteLogo**](https://github.com/apivideo/api.video-java-client/blob/main/docs/PlayerThemesApi.md#deleteLogo) | **DELETE** /players/{playerId}/logo | Delete logo +[**uploadLogo**](https://github.com/apivideo/api.video-java-client/blob/main/docs/PlayerThemesApi.md#uploadLogo) | **POST** /players/\{playerId}/logo | Upload a logo +[**deleteLogo**](https://github.com/apivideo/api.video-java-client/blob/main/docs/PlayerThemesApi.md#deleteLogo) | **DELETE** /players/\{playerId}/logo | Delete logo ### UploadTokensApi @@ -228,8 +225,8 @@ UploadTokensApi uploadTokens = client.uploadTokens() Method | HTTP request | Description ------------- | ------------- | ------------- [**createToken**](https://github.com/apivideo/api.video-java-client/blob/main/docs/UploadTokensApi.md#createToken) | **POST** /upload-tokens | Generate an upload token -[**getToken**](https://github.com/apivideo/api.video-java-client/blob/main/docs/UploadTokensApi.md#getToken) | **GET** /upload-tokens/{uploadToken} | Retrieve upload token -[**deleteToken**](https://github.com/apivideo/api.video-java-client/blob/main/docs/UploadTokensApi.md#deleteToken) | **DELETE** /upload-tokens/{uploadToken} | Delete an upload token +[**getToken**](https://github.com/apivideo/api.video-java-client/blob/main/docs/UploadTokensApi.md#getToken) | **GET** /upload-tokens/\{uploadToken} | Retrieve upload token +[**deleteToken**](https://github.com/apivideo/api.video-java-client/blob/main/docs/UploadTokensApi.md#deleteToken) | **DELETE** /upload-tokens/\{uploadToken} | Delete an upload token [**list**](https://github.com/apivideo/api.video-java-client/blob/main/docs/UploadTokensApi.md#list) | **GET** /upload-tokens | List all active upload tokens @@ -249,15 +246,15 @@ VideosApi videos = client.videos() Method | HTTP request | Description ------------- | ------------- | ------------- [**create**](https://github.com/apivideo/api.video-java-client/blob/main/docs/VideosApi.md#create) | **POST** /videos | Create a video object -[**upload**](https://github.com/apivideo/api.video-java-client/blob/main/docs/VideosApi.md#upload) | **POST** /videos/{videoId}/source | Upload a video +[**upload**](https://github.com/apivideo/api.video-java-client/blob/main/docs/VideosApi.md#upload) | **POST** /videos/\{videoId}/source | Upload a video [**uploadWithUploadToken**](https://github.com/apivideo/api.video-java-client/blob/main/docs/VideosApi.md#uploadWithUploadToken) | **POST** /upload | Upload with an delegated upload token -[**get**](https://github.com/apivideo/api.video-java-client/blob/main/docs/VideosApi.md#get) | **GET** /videos/{videoId} | Retrieve a video object -[**update**](https://github.com/apivideo/api.video-java-client/blob/main/docs/VideosApi.md#update) | **PATCH** /videos/{videoId} | Update a video object -[**delete**](https://github.com/apivideo/api.video-java-client/blob/main/docs/VideosApi.md#delete) | **DELETE** /videos/{videoId} | Delete a video object +[**get**](https://github.com/apivideo/api.video-java-client/blob/main/docs/VideosApi.md#get) | **GET** /videos/\{videoId} | Retrieve a video object +[**update**](https://github.com/apivideo/api.video-java-client/blob/main/docs/VideosApi.md#update) | **PATCH** /videos/\{videoId} | Update a video object +[**delete**](https://github.com/apivideo/api.video-java-client/blob/main/docs/VideosApi.md#delete) | **DELETE** /videos/\{videoId} | Delete a video object [**list**](https://github.com/apivideo/api.video-java-client/blob/main/docs/VideosApi.md#list) | **GET** /videos | List all video objects -[**uploadThumbnail**](https://github.com/apivideo/api.video-java-client/blob/main/docs/VideosApi.md#uploadThumbnail) | **POST** /videos/{videoId}/thumbnail | Upload a thumbnail -[**pickThumbnail**](https://github.com/apivideo/api.video-java-client/blob/main/docs/VideosApi.md#pickThumbnail) | **PATCH** /videos/{videoId}/thumbnail | Set a thumbnail -[**getStatus**](https://github.com/apivideo/api.video-java-client/blob/main/docs/VideosApi.md#getStatus) | **GET** /videos/{videoId}/status | Retrieve video status and details +[**uploadThumbnail**](https://github.com/apivideo/api.video-java-client/blob/main/docs/VideosApi.md#uploadThumbnail) | **POST** /videos/\{videoId}/thumbnail | Upload a thumbnail +[**pickThumbnail**](https://github.com/apivideo/api.video-java-client/blob/main/docs/VideosApi.md#pickThumbnail) | **PATCH** /videos/\{videoId}/thumbnail | Set a thumbnail +[**getStatus**](https://github.com/apivideo/api.video-java-client/blob/main/docs/VideosApi.md#getStatus) | **GET** /videos/\{videoId}/status | Retrieve video status and details ### WatermarksApi @@ -276,7 +273,7 @@ WatermarksApi watermarks = client.watermarks() Method | HTTP request | Description ------------- | ------------- | ------------- [**upload**](https://github.com/apivideo/api.video-java-client/blob/main/docs/WatermarksApi.md#upload) | **POST** /watermarks | Upload a watermark -[**delete**](https://github.com/apivideo/api.video-java-client/blob/main/docs/WatermarksApi.md#delete) | **DELETE** /watermarks/{watermarkId} | Delete a watermark +[**delete**](https://github.com/apivideo/api.video-java-client/blob/main/docs/WatermarksApi.md#delete) | **DELETE** /watermarks/\{watermarkId} | Delete a watermark [**list**](https://github.com/apivideo/api.video-java-client/blob/main/docs/WatermarksApi.md#list) | **GET** /watermarks | List all watermarks @@ -296,8 +293,8 @@ WebhooksApi webhooks = client.webhooks() Method | HTTP request | Description ------------- | ------------- | ------------- [**create**](https://github.com/apivideo/api.video-java-client/blob/main/docs/WebhooksApi.md#create) | **POST** /webhooks | Create Webhook -[**get**](https://github.com/apivideo/api.video-java-client/blob/main/docs/WebhooksApi.md#get) | **GET** /webhooks/{webhookId} | Retrieve Webhook details -[**delete**](https://github.com/apivideo/api.video-java-client/blob/main/docs/WebhooksApi.md#delete) | **DELETE** /webhooks/{webhookId} | Delete a Webhook +[**get**](https://github.com/apivideo/api.video-java-client/blob/main/docs/WebhooksApi.md#get) | **GET** /webhooks/\{webhookId} | Retrieve Webhook details +[**delete**](https://github.com/apivideo/api.video-java-client/blob/main/docs/WebhooksApi.md#delete) | **DELETE** /webhooks/\{webhookId} | Delete a Webhook [**list**](https://github.com/apivideo/api.video-java-client/blob/main/docs/WebhooksApi.md#list) | **GET** /webhooks | List all webhooks diff --git a/sdks/api-clients/apivideo-nodejs-client.md b/sdks/api-clients/apivideo-nodejs-client.md index 7b4273d1..0602fb4b 100644 --- a/sdks/api-clients/apivideo-nodejs-client.md +++ b/sdks/api-clients/apivideo-nodejs-client.md @@ -1,12 +1,9 @@ --- +## THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. IF YOU NEED TO CHANGE THIS FILE, CREATE A PR IN THE SOURCE REPOSITORY. title: Node.js API client meta: description: The official Node.js API client for api.video. [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. --- - # api.video Node.js API client @@ -83,21 +80,21 @@ Method | Description | HTTP request Method | Description | HTTP request ------------- | ------------- | ------------- -[**upload()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/CaptionsApi.md#upload) | Upload a caption | **POST** /videos/{videoId}/captions/{language} -[**get()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/CaptionsApi.md#get) | Retrieve a caption | **GET** /videos/{videoId}/captions/{language} -[**update()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/CaptionsApi.md#update) | Update a caption | **PATCH** /videos/{videoId}/captions/{language} -[**delete()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/CaptionsApi.md#delete) | Delete a caption | **DELETE** /videos/{videoId}/captions/{language} -[**list()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/CaptionsApi.md#list) | List video captions | **GET** /videos/{videoId}/captions +[**upload()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/CaptionsApi.md#upload) | Upload a caption | **POST** /videos/\{videoId}/captions/\{language} +[**get()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/CaptionsApi.md#get) | Retrieve a caption | **GET** /videos/\{videoId}/captions/\{language} +[**update()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/CaptionsApi.md#update) | Update a caption | **PATCH** /videos/\{videoId}/captions/\{language} +[**delete()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/CaptionsApi.md#delete) | Delete a caption | **DELETE** /videos/\{videoId}/captions/\{language} +[**list()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/CaptionsApi.md#list) | List video captions | **GET** /videos/\{videoId}/captions #### ChaptersApi Method | Description | HTTP request ------------- | ------------- | ------------- -[**upload()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/ChaptersApi.md#upload) | Upload a chapter | **POST** /videos/{videoId}/chapters/{language} -[**get()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/ChaptersApi.md#get) | Retrieve a chapter | **GET** /videos/{videoId}/chapters/{language} -[**delete()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/ChaptersApi.md#delete) | Delete a chapter | **DELETE** /videos/{videoId}/chapters/{language} -[**list()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/ChaptersApi.md#list) | List video chapters | **GET** /videos/{videoId}/chapters +[**upload()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/ChaptersApi.md#upload) | Upload a chapter | **POST** /videos/\{videoId}/chapters/\{language} +[**get()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/ChaptersApi.md#get) | Retrieve a chapter | **GET** /videos/\{videoId}/chapters/\{language} +[**delete()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/ChaptersApi.md#delete) | Delete a chapter | **DELETE** /videos/\{videoId}/chapters/\{language} +[**list()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/ChaptersApi.md#list) | List video chapters | **GET** /videos/\{videoId}/chapters #### LiveStreamsApi @@ -105,12 +102,12 @@ Method | Description | HTTP request Method | Description | HTTP request ------------- | ------------- | ------------- [**create()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/LiveStreamsApi.md#create) | Create live stream | **POST** /live-streams -[**get()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/LiveStreamsApi.md#get) | Retrieve live stream | **GET** /live-streams/{liveStreamId} -[**update()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/LiveStreamsApi.md#update) | Update a live stream | **PATCH** /live-streams/{liveStreamId} -[**delete()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/LiveStreamsApi.md#delete) | Delete a live stream | **DELETE** /live-streams/{liveStreamId} +[**get()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/LiveStreamsApi.md#get) | Retrieve live stream | **GET** /live-streams/\{liveStreamId} +[**update()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/LiveStreamsApi.md#update) | Update a live stream | **PATCH** /live-streams/\{liveStreamId} +[**delete()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/LiveStreamsApi.md#delete) | Delete a live stream | **DELETE** /live-streams/\{liveStreamId} [**list()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/LiveStreamsApi.md#list) | List all live streams | **GET** /live-streams -[**uploadThumbnail()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/LiveStreamsApi.md#uploadThumbnail) | Upload a thumbnail | **POST** /live-streams/{liveStreamId}/thumbnail -[**deleteThumbnail()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/LiveStreamsApi.md#deleteThumbnail) | Delete a thumbnail | **DELETE** /live-streams/{liveStreamId}/thumbnail +[**uploadThumbnail()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/LiveStreamsApi.md#uploadThumbnail) | Upload a thumbnail | **POST** /live-streams/\{liveStreamId}/thumbnail +[**deleteThumbnail()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/LiveStreamsApi.md#deleteThumbnail) | Delete a thumbnail | **DELETE** /live-streams/\{liveStreamId}/thumbnail #### PlayerThemesApi @@ -118,12 +115,12 @@ Method | Description | HTTP request Method | Description | HTTP request ------------- | ------------- | ------------- [**create()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/PlayerThemesApi.md#create) | Create a player | **POST** /players -[**get()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/PlayerThemesApi.md#get) | Retrieve a player | **GET** /players/{playerId} -[**update()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/PlayerThemesApi.md#update) | Update a player | **PATCH** /players/{playerId} -[**delete()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/PlayerThemesApi.md#delete) | Delete a player | **DELETE** /players/{playerId} +[**get()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/PlayerThemesApi.md#get) | Retrieve a player | **GET** /players/\{playerId} +[**update()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/PlayerThemesApi.md#update) | Update a player | **PATCH** /players/\{playerId} +[**delete()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/PlayerThemesApi.md#delete) | Delete a player | **DELETE** /players/\{playerId} [**list()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/PlayerThemesApi.md#list) | List all player themes | **GET** /players -[**uploadLogo()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/PlayerThemesApi.md#uploadLogo) | Upload a logo | **POST** /players/{playerId}/logo -[**deleteLogo()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/PlayerThemesApi.md#deleteLogo) | Delete logo | **DELETE** /players/{playerId}/logo +[**uploadLogo()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/PlayerThemesApi.md#uploadLogo) | Upload a logo | **POST** /players/\{playerId}/logo +[**deleteLogo()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/PlayerThemesApi.md#deleteLogo) | Delete logo | **DELETE** /players/\{playerId}/logo #### UploadTokensApi @@ -131,8 +128,8 @@ Method | Description | HTTP request Method | Description | HTTP request ------------- | ------------- | ------------- [**createToken()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/UploadTokensApi.md#createToken) | Generate an upload token | **POST** /upload-tokens -[**getToken()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/UploadTokensApi.md#getToken) | Retrieve upload token | **GET** /upload-tokens/{uploadToken} -[**deleteToken()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/UploadTokensApi.md#deleteToken) | Delete an upload token | **DELETE** /upload-tokens/{uploadToken} +[**getToken()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/UploadTokensApi.md#getToken) | Retrieve upload token | **GET** /upload-tokens/\{uploadToken} +[**deleteToken()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/UploadTokensApi.md#deleteToken) | Delete an upload token | **DELETE** /upload-tokens/\{uploadToken} [**list()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/UploadTokensApi.md#list) | List all active upload tokens | **GET** /upload-tokens @@ -141,15 +138,15 @@ Method | Description | HTTP request Method | Description | HTTP request ------------- | ------------- | ------------- [**create()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/VideosApi.md#create) | Create a video object | **POST** /videos -[**upload()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/VideosApi.md#upload) | Upload a video | **POST** /videos/{videoId}/source +[**upload()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/VideosApi.md#upload) | Upload a video | **POST** /videos/\{videoId}/source [**uploadWithUploadToken()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/VideosApi.md#uploadWithUploadToken) | Upload with an delegated upload token | **POST** /upload -[**get()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/VideosApi.md#get) | Retrieve a video object | **GET** /videos/{videoId} -[**update()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/VideosApi.md#update) | Update a video object | **PATCH** /videos/{videoId} -[**delete()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/VideosApi.md#delete) | Delete a video object | **DELETE** /videos/{videoId} +[**get()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/VideosApi.md#get) | Retrieve a video object | **GET** /videos/\{videoId} +[**update()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/VideosApi.md#update) | Update a video object | **PATCH** /videos/\{videoId} +[**delete()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/VideosApi.md#delete) | Delete a video object | **DELETE** /videos/\{videoId} [**list()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/VideosApi.md#list) | List all video objects | **GET** /videos -[**uploadThumbnail()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/VideosApi.md#uploadThumbnail) | Upload a thumbnail | **POST** /videos/{videoId}/thumbnail -[**pickThumbnail()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/VideosApi.md#pickThumbnail) | Set a thumbnail | **PATCH** /videos/{videoId}/thumbnail -[**getStatus()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/VideosApi.md#getStatus) | Retrieve video status and details | **GET** /videos/{videoId}/status +[**uploadThumbnail()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/VideosApi.md#uploadThumbnail) | Upload a thumbnail | **POST** /videos/\{videoId}/thumbnail +[**pickThumbnail()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/VideosApi.md#pickThumbnail) | Set a thumbnail | **PATCH** /videos/\{videoId}/thumbnail +[**getStatus()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/VideosApi.md#getStatus) | Retrieve video status and details | **GET** /videos/\{videoId}/status #### WatermarksApi @@ -157,7 +154,7 @@ Method | Description | HTTP request Method | Description | HTTP request ------------- | ------------- | ------------- [**upload()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/WatermarksApi.md#upload) | Upload a watermark | **POST** /watermarks -[**delete()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/WatermarksApi.md#delete) | Delete a watermark | **DELETE** /watermarks/{watermarkId} +[**delete()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/WatermarksApi.md#delete) | Delete a watermark | **DELETE** /watermarks/\{watermarkId} [**list()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/WatermarksApi.md#list) | List all watermarks | **GET** /watermarks @@ -166,8 +163,8 @@ Method | Description | HTTP request Method | Description | HTTP request ------------- | ------------- | ------------- [**create()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/WebhooksApi.md#create) | Create Webhook | **POST** /webhooks -[**get()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/WebhooksApi.md#get) | Retrieve Webhook details | **GET** /webhooks/{webhookId} -[**delete()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/WebhooksApi.md#delete) | Delete a Webhook | **DELETE** /webhooks/{webhookId} +[**get()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/WebhooksApi.md#get) | Retrieve Webhook details | **GET** /webhooks/\{webhookId} +[**delete()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/WebhooksApi.md#delete) | Delete a Webhook | **DELETE** /webhooks/\{webhookId} [**list()**](https://github.com/apivideo/api.video-nodejs-client/blob/main/docs/api/WebhooksApi.md#list) | List all webhooks | **GET** /webhooks diff --git a/sdks/api-clients/apivideo-php-client.md b/sdks/api-clients/apivideo-php-client.md index 4784bec1..c1cc485d 100644 --- a/sdks/api-clients/apivideo-php-client.md +++ b/sdks/api-clients/apivideo-php-client.md @@ -1,12 +1,9 @@ --- +## THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. IF YOU NEED TO CHANGE THIS FILE, CREATE A PR IN THE SOURCE REPOSITORY. title: PHP API client meta: description: The official PHP API client for api.video. [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. --- - # api.video PHP API client diff --git a/sdks/api-clients/apivideo-python-client.md b/sdks/api-clients/apivideo-python-client.md index f142c8fc..32c6495a 100644 --- a/sdks/api-clients/apivideo-python-client.md +++ b/sdks/api-clients/apivideo-python-client.md @@ -1,12 +1,9 @@ --- +## THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. IF YOU NEED TO CHANGE THIS FILE, CREATE A PR IN THE SOURCE REPOSITORY. title: Python API client meta: description: The official Python API client for api.video. [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. --- - # api.video Python API client @@ -98,11 +95,11 @@ Method | HTTP request | Description Method | HTTP request | Description ------------- | ------------- | ------------- -[**upload**](https://github.com/apivideo/api.video-python-client/blob/main/docs/CaptionsApi.md#upload) | **POST** /videos/{videoId}/captions/{language} | Upload a caption -[**get**](https://github.com/apivideo/api.video-python-client/blob/main/docs/CaptionsApi.md#get) | **GET** /videos/{videoId}/captions/{language} | Retrieve a caption -[**update**](https://github.com/apivideo/api.video-python-client/blob/main/docs/CaptionsApi.md#update) | **PATCH** /videos/{videoId}/captions/{language} | Update a caption -[**delete**](https://github.com/apivideo/api.video-python-client/blob/main/docs/CaptionsApi.md#delete) | **DELETE** /videos/{videoId}/captions/{language} | Delete a caption -[**list**](https://github.com/apivideo/api.video-python-client/blob/main/docs/CaptionsApi.md#list) | **GET** /videos/{videoId}/captions | List video captions +[**upload**](https://github.com/apivideo/api.video-python-client/blob/main/docs/CaptionsApi.md#upload) | **POST** /videos/\{videoId}/captions/\{language} | Upload a caption +[**get**](https://github.com/apivideo/api.video-python-client/blob/main/docs/CaptionsApi.md#get) | **GET** /videos/\{videoId}/captions/\{language} | Retrieve a caption +[**update**](https://github.com/apivideo/api.video-python-client/blob/main/docs/CaptionsApi.md#update) | **PATCH** /videos/\{videoId}/captions/\{language} | Update a caption +[**delete**](https://github.com/apivideo/api.video-python-client/blob/main/docs/CaptionsApi.md#delete) | **DELETE** /videos/\{videoId}/captions/\{language} | Delete a caption +[**list**](https://github.com/apivideo/api.video-python-client/blob/main/docs/CaptionsApi.md#list) | **GET** /videos/\{videoId}/captions | List video captions ### ChaptersApi @@ -110,10 +107,10 @@ Method | HTTP request | Description Method | HTTP request | Description ------------- | ------------- | ------------- -[**upload**](https://github.com/apivideo/api.video-python-client/blob/main/docs/ChaptersApi.md#upload) | **POST** /videos/{videoId}/chapters/{language} | Upload a chapter -[**get**](https://github.com/apivideo/api.video-python-client/blob/main/docs/ChaptersApi.md#get) | **GET** /videos/{videoId}/chapters/{language} | Retrieve a chapter -[**delete**](https://github.com/apivideo/api.video-python-client/blob/main/docs/ChaptersApi.md#delete) | **DELETE** /videos/{videoId}/chapters/{language} | Delete a chapter -[**list**](https://github.com/apivideo/api.video-python-client/blob/main/docs/ChaptersApi.md#list) | **GET** /videos/{videoId}/chapters | List video chapters +[**upload**](https://github.com/apivideo/api.video-python-client/blob/main/docs/ChaptersApi.md#upload) | **POST** /videos/\{videoId}/chapters/\{language} | Upload a chapter +[**get**](https://github.com/apivideo/api.video-python-client/blob/main/docs/ChaptersApi.md#get) | **GET** /videos/\{videoId}/chapters/\{language} | Retrieve a chapter +[**delete**](https://github.com/apivideo/api.video-python-client/blob/main/docs/ChaptersApi.md#delete) | **DELETE** /videos/\{videoId}/chapters/\{language} | Delete a chapter +[**list**](https://github.com/apivideo/api.video-python-client/blob/main/docs/ChaptersApi.md#list) | **GET** /videos/\{videoId}/chapters | List video chapters ### LiveStreamsApi @@ -122,12 +119,12 @@ Method | HTTP request | Description Method | HTTP request | Description ------------- | ------------- | ------------- [**create**](https://github.com/apivideo/api.video-python-client/blob/main/docs/LiveStreamsApi.md#create) | **POST** /live-streams | Create live stream -[**get**](https://github.com/apivideo/api.video-python-client/blob/main/docs/LiveStreamsApi.md#get) | **GET** /live-streams/{liveStreamId} | Retrieve live stream -[**update**](https://github.com/apivideo/api.video-python-client/blob/main/docs/LiveStreamsApi.md#update) | **PATCH** /live-streams/{liveStreamId} | Update a live stream -[**delete**](https://github.com/apivideo/api.video-python-client/blob/main/docs/LiveStreamsApi.md#delete) | **DELETE** /live-streams/{liveStreamId} | Delete a live stream +[**get**](https://github.com/apivideo/api.video-python-client/blob/main/docs/LiveStreamsApi.md#get) | **GET** /live-streams/\{liveStreamId} | Retrieve live stream +[**update**](https://github.com/apivideo/api.video-python-client/blob/main/docs/LiveStreamsApi.md#update) | **PATCH** /live-streams/\{liveStreamId} | Update a live stream +[**delete**](https://github.com/apivideo/api.video-python-client/blob/main/docs/LiveStreamsApi.md#delete) | **DELETE** /live-streams/\{liveStreamId} | Delete a live stream [**list**](https://github.com/apivideo/api.video-python-client/blob/main/docs/LiveStreamsApi.md#list) | **GET** /live-streams | List all live streams -[**upload_thumbnail**](https://github.com/apivideo/api.video-python-client/blob/main/docs/LiveStreamsApi.md#upload_thumbnail) | **POST** /live-streams/{liveStreamId}/thumbnail | Upload a thumbnail -[**delete_thumbnail**](https://github.com/apivideo/api.video-python-client/blob/main/docs/LiveStreamsApi.md#delete_thumbnail) | **DELETE** /live-streams/{liveStreamId}/thumbnail | Delete a thumbnail +[**upload_thumbnail**](https://github.com/apivideo/api.video-python-client/blob/main/docs/LiveStreamsApi.md#upload_thumbnail) | **POST** /live-streams/\{liveStreamId}/thumbnail | Upload a thumbnail +[**delete_thumbnail**](https://github.com/apivideo/api.video-python-client/blob/main/docs/LiveStreamsApi.md#delete_thumbnail) | **DELETE** /live-streams/\{liveStreamId}/thumbnail | Delete a thumbnail ### PlayerThemesApi @@ -136,12 +133,12 @@ Method | HTTP request | Description Method | HTTP request | Description ------------- | ------------- | ------------- [**create**](https://github.com/apivideo/api.video-python-client/blob/main/docs/PlayerThemesApi.md#create) | **POST** /players | Create a player -[**get**](https://github.com/apivideo/api.video-python-client/blob/main/docs/PlayerThemesApi.md#get) | **GET** /players/{playerId} | Retrieve a player -[**update**](https://github.com/apivideo/api.video-python-client/blob/main/docs/PlayerThemesApi.md#update) | **PATCH** /players/{playerId} | Update a player -[**delete**](https://github.com/apivideo/api.video-python-client/blob/main/docs/PlayerThemesApi.md#delete) | **DELETE** /players/{playerId} | Delete a player +[**get**](https://github.com/apivideo/api.video-python-client/blob/main/docs/PlayerThemesApi.md#get) | **GET** /players/\{playerId} | Retrieve a player +[**update**](https://github.com/apivideo/api.video-python-client/blob/main/docs/PlayerThemesApi.md#update) | **PATCH** /players/\{playerId} | Update a player +[**delete**](https://github.com/apivideo/api.video-python-client/blob/main/docs/PlayerThemesApi.md#delete) | **DELETE** /players/\{playerId} | Delete a player [**list**](https://github.com/apivideo/api.video-python-client/blob/main/docs/PlayerThemesApi.md#list) | **GET** /players | List all player themes -[**upload_logo**](https://github.com/apivideo/api.video-python-client/blob/main/docs/PlayerThemesApi.md#upload_logo) | **POST** /players/{playerId}/logo | Upload a logo -[**delete_logo**](https://github.com/apivideo/api.video-python-client/blob/main/docs/PlayerThemesApi.md#delete_logo) | **DELETE** /players/{playerId}/logo | Delete logo +[**upload_logo**](https://github.com/apivideo/api.video-python-client/blob/main/docs/PlayerThemesApi.md#upload_logo) | **POST** /players/\{playerId}/logo | Upload a logo +[**delete_logo**](https://github.com/apivideo/api.video-python-client/blob/main/docs/PlayerThemesApi.md#delete_logo) | **DELETE** /players/\{playerId}/logo | Delete logo ### UploadTokensApi @@ -150,8 +147,8 @@ Method | HTTP request | Description Method | HTTP request | Description ------------- | ------------- | ------------- [**create_token**](https://github.com/apivideo/api.video-python-client/blob/main/docs/UploadTokensApi.md#create_token) | **POST** /upload-tokens | Generate an upload token -[**get_token**](https://github.com/apivideo/api.video-python-client/blob/main/docs/UploadTokensApi.md#get_token) | **GET** /upload-tokens/{uploadToken} | Retrieve upload token -[**delete_token**](https://github.com/apivideo/api.video-python-client/blob/main/docs/UploadTokensApi.md#delete_token) | **DELETE** /upload-tokens/{uploadToken} | Delete an upload token +[**get_token**](https://github.com/apivideo/api.video-python-client/blob/main/docs/UploadTokensApi.md#get_token) | **GET** /upload-tokens/\{uploadToken} | Retrieve upload token +[**delete_token**](https://github.com/apivideo/api.video-python-client/blob/main/docs/UploadTokensApi.md#delete_token) | **DELETE** /upload-tokens/\{uploadToken} | Delete an upload token [**list**](https://github.com/apivideo/api.video-python-client/blob/main/docs/UploadTokensApi.md#list) | **GET** /upload-tokens | List all active upload tokens @@ -161,15 +158,15 @@ Method | HTTP request | Description Method | HTTP request | Description ------------- | ------------- | ------------- [**create**](https://github.com/apivideo/api.video-python-client/blob/main/docs/VideosApi.md#create) | **POST** /videos | Create a video object -[**upload**](https://github.com/apivideo/api.video-python-client/blob/main/docs/VideosApi.md#upload) | **POST** /videos/{videoId}/source | Upload a video +[**upload**](https://github.com/apivideo/api.video-python-client/blob/main/docs/VideosApi.md#upload) | **POST** /videos/\{videoId}/source | Upload a video [**upload_with_upload_token**](https://github.com/apivideo/api.video-python-client/blob/main/docs/VideosApi.md#upload_with_upload_token) | **POST** /upload | Upload with an delegated upload token -[**get**](https://github.com/apivideo/api.video-python-client/blob/main/docs/VideosApi.md#get) | **GET** /videos/{videoId} | Retrieve a video object -[**update**](https://github.com/apivideo/api.video-python-client/blob/main/docs/VideosApi.md#update) | **PATCH** /videos/{videoId} | Update a video object -[**delete**](https://github.com/apivideo/api.video-python-client/blob/main/docs/VideosApi.md#delete) | **DELETE** /videos/{videoId} | Delete a video object +[**get**](https://github.com/apivideo/api.video-python-client/blob/main/docs/VideosApi.md#get) | **GET** /videos/\{videoId} | Retrieve a video object +[**update**](https://github.com/apivideo/api.video-python-client/blob/main/docs/VideosApi.md#update) | **PATCH** /videos/\{videoId} | Update a video object +[**delete**](https://github.com/apivideo/api.video-python-client/blob/main/docs/VideosApi.md#delete) | **DELETE** /videos/\{videoId} | Delete a video object [**list**](https://github.com/apivideo/api.video-python-client/blob/main/docs/VideosApi.md#list) | **GET** /videos | List all video objects -[**upload_thumbnail**](https://github.com/apivideo/api.video-python-client/blob/main/docs/VideosApi.md#upload_thumbnail) | **POST** /videos/{videoId}/thumbnail | Upload a thumbnail -[**pick_thumbnail**](https://github.com/apivideo/api.video-python-client/blob/main/docs/VideosApi.md#pick_thumbnail) | **PATCH** /videos/{videoId}/thumbnail | Set a thumbnail -[**get_status**](https://github.com/apivideo/api.video-python-client/blob/main/docs/VideosApi.md#get_status) | **GET** /videos/{videoId}/status | Retrieve video status and details +[**upload_thumbnail**](https://github.com/apivideo/api.video-python-client/blob/main/docs/VideosApi.md#upload_thumbnail) | **POST** /videos/\{videoId}/thumbnail | Upload a thumbnail +[**pick_thumbnail**](https://github.com/apivideo/api.video-python-client/blob/main/docs/VideosApi.md#pick_thumbnail) | **PATCH** /videos/\{videoId}/thumbnail | Set a thumbnail +[**get_status**](https://github.com/apivideo/api.video-python-client/blob/main/docs/VideosApi.md#get_status) | **GET** /videos/\{videoId}/status | Retrieve video status and details ### WatermarksApi @@ -178,7 +175,7 @@ Method | HTTP request | Description Method | HTTP request | Description ------------- | ------------- | ------------- [**upload**](https://github.com/apivideo/api.video-python-client/blob/main/docs/WatermarksApi.md#upload) | **POST** /watermarks | Upload a watermark -[**delete**](https://github.com/apivideo/api.video-python-client/blob/main/docs/WatermarksApi.md#delete) | **DELETE** /watermarks/{watermarkId} | Delete a watermark +[**delete**](https://github.com/apivideo/api.video-python-client/blob/main/docs/WatermarksApi.md#delete) | **DELETE** /watermarks/\{watermarkId} | Delete a watermark [**list**](https://github.com/apivideo/api.video-python-client/blob/main/docs/WatermarksApi.md#list) | **GET** /watermarks | List all watermarks @@ -188,8 +185,8 @@ Method | HTTP request | Description Method | HTTP request | Description ------------- | ------------- | ------------- [**create**](https://github.com/apivideo/api.video-python-client/blob/main/docs/WebhooksApi.md#create) | **POST** /webhooks | Create Webhook -[**get**](https://github.com/apivideo/api.video-python-client/blob/main/docs/WebhooksApi.md#get) | **GET** /webhooks/{webhookId} | Retrieve Webhook details -[**delete**](https://github.com/apivideo/api.video-python-client/blob/main/docs/WebhooksApi.md#delete) | **DELETE** /webhooks/{webhookId} | Delete a Webhook +[**get**](https://github.com/apivideo/api.video-python-client/blob/main/docs/WebhooksApi.md#get) | **GET** /webhooks/\{webhookId} | Retrieve Webhook details +[**delete**](https://github.com/apivideo/api.video-python-client/blob/main/docs/WebhooksApi.md#delete) | **DELETE** /webhooks/\{webhookId} | Delete a Webhook [**list**](https://github.com/apivideo/api.video-python-client/blob/main/docs/WebhooksApi.md#list) | **GET** /webhooks | List all webhooks diff --git a/sdks/api-clients/apivideo-swift5-client.md b/sdks/api-clients/apivideo-swift5-client.md index 5bd01375..8a2640ee 100644 --- a/sdks/api-clients/apivideo-swift5-client.md +++ b/sdks/api-clients/apivideo-swift5-client.md @@ -1,12 +1,9 @@ --- +## THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. IF YOU NEED TO CHANGE THIS FILE, CREATE A PR IN THE SOURCE REPOSITORY. title: Swift API client meta: description: The official Swift API client for api.video. [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. --- - # api.video Swift API client @@ -89,11 +86,11 @@ CaptionsAPI Method | HTTP request | Description ------------- | ------------- | ------------- -[**upload**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/CaptionsAPI.md#upload) | **POST** /videos/{videoId}/captions/{language} | Upload a caption -[**get**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/CaptionsAPI.md#get) | **GET** /videos/{videoId}/captions/{language} | Retrieve a caption -[**update**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/CaptionsAPI.md#update) | **PATCH** /videos/{videoId}/captions/{language} | Update a caption -[**delete**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/CaptionsAPI.md#delete) | **DELETE** /videos/{videoId}/captions/{language} | Delete a caption -[**list**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/CaptionsAPI.md#list) | **GET** /videos/{videoId}/captions | List video captions +[**upload**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/CaptionsAPI.md#upload) | **POST** /videos/\{videoId}/captions/\{language} | Upload a caption +[**get**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/CaptionsAPI.md#get) | **GET** /videos/\{videoId}/captions/\{language} | Retrieve a caption +[**update**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/CaptionsAPI.md#update) | **PATCH** /videos/\{videoId}/captions/\{language} | Update a caption +[**delete**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/CaptionsAPI.md#delete) | **DELETE** /videos/\{videoId}/captions/\{language} | Delete a caption +[**list**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/CaptionsAPI.md#list) | **GET** /videos/\{videoId}/captions | List video captions #### ChaptersAPI @@ -108,10 +105,10 @@ ChaptersAPI Method | HTTP request | Description ------------- | ------------- | ------------- -[**upload**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/ChaptersAPI.md#upload) | **POST** /videos/{videoId}/chapters/{language} | Upload a chapter -[**get**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/ChaptersAPI.md#get) | **GET** /videos/{videoId}/chapters/{language} | Retrieve a chapter -[**delete**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/ChaptersAPI.md#delete) | **DELETE** /videos/{videoId}/chapters/{language} | Delete a chapter -[**list**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/ChaptersAPI.md#list) | **GET** /videos/{videoId}/chapters | List video chapters +[**upload**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/ChaptersAPI.md#upload) | **POST** /videos/\{videoId}/chapters/\{language} | Upload a chapter +[**get**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/ChaptersAPI.md#get) | **GET** /videos/\{videoId}/chapters/\{language} | Retrieve a chapter +[**delete**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/ChaptersAPI.md#delete) | **DELETE** /videos/\{videoId}/chapters/\{language} | Delete a chapter +[**list**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/ChaptersAPI.md#list) | **GET** /videos/\{videoId}/chapters | List video chapters #### LiveStreamsAPI @@ -127,12 +124,12 @@ LiveStreamsAPI Method | HTTP request | Description ------------- | ------------- | ------------- [**create**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/LiveStreamsAPI.md#create) | **POST** /live-streams | Create live stream -[**get**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/LiveStreamsAPI.md#get) | **GET** /live-streams/{liveStreamId} | Retrieve live stream -[**update**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/LiveStreamsAPI.md#update) | **PATCH** /live-streams/{liveStreamId} | Update a live stream -[**delete**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/LiveStreamsAPI.md#delete) | **DELETE** /live-streams/{liveStreamId} | Delete a live stream +[**get**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/LiveStreamsAPI.md#get) | **GET** /live-streams/\{liveStreamId} | Retrieve live stream +[**update**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/LiveStreamsAPI.md#update) | **PATCH** /live-streams/\{liveStreamId} | Update a live stream +[**delete**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/LiveStreamsAPI.md#delete) | **DELETE** /live-streams/\{liveStreamId} | Delete a live stream [**list**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/LiveStreamsAPI.md#list) | **GET** /live-streams | List all live streams -[**uploadThumbnail**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/LiveStreamsAPI.md#uploadThumbnail) | **POST** /live-streams/{liveStreamId}/thumbnail | Upload a thumbnail -[**deleteThumbnail**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/LiveStreamsAPI.md#deleteThumbnail) | **DELETE** /live-streams/{liveStreamId}/thumbnail | Delete a thumbnail +[**uploadThumbnail**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/LiveStreamsAPI.md#uploadThumbnail) | **POST** /live-streams/\{liveStreamId}/thumbnail | Upload a thumbnail +[**deleteThumbnail**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/LiveStreamsAPI.md#deleteThumbnail) | **DELETE** /live-streams/\{liveStreamId}/thumbnail | Delete a thumbnail #### PlayerThemesAPI @@ -148,12 +145,12 @@ PlayerThemesAPI Method | HTTP request | Description ------------- | ------------- | ------------- [**create**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/PlayerThemesAPI.md#create) | **POST** /players | Create a player -[**get**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/PlayerThemesAPI.md#get) | **GET** /players/{playerId} | Retrieve a player -[**update**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/PlayerThemesAPI.md#update) | **PATCH** /players/{playerId} | Update a player -[**delete**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/PlayerThemesAPI.md#delete) | **DELETE** /players/{playerId} | Delete a player +[**get**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/PlayerThemesAPI.md#get) | **GET** /players/\{playerId} | Retrieve a player +[**update**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/PlayerThemesAPI.md#update) | **PATCH** /players/\{playerId} | Update a player +[**delete**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/PlayerThemesAPI.md#delete) | **DELETE** /players/\{playerId} | Delete a player [**list**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/PlayerThemesAPI.md#list) | **GET** /players | List all player themes -[**uploadLogo**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/PlayerThemesAPI.md#uploadLogo) | **POST** /players/{playerId}/logo | Upload a logo -[**deleteLogo**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/PlayerThemesAPI.md#deleteLogo) | **DELETE** /players/{playerId}/logo | Delete logo +[**uploadLogo**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/PlayerThemesAPI.md#uploadLogo) | **POST** /players/\{playerId}/logo | Upload a logo +[**deleteLogo**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/PlayerThemesAPI.md#deleteLogo) | **DELETE** /players/\{playerId}/logo | Delete logo #### UploadTokensAPI @@ -169,8 +166,8 @@ UploadTokensAPI Method | HTTP request | Description ------------- | ------------- | ------------- [**createToken**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/UploadTokensAPI.md#createToken) | **POST** /upload-tokens | Generate an upload token -[**getToken**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/UploadTokensAPI.md#getToken) | **GET** /upload-tokens/{uploadToken} | Retrieve upload token -[**deleteToken**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/UploadTokensAPI.md#deleteToken) | **DELETE** /upload-tokens/{uploadToken} | Delete an upload token +[**getToken**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/UploadTokensAPI.md#getToken) | **GET** /upload-tokens/\{uploadToken} | Retrieve upload token +[**deleteToken**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/UploadTokensAPI.md#deleteToken) | **DELETE** /upload-tokens/\{uploadToken} | Delete an upload token [**list**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/UploadTokensAPI.md#list) | **GET** /upload-tokens | List all active upload tokens @@ -187,15 +184,15 @@ VideosAPI Method | HTTP request | Description ------------- | ------------- | ------------- [**create**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/VideosAPI.md#create) | **POST** /videos | Create a video object -[**upload**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/VideosAPI.md#upload) | **POST** /videos/{videoId}/source | Upload a video +[**upload**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/VideosAPI.md#upload) | **POST** /videos/\{videoId}/source | Upload a video [**uploadWithUploadToken**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/VideosAPI.md#uploadWithUploadToken) | **POST** /upload | Upload with an delegated upload token -[**get**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/VideosAPI.md#get) | **GET** /videos/{videoId} | Retrieve a video object -[**update**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/VideosAPI.md#update) | **PATCH** /videos/{videoId} | Update a video object -[**delete**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/VideosAPI.md#delete) | **DELETE** /videos/{videoId} | Delete a video object +[**get**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/VideosAPI.md#get) | **GET** /videos/\{videoId} | Retrieve a video object +[**update**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/VideosAPI.md#update) | **PATCH** /videos/\{videoId} | Update a video object +[**delete**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/VideosAPI.md#delete) | **DELETE** /videos/\{videoId} | Delete a video object [**list**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/VideosAPI.md#list) | **GET** /videos | List all video objects -[**uploadThumbnail**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/VideosAPI.md#uploadThumbnail) | **POST** /videos/{videoId}/thumbnail | Upload a thumbnail -[**pickThumbnail**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/VideosAPI.md#pickThumbnail) | **PATCH** /videos/{videoId}/thumbnail | Set a thumbnail -[**getStatus**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/VideosAPI.md#getStatus) | **GET** /videos/{videoId}/status | Retrieve video status and details +[**uploadThumbnail**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/VideosAPI.md#uploadThumbnail) | **POST** /videos/\{videoId}/thumbnail | Upload a thumbnail +[**pickThumbnail**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/VideosAPI.md#pickThumbnail) | **PATCH** /videos/\{videoId}/thumbnail | Set a thumbnail +[**getStatus**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/VideosAPI.md#getStatus) | **GET** /videos/\{videoId}/status | Retrieve video status and details #### WatermarksAPI @@ -211,7 +208,7 @@ WatermarksAPI Method | HTTP request | Description ------------- | ------------- | ------------- [**upload**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/WatermarksAPI.md#upload) | **POST** /watermarks | Upload a watermark -[**delete**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/WatermarksAPI.md#delete) | **DELETE** /watermarks/{watermarkId} | Delete a watermark +[**delete**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/WatermarksAPI.md#delete) | **DELETE** /watermarks/\{watermarkId} | Delete a watermark [**list**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/WatermarksAPI.md#list) | **GET** /watermarks | List all watermarks @@ -228,8 +225,8 @@ WebhooksAPI Method | HTTP request | Description ------------- | ------------- | ------------- [**create**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/WebhooksAPI.md#create) | **POST** /webhooks | Create Webhook -[**get**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/WebhooksAPI.md#get) | **GET** /webhooks/{webhookId} | Retrieve Webhook details -[**delete**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/WebhooksAPI.md#delete) | **DELETE** /webhooks/{webhookId} | Delete a Webhook +[**get**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/WebhooksAPI.md#get) | **GET** /webhooks/\{webhookId} | Retrieve Webhook details +[**delete**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/WebhooksAPI.md#delete) | **DELETE** /webhooks/\{webhookId} | Delete a Webhook [**list**](https://github.com/apivideo/api.video-swift-client/blob/main/docs/WebhooksAPI.md#list) | **GET** /webhooks | List all webhooks diff --git a/sdks/api-clients/apivideo-swift5-uploader-client.md b/sdks/api-clients/apivideo-swift5-uploader-client.md index 8b24d96c..003abe2f 100644 --- a/sdks/api-clients/apivideo-swift5-uploader-client.md +++ b/sdks/api-clients/apivideo-swift5-uploader-client.md @@ -71,7 +71,7 @@ VideosAPI Method | HTTP request | Description ------------- | ------------- | ------------- -[**upload**](https://github.com/apivideo/api.video-swift-uploader/blob/main/docs/VideosAPI.md#upload) | **POST** /videos/{videoId}/source | Upload a video +[**upload**](https://github.com/apivideo/api.video-swift-uploader/blob/main/docs/VideosAPI.md#upload) | **POST** /videos/\{videoId}/source | Upload a video [**uploadWithUploadToken**](https://github.com/apivideo/api.video-swift-uploader/blob/main/docs/VideosAPI.md#uploadWithUploadToken) | **POST** /upload | Upload with an delegated upload token diff --git a/sdks/livestream/README.md b/sdks/livestream/README.md index 6c0b4f77..22777e12 100644 --- a/sdks/livestream/README.md +++ b/sdks/livestream/README.md @@ -1,24 +1,63 @@ --- title: Live stream SDKs -hide_side_table_of_contents: true +toc: false +breadcrumbs: false meta: description: This page lists all api.video Live stream SDKs and client libraries for React Native, Flutter, Swift, and Android. --- -Live streaming SDK catalog -================== +
-With api.video you can use live streaming mobile SDKs to create a streaming client for your users. - -### Mobile -
- -{% include "_partials/hagrid-item.md" title: "React Native", image: "/_assets/icons/sdk_icons/react_native.svg", subtitle: "Live streaming", link: "././react-native-livestream-component.md" %} +# Live streaming SDK catalog -{% include "_partials/hagrid-item.md" title: "Flutter", image: "/_assets/icons/sdk_icons/flutter.svg", subtitle: "Live streaming", link: "././apivideo-flutter-livestream.md" %} +
-{% include "_partials/hagrid-item.md" title: "Swift", image: "/_assets/icons/sdk_icons/Swift.svg", subtitle: "Live streaming", link: "././swift-livestream-library.md" %} - -{% include "_partials/hagrid-item.md" title: "Android", image: "/_assets/icons/sdk_icons/Android.svg", subtitle: "Live streaming", link: "././apivideo-android-livestream-module.md" %} +With api.video you can use live streaming mobile SDKs to create a streaming client for your users. -
\ No newline at end of file +## Mobile + + + + + ![React Native](/_assets/icons/sdk_icons/react_native.svg) + + + React Native\ + Live streaming + + + + + + + ![Flutter](/_assets/icons/sdk_icons/flutter.svg) + + + Flutter\ + Live streaming + + + + + + + ![Swift](/_assets/icons/sdk_icons/Swift.svg) + + + Swift\ + Live streaming + + + + + + + ![Android](/_assets/icons/sdk_icons/Android.svg) + + + Android\ + Live streaming + + + + \ No newline at end of file diff --git a/sdks/livestream/apivideo-android-livestream-module.md b/sdks/livestream/apivideo-android-livestream-module.md index 4c7200d5..ff2d3176 100644 --- a/sdks/livestream/apivideo-android-livestream-module.md +++ b/sdks/livestream/apivideo-android-livestream-module.md @@ -1,12 +1,9 @@ --- +## THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. IF YOU NEED TO CHANGE THIS FILE, CREATE A PR IN THE SOURCE REPOSITORY. title: Android live stream module meta: description: The official Android live stream module for api.video. [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. --- - # api.video Android Live stream module diff --git a/sdks/livestream/apivideo-flutter-livestream.md b/sdks/livestream/apivideo-flutter-livestream.md index 841d7320..6eb72821 100644 --- a/sdks/livestream/apivideo-flutter-livestream.md +++ b/sdks/livestream/apivideo-flutter-livestream.md @@ -1,12 +1,9 @@ --- +## THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. IF YOU NEED TO CHANGE THIS FILE, CREATE A PR IN THE SOURCE REPOSITORY. title: Flutter RTMP live stream client meta: description: The official Flutter RTMP live stream client for api.video. [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. --- - # Flutter RTMP Live stream Client diff --git a/sdks/livestream/react-native-livestream-component.md b/sdks/livestream/react-native-livestream-component.md index 478e2146..7002af2f 100644 --- a/sdks/livestream/react-native-livestream-component.md +++ b/sdks/livestream/react-native-livestream-component.md @@ -1,12 +1,9 @@ --- +## THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. IF YOU NEED TO CHANGE THIS FILE, CREATE A PR IN THE SOURCE REPOSITORY. title: React Native live stream component meta: description: The official React Native live stream component for api.video. [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. --- - # React Native Livestream Component @@ -74,7 +71,6 @@ Your application must dynamically require android.permission.CAMERA and android. ### Code sample -{% raw %} ```jsx import React, { useRef, useState } from 'react'; import { View, TouchableOpacity } from 'react-native'; @@ -138,7 +134,6 @@ const App = () => { export default App; ``` -{% endraw %} ## Documentation diff --git a/sdks/livestream/swift-livestream-library.md b/sdks/livestream/swift-livestream-library.md index 290446a1..80f82dc7 100644 --- a/sdks/livestream/swift-livestream-library.md +++ b/sdks/livestream/swift-livestream-library.md @@ -1,12 +1,9 @@ --- +## THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. IF YOU NEED TO CHANGE THIS FILE, CREATE A PR IN THE SOURCE REPOSITORY. title: Swift live stream library meta: description: The official Swift live stream library for api.video. [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. --- - # Swift Live stream library diff --git a/sdks/nocode/README.md b/sdks/nocode/README.md index bff89efe..c49f81b4 100644 --- a/sdks/nocode/README.md +++ b/sdks/nocode/README.md @@ -1,24 +1,72 @@ --- title: No-code solutions -hide_side_table_of_contents: true +toc: false +breadcrumbs: false meta: description: api.video no-code solutions for Bubble.io, Contentful, Wordpress, Strapi, and Zapier. --- +
+ # No-code solutions +
+ Sometimes you need a quick solution without getting into coding. api.video provides you with a variety of plugins and solutions that will enable you to use api.video's various features without the need to write a single line of code. -
+ + + + ![Bubble.io](/_assets/icons/bubbleio_new.png) + + + Bubble.io\ + No-code plugin + + + + + + + ![Contentful](/_assets/icons/contentful_new.png) + + + Contentful\ + No-code plugin + + + -{% include "_partials/hagrid-item.md" title: "Bubble.io", image: "/_assets/icons/bubbleio_new.png", subtitle: "No-code plugin", link: "././bubbleio-plugin.md" %} + + + ![Zapier](/_assets/icons/zapier_new.png) -{% include "_partials/hagrid-item.md" title: "Contentful", image: "/_assets/icons/contentful_new.png", subtitle: "No-code plugin", link: "././contentful.md" %} + + Zapier\ + No-code plugin + + + -{% include "_partials/hagrid-item.md" title: "Zapier", image: "/_assets/icons/zapier_new.png", subtitle: "No-code plugin", link: "././zapier.md" %} + + + ![Wordpress](/_assets/icons/wordpress_new.png) -{% include "_partials/hagrid-item.md" title: "Wordpress", image: "/_assets/icons/wordpress_new.png", subtitle: "No-code plugin", link: "././wordpress.md" %} + + Wordpress\ + No-code plugin + + + -{% include "_partials/hagrid-item.md" title: "Strapi", image: "/_assets/icons/strapi_new.png", subtitle: "No-code plugin", link: "././strapi.md" %} + + + ![Strapi](/_assets/icons/strapi_new.png) -
\ No newline at end of file + + Strapi\ + No-code plugin + + + + \ No newline at end of file diff --git a/sdks/nocode/strapi.md b/sdks/nocode/strapi.md index 77ad3634..47fe95e8 100644 --- a/sdks/nocode/strapi.md +++ b/sdks/nocode/strapi.md @@ -8,7 +8,8 @@ meta: With the api.video Strapi plugin you can upload and embed your videos into your Strapi website effortlessly. Check out this short video to get started with your api.video integration using Strapi: - + ## Features @@ -54,8 +55,8 @@ The api-video-uploader plugin should appear in the Plugins section of Strapi sid ### Minimum environment requirements -- Node.js >=14.19.1 <=18.x.x -- NPM >=6.x.x +- `Node.js >=14.19.1 <=18.x.x` +- `NPM >=6.x.x` - In our minimum support we're following official Node.js releases timelines. ### Supported Strapi versions: @@ -74,8 +75,7 @@ We recommend always using the latest version of Strapi to start your new project - Paste your Api Key and click Save. -{% capture content %} - + To resolve `Content Security Policy` directive issue and to visualize the thumbnail and the video, we need to configure external ressource like embed.api.videoand cdn.api.video/vod/. Modify the middlewares.js file like below: ``` @@ -105,8 +105,7 @@ module.exports = ({ env }) => [ 'strapi::public', ] ``` -{% endcapture %} -{% include "_partials/callout.html" kind: "warning", content: content %} + ### Permissions Configurations diff --git a/sdks/nocode/wordpress.md b/sdks/nocode/wordpress.md index cfa278bb..c475f46a 100644 --- a/sdks/nocode/wordpress.md +++ b/sdks/nocode/wordpress.md @@ -83,12 +83,9 @@ In order to embed the video into your page, you will have to copy the video shor - Once the block has been added in your article, you now have to paste the value you copied in the video editing page (it should look like `[api.video video_id=123456789]`). - Paste the shortcut value into the dedicated input -{% capture content %} - + In most cases (but it depends on your WordPress theme), you will get better results if you transform the block to "Columns". To do that, click on the first icon above the block and select Columns. - -{% endcapture %} -{% include "_partials/callout.html" kind: "warning", content: content %} + And that's it! Once your article is saved, you will see the video appear where you inserted it. diff --git a/sdks/nocode/zapier.md b/sdks/nocode/zapier.md index 2a121e32..eb256ffe 100644 --- a/sdks/nocode/zapier.md +++ b/sdks/nocode/zapier.md @@ -12,10 +12,10 @@ Watch this short video to get started with api.video integration using Zapier: -{% capture content %} + + A trigger might be "When a new encoding has been created at api.video" and the action would be to "share the playback link on Twitter." So now, whenever a new encoding is created, the zap will fire and automatically tweet the link to your followers. -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + The api.video integration features both triggers and actions. Check out the linked pages for more details about each action and trigger. diff --git a/sdks/player/README.md b/sdks/player/README.md index 20254656..40f33e75 100644 --- a/sdks/player/README.md +++ b/sdks/player/README.md @@ -1,12 +1,16 @@ --- title: Player & analytics SDKs -hide_side_table_of_contents: true +toc: false +breadcrumbs: false meta: description: api.video player SDKs for Java, Typescript, React, React Native, Flutter, Swift, and Kotlin. --- -Delivery & analytics SDK catalog -================== +
+ +# Delivery & analytics SDK catalog + +
## Player SDKs @@ -14,29 +18,88 @@ Enable video playback from your app. ### Web -
- -{% include "_partials/hagrid-item.md" title: "api.video Player SDK", image: "/_assets/icons/sdk_icons/js.svg", subtitle: "Player", link: "././apivideo-player-sdk.md" %} - -{% include "_partials/hagrid-item.md" title: "Flutter", image: "/_assets/icons/sdk_icons/flutter.svg", subtitle: "Player", link: "././apivideo-flutter-player.md" %} - -{% include "_partials/hagrid-item.md" title: "React.js", image: "/_assets/icons/sdk_icons/react_native.svg", subtitle: "Player", link: "././apivideo-react-player.md" %} - -
+ + + + ![api.video Player SDK](/_assets/icons/sdk_icons/js.svg) + + + api.video Player SDK\ + Player + + + + + + + ![Flutter](/_assets/icons/sdk_icons/flutter.svg) + + + Flutter\ + Player + + + + + + + ![React.js](/_assets/icons/sdk_icons/react_native.svg) + + + React.js\ + Player + + + + ### Mobile -
- -{% include "_partials/hagrid-item.md" title: "React Native", image: "/_assets/icons/sdk_icons/react_native.svg", subtitle: "Player", link: "././apivideo-react-native-player.md" %} - -{% include "_partials/hagrid-item.md" title: "Flutter", image: "/_assets/icons/sdk_icons/flutter.svg", subtitle: "Player", link: "././apivideo-flutter-player.md" %} - -{% include "_partials/hagrid-item.md" title: "Swift", image: "/_assets/icons/sdk_icons/Swift.svg", subtitle: "Player", link: "././apivideo-swift-player.md" %} - -{% include "_partials/hagrid-item.md" title: "Android", image: "/_assets/icons/sdk_icons/Android.svg", subtitle: "Player", link: "././apivideo-android-player.md" %} - -
+ + + + ![React Native](/_assets/icons/sdk_icons/react_native.svg) + + + React Native\ + Player + + + + + + + ![Flutter](/_assets/icons/sdk_icons/flutter.svg) + + + Flutter\ + Player + + + + + + + ![Swift](/_assets/icons/sdk_icons/Swift.svg) + + + Swift\ + Player + + + + + + + ![Android](/_assets/icons/sdk_icons/Android.svg) + + + Android\ + Player + + + + ## Player analytics SDKs @@ -44,22 +107,64 @@ Collect data and insights from custom players. ### Web -
- -{% include "_partials/hagrid-item.md" title: "video.js", image: "/_assets/icons/sdk_icons/js.svg", subtitle: "Analytics plugin", link: "././apivideo-videojs-analytics.md" %} - -{% include "_partials/hagrid-item.md" title: "hls.js", image: "/_assets/icons/sdk_icons/js.svg", subtitle: "Analytics plugin", link: "././apivideo-hlsjs-analytics.md" %} - -{% include "_partials/hagrid-item.md" title: "api.video Player analytics", image: "/_assets/icons/sdk_icons/js.svg", subtitle: "Analytics plugin", link: "././apivideo-player-analytics.md" %} - -
+ + + + ![video.js](/_assets/icons/sdk_icons/js.svg) + + + video.js\ + Analytics plugin + + + + + + + ![hls.js](/_assets/icons/sdk_icons/js.svg) + + + hls.js\ + Analytics plugin + + + + + + + ![api.video Player analytics](/_assets/icons/sdk_icons/js.svg) + + + api.video Player analytics\ + Analytics plugin + + + + ### Mobile -
- -{% include "_partials/hagrid-item.md" title: "Swift", image: "/_assets/icons/sdk_icons/Swift.svg", subtitle: "Analytics plugin", link: "././apivideo-swift-player-analytics.md" %} - -{% include "_partials/hagrid-item.md" title: "Android", image: "/_assets/icons/sdk_icons/Android.svg", subtitle: "Analytics plugin", link: "././apivideo-android-player-analytics.md" %} - -
\ No newline at end of file + + + + + ![Swift](/_assets/icons/sdk_icons/Swift.svg) + + + Swift\ + Analytics plugin + + + + + + + ![Android](/_assets/icons/sdk_icons/Android.svg) + + + Android\ + Analytics plugin + + + + \ No newline at end of file diff --git a/sdks/player/apivideo-android-player-analytics.md b/sdks/player/apivideo-android-player-analytics.md index 6bb97fc1..33eca2a6 100644 --- a/sdks/player/apivideo-android-player-analytics.md +++ b/sdks/player/apivideo-android-player-analytics.md @@ -1,12 +1,9 @@ --- +## THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. IF YOU NEED TO CHANGE THIS FILE, CREATE A PR IN THE SOURCE REPOSITORY. title: api.video Android Player analytics plugin meta: description: The official api.video Android Player analytics plugin for api.video. [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. --- - # api.video Android Player analytics plugin diff --git a/sdks/player/apivideo-android-player.md b/sdks/player/apivideo-android-player.md index 1065fb0d..00ee1a6a 100644 --- a/sdks/player/apivideo-android-player.md +++ b/sdks/player/apivideo-android-player.md @@ -1,12 +1,9 @@ --- +## THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. IF YOU NEED TO CHANGE THIS FILE, CREATE A PR IN THE SOURCE REPOSITORY. title: api.video Android Player meta: description: The official api.video Android Player component for api.video. [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. --- - # api.video Android Player diff --git a/sdks/player/apivideo-flutter-player.md b/sdks/player/apivideo-flutter-player.md index f5f5a843..bf24e451 100644 --- a/sdks/player/apivideo-flutter-player.md +++ b/sdks/player/apivideo-flutter-player.md @@ -1,12 +1,9 @@ --- +## THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. IF YOU NEED TO CHANGE THIS FILE, CREATE A PR IN THE SOURCE REPOSITORY. title: api.video Flutter Player meta: description: The official api.video Flutter Player component for api.video. [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. --- - # api.video Flutter Player diff --git a/sdks/player/apivideo-hlsjs-analytics.md b/sdks/player/apivideo-hlsjs-analytics.md index 964f29a2..7551801b 100644 --- a/sdks/player/apivideo-hlsjs-analytics.md +++ b/sdks/player/apivideo-hlsjs-analytics.md @@ -1,12 +1,9 @@ --- +## THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. IF YOU NEED TO CHANGE THIS FILE, CREATE A PR IN THE SOURCE REPOSITORY. title: api.video hls.js analytics plugin meta: description: The official api.video hls.js analytics plugin for api.video. [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. --- - # api.video hls.js analytics plugin diff --git a/sdks/player/apivideo-player-analytics.md b/sdks/player/apivideo-player-analytics.md index 5c28b195..2694e042 100644 --- a/sdks/player/apivideo-player-analytics.md +++ b/sdks/player/apivideo-player-analytics.md @@ -1,12 +1,9 @@ --- +## THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. IF YOU NEED TO CHANGE THIS FILE, CREATE A PR IN THE SOURCE REPOSITORY. title: api.video Player analytics plugin meta: description: The official api.video Player analytics plugin for api.video. [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. --- - # api.video Player analytics plugin diff --git a/sdks/player/apivideo-player-sdk.md b/sdks/player/apivideo-player-sdk.md index e1b0ddee..eff271d1 100644 --- a/sdks/player/apivideo-player-sdk.md +++ b/sdks/player/apivideo-player-sdk.md @@ -1,12 +1,9 @@ --- +## THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. IF YOU NEED TO CHANGE THIS FILE, CREATE A PR IN THE SOURCE REPOSITORY. title: api.video Player SDK meta: description: The official api.video Player SDK for api.video. [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. --- - # api.video Player SDK @@ -106,8 +103,8 @@ The PlayerSdk constructor takes 2 parameters: | showSubtitles | no (default: false) | boolean | the video subtitles are shown by default | | loop | no (default: false) | boolean | once the video is finished it automatically starts again | | playbackRate | no (default: 1) | number | the playback rate of the video: 1 for normal, 2 for x2, etc. | -| sequence | no | {start: number, end: number} | define a sequence of the video to play. The video will start at the `start` timecode and end at the `end` timecode. The timecodes are in seconds. | -| ads | no | {adTagUrl: string} | see below [ads](#ads) | +| sequence | no | \{start: number, end: number} | define a sequence of the video to play. The video will start at the `start` timecode and end at the `end` timecode. The timecodes are in seconds. | +| ads | no | \{adTagUrl: string} | see below [ads](#ads) | The sdk instance can be used to control the video playback, and to listen to player events. diff --git a/sdks/player/apivideo-react-native-player.md b/sdks/player/apivideo-react-native-player.md index 5b33af4b..df8cecd5 100644 --- a/sdks/player/apivideo-react-native-player.md +++ b/sdks/player/apivideo-react-native-player.md @@ -1,12 +1,9 @@ --- +## THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. IF YOU NEED TO CHANGE THIS FILE, CREATE A PR IN THE SOURCE REPOSITORY. title: api.video React Native Player meta: description: The official api.video React Native Player for api.video. [api.video](https://api./) 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. --- - # api.video React Native Player @@ -111,7 +108,6 @@ setVolume(volume: number): void; ### Using methods -{% raw %} ```jsx import React, { Component } from 'react'; @@ -137,7 +133,6 @@ export default class App extends Component { } ``` -{% endraw %} diff --git a/sdks/player/apivideo-react-player.md b/sdks/player/apivideo-react-player.md index 29a67a7c..ef6170af 100644 --- a/sdks/player/apivideo-react-player.md +++ b/sdks/player/apivideo-react-player.md @@ -1,12 +1,9 @@ --- +## THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. IF YOU NEED TO CHANGE THIS FILE, CREATE A PR IN THE SOURCE REPOSITORY. title: api.video React Player component meta: description: The official api.video React Player component for api.video. [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. --- - # api.video React Player component @@ -30,7 +27,6 @@ $ npm install --save @api.video/react-player You can then use the component in your app: -{% raw %} ```tsx import ApiVideoPlayer from '@api.video/react-player' @@ -38,27 +34,25 @@ import ApiVideoPlayer from '@api.video/react-player' ``` -{% endraw %} -## Documentation + +## Documentation ### Properties #### Settings The following properties are used to configure the player. The value of each of these properties can be changed at any time during the playback. - + | Property | Mandatory | Type | Description | Default | | ------------------- | --------- | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------- | --------- | -| video | **yes** | {
  id: string;
  live?: boolean;
  token?: string;
} | `id`: id of the video to play
`token` (optional): secret video token
`live` (optional): true for live videos | | -| style | no | React.CSSProperties | CSS style to apply to the player container | {} | +| video | **yes** | \{id: string;live?: boolean; token?: string;} | `id`: id of the video to play, `token` (optional): secret video token, `live` (optional): true for live videos | | +| style | no | React.CSSProperties | CSS style to apply to the player container | \{} | | autoplay | no | boolean | Define if the video should start playing as soon as it is loaded | false | -| muted | no | boolean | The video is muted | false | -| metadata | no | { [key: string]: string } | Object containing [metadata](https://api.video/blog/tutorials/dynamic-metadata/) (see **example** below) | {} | -| hidePoster | no | boolean | Weither if the poster image displayed before the first play of the video should be hidden | false | -| chromeless | no | boolean | Chromeless mode: all controls are hidden | false | +| muted | no | boolean | video | **yes** | \{id: string;live?: boolean; token?: string;} | `id`: id of the video to play, `token` (optional): secret video token, `live` (optional): true for live videos | | | Chromeless mode: all controls are hidden | false | | loop | no | boolean | Once the video is finished it automatically starts again | false | | hideTitle | no | boolean | The video title is hidden | false | +| hideTitle | no | boolean | The video title is hidden | false | | playbackRate | no | number | The playback rate of the video: 1 for normal, 2 for x2, etc. | 1 | | showSubtitles | no | boolean | Determine if the video subtitles should be displayed | false | | volume | no | number | The audio volume. From 0 to 1 (0 = muted, 1 = 100%) | 1 | @@ -67,7 +61,7 @@ The following properties are used to configure the player. The value of each of | responsive | no | boolean | Weither if the player shoulb be responsive. See below [responsiveness](#responsiveness) | false | | videoStyleObjectFit | no | "contain" \| "cover" \| "fill" \| "none" \| "scale-down" | The `object-fit` CSS value of the video tag | undefined | | videoStyleTransform | no | string | The `transform` CSS value of the video tag (examples: "rotateY(180deg)") | undefined | -| ads | no | {adTagUrl: string} | see below [ads](#ads) | | +| ads | no | \{adTagUrl: string} | see below [ads](#ads) | | ##### Controls @@ -76,7 +70,7 @@ The `controls` property let you decide wich controls should be displayed on the Examples -{% raw %} + ```tsx {/* default: all controls are displayed */} ``` -{% endraw %} ##### Player theme @@ -103,7 +96,7 @@ The `theme` property let you customize the color of some elements on the player. Example -{% raw %} + ```tsx { /* display the text in blue and the progress bar in red */} ``` -{% endraw %} ##### Ads Ads can be displayed in the player. To do so, you need to pass the `ads` option to the sdk constructor. In the `ads` object, pass the `adTagUrl` property with the url of the ad tag. The ad tag must be a VAST 2.0 or 3.0 url. For more information about VAST, check the [IAB documentation](https://www.iab.com/guidelines/vast/). @@ -128,7 +120,6 @@ With `responsive={true}`, the player height will be automatically set to match t Example -{% raw %} ```tsx { /* the player width is 160px and response is true: if the video in a 16/9 one, the height of the player will be automatically set to 90px (160 / (16/9)) */ } ``` -{% endraw %} #### Callbacks @@ -153,7 +143,7 @@ Example | onMouseEnter | () => void | Called when the mouse enter in the player area | | onMouseLeave | () => void | Called when the mouse leave the player area | | onPlayerResize | () => void | Called when a `resize` event is triggered | -| onQualityChange | (resolution: { height: number, width: number }) => void | Called when the quality of the video changes. The new quality is provided | +| onQualityChange | (resolution: \{ height: number, width: number }) => void | Called when the quality of the video changes. The new quality is provided | | onVideoSizeRatioChange | (ratio: number) => void | Called when the size ratio of the video changes (ie. when a new video is loaded). The new ratio is provided | | onRateChange | () => void | Called when the playback rate changes | | onReady | () => void | Called when a `ready` event is triggered | @@ -164,7 +154,7 @@ Example | onVolumeChange | (volume: number) => void | Called when the volume changes. The volume is provided. | | onDurationChange | (duration: number) => void | Called when the duration of the video change. The duration is provided | -### Methods +### Methods | Method | Description | | ---------------------------- | --------------------------------------------------------------------------------------------------- | @@ -184,7 +174,6 @@ Example To play a [private video](https://api.video/blog/tutorials/tutorial-private-videos/), add the video view token in the video attribute: -{% raw %} ```tsx // ... ``` -{% endraw %} #### Defining metadata -{% raw %} ```tsx // ... ``` -{% endraw %} #### Define your own controls -{% raw %} ```tsx const playerRef = useRef(null); @@ -224,4 +209,3 @@ return ``` -{% endraw %} diff --git a/sdks/player/apivideo-swift-player-analytics.md b/sdks/player/apivideo-swift-player-analytics.md index 3ab30000..b07352d2 100644 --- a/sdks/player/apivideo-swift-player-analytics.md +++ b/sdks/player/apivideo-swift-player-analytics.md @@ -1,12 +1,9 @@ --- +## THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. IF YOU NEED TO CHANGE THIS FILE, CREATE A PR IN THE SOURCE REPOSITORY. title: api.video Swift Player analytics plugin meta: description: The official api.video Swift Player analytics plugin for api.video. [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. --- - # api.video Swift Player analytics plugin diff --git a/sdks/player/apivideo-swift-player.md b/sdks/player/apivideo-swift-player.md index 1b3d9050..fba9a2d3 100644 --- a/sdks/player/apivideo-swift-player.md +++ b/sdks/player/apivideo-swift-player.md @@ -1,12 +1,9 @@ --- +## THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. IF YOU NEED TO CHANGE THIS FILE, CREATE A PR IN THE SOURCE REPOSITORY. title: api.video Swift Player meta: description: The official api.video Swift Player component for api.video. [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. --- - # api.video Swift Player diff --git a/sdks/player/apivideo-videojs-analytics.md b/sdks/player/apivideo-videojs-analytics.md index 810b3aec..449ba5ca 100644 --- a/sdks/player/apivideo-videojs-analytics.md +++ b/sdks/player/apivideo-videojs-analytics.md @@ -1,12 +1,9 @@ --- +## THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. IF YOU NEED TO CHANGE THIS FILE, CREATE A PR IN THE SOURCE REPOSITORY. title: api.video video.js analytics plugin meta: description: The official api.video video.js analytics plugin for api.video. [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. --- - # api.video video.js analytics plugin diff --git a/sdks/security/README.md b/sdks/security/README.md index 5ef2f061..3e047745 100644 --- a/sdks/security/README.md +++ b/sdks/security/README.md @@ -44,10 +44,9 @@ Delete unneeded API keys to minimize exposure to attacks. ## Securing the API keys on the application [Not recommended] -{% capture content %} -api.video highly recommend to avoid storing the API keys on the application side at all cost. Even if you take steps to obfuscate your API keys on the application, your application is still prone to security threats -{% endcapture %} -{% include "_partials/callout.html" kind: "warning", content: content %} + +api.video highly recommend to avoid storing the API keys on the application side at all cost. Even if you take steps to obfuscate your API keys on the application, your application is still prone to security threats. + Obfuscation transforms the key into a form that isn't immediately readable. However, it's crucial to understand that obfuscation is not foolproof. It merely makes the task of key retrieval more challenging, but not impossible. Determined malicious actors with advanced skills can still de-obfuscate the key. Think of obfuscation as an added layer of security, not a standalone solution. diff --git a/sdks/vod/README.md b/sdks/vod/README.md index c1a645fb..60177641 100644 --- a/sdks/vod/README.md +++ b/sdks/vod/README.md @@ -1,57 +1,136 @@ --- title: VOD SDKs -hide_side_table_of_contents: true +toc: false +breadcrumbs: false meta: description: api.video uploader and upstream SDKs for TypeScript, Flutter, iOS Swift, and Android Kotlin. --- +
+ # VOD SDK catalog +
+ ## Uploader SDKs Enable users to upload videos from your application. ### Web -
- -{% include "_partials/hagrid-item.md" title: "TypeScript", image: "/_assets/icons/sdk_icons/typescript.svg", subtitle: "Uploader", link: "././apivideo-typescript-uploader.md" %} - -{% include "_partials/hagrid-item.md" title: "Flutter", image: "/_assets/icons/sdk_icons/flutter.svg", subtitle: "Uploader", link: "././apivideo-flutter-uploader.md" %} - -
- -## Mobile - -
- -{% include "_partials/hagrid-item.md" title: "React Native", image: "/_assets/icons/sdk_icons/react_native.svg", subtitle: "Uploader", link: "././apivideo-react-native-uploader.md" %} + + + + ![TypeScript](/_assets/icons/sdk_icons/typescript.svg) + + + TypeScript\ + Uploader + + + + + + + ![Flutter](/_assets/icons/sdk_icons/flutter.svg) + + + Flutter\ + Uploader + + + + -{% include "_partials/hagrid-item.md" title: "Flutter", image: "/_assets/icons/sdk_icons/flutter.svg", subtitle: "Uploader", link: "././apivideo-flutter-uploader.md" %} - -{% include "_partials/hagrid-item.md" title: "Swift", image: "/_assets/icons/sdk_icons/Swift.svg", subtitle: "Uploader", link: "././apivideo-swift-uploader.md" %} - -{% include "_partials/hagrid-item.md" title: "Android", image: "/_assets/icons/sdk_icons/Android.svg", subtitle: "Uploader", link: "././apivideo-android-uploader.md" %} - -
+### Mobile + + + + ![React Native](/_assets/icons/sdk_icons/react_native.svg) + + + React Native\ + Uploader + + + + + + + ![Flutter](/_assets/icons/sdk_icons/flutter.svg) + + + Flutter\ + Uploader + + + + + + + ![Swift](/_assets/icons/sdk_icons/Swift.svg) + + + Swift\ + Uploader + + + + + + + ![Android](/_assets/icons/sdk_icons/Android.svg) + + + Android\ + Uploader + + + + ## Upstream web SDKs Enable your users to simultaneously create and upload video & audio using these SDKs. ### Web -
-{% include "_partials/hagrid-item.md" title: "TypeScript", image: "/_assets/icons/sdk_icons/typescript.svg", subtitle: "Media recorder", link: "././apivideo-typescript-media-recorder.md" %} - -{% include "_partials/hagrid-item.md" title: "TypeScript", image: "/_assets/icons/sdk_icons/typescript.svg", subtitle: "Media stream composer", link: "././apivideo-typescript-media-stream-composer.md" %} - -
+ + + + ![TypeScript](/_assets/icons/sdk_icons/typescript.svg) + + + TypeScript\ + Media recorder + + + + + + + ![TypeScript](/_assets/icons/sdk_icons/typescript.svg) + + + TypeScript\ + Media stream composer + + + + ### Mobile -
- -{% include "_partials/hagrid-item.md" title: "Android", image: "/_assets/icons/sdk_icons/Android.svg", subtitle: "Upstream", link: "././apivideo-android-upstream.md" %} -
\ No newline at end of file + + + + ![Android](/_assets/icons/sdk_icons/Android.svg) + + + Android\ + Upstream + + + + \ No newline at end of file diff --git a/sdks/vod/apivideo-android-uploader.md b/sdks/vod/apivideo-android-uploader.md index de1f3af8..9c77fd9e 100644 --- a/sdks/vod/apivideo-android-uploader.md +++ b/sdks/vod/apivideo-android-uploader.md @@ -1,12 +1,9 @@ --- +## THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT! IF YOU NEED TO CHANGE THIS FILE, CREATE A PR IN THE SOURCE REPOSITORY. title: Android video uploader meta: description: The official Android video uploader for api.video. [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. --- - # api.video Android video uploader @@ -167,7 +164,7 @@ val videosApi = VideosApi("YOUR_API_KEY", Environment.PRODUCTION) Method | HTTP request | Description ------------- | ------------- | ------------- -[**upload**](https://github.com/apivideo/api.video-android-uploader/blob/main/docs/VideosApi.md#upload) | **POST** /videos/{videoId}/source | Upload a video +[**upload**](https://github.com/apivideo/api.video-android-uploader/blob/main/docs/VideosApi.md#upload) | **POST** /videos/\{videoId}/source | Upload a video [**uploadWithUploadToken**](https://github.com/apivideo/api.video-android-uploader/blob/main/docs/VideosApi.md#uploadWithUploadToken) | **POST** /upload | Upload with an delegated upload token diff --git a/sdks/vod/apivideo-android-upstream.md b/sdks/vod/apivideo-android-upstream.md index 4fe1cdb2..02d21079 100644 --- a/sdks/vod/apivideo-android-upstream.md +++ b/sdks/vod/apivideo-android-upstream.md @@ -1,12 +1,9 @@ --- +## THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. IF YOU NEED TO CHANGE THIS FILE, CREATE A PR IN THE SOURCE REPOSITORY. title: api.video Android Upstream meta: description: The official api.video Android Upstream package for api.video. [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. --- - # api.video Android Upstream: camera + progressive upload diff --git a/sdks/vod/apivideo-flutter-uploader.md b/sdks/vod/apivideo-flutter-uploader.md index ed63d335..9ef753f8 100644 --- a/sdks/vod/apivideo-flutter-uploader.md +++ b/sdks/vod/apivideo-flutter-uploader.md @@ -1,12 +1,9 @@ --- +## THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. IF YOU NEED TO CHANGE THIS FILE, CREATE A PR IN THE SOURCE REPOSITORY. title: api.video Flutter video uploader meta: description: The official api.video Flutter video uploader for api.video. [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. --- - # api.video Flutter video uploader diff --git a/sdks/vod/apivideo-react-native-uploader.md b/sdks/vod/apivideo-react-native-uploader.md index 7f8d8bc6..af3fd367 100644 --- a/sdks/vod/apivideo-react-native-uploader.md +++ b/sdks/vod/apivideo-react-native-uploader.md @@ -1,12 +1,9 @@ --- +## THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. IF YOU NEED TO CHANGE THIS FILE, CREATE A PR IN THE SOURCE REPOSITORY. title: api.video React Native video uploader meta: description: The official api.video React Native video uploader for api.video. [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. --- - # api.video React Native video uploader diff --git a/sdks/vod/apivideo-swift-uploader.md b/sdks/vod/apivideo-swift-uploader.md index fda1733d..b856674f 100644 --- a/sdks/vod/apivideo-swift-uploader.md +++ b/sdks/vod/apivideo-swift-uploader.md @@ -1,12 +1,9 @@ --- +## THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. IF YOU NEED TO CHANGE THIS FILE, CREATE A PR IN THE SOURCE REPOSITORY. title: Swift video uploader meta: description: The official Swift video uploader for api.video. [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. --- - # api.video Swift video uploader @@ -78,7 +75,7 @@ VideosAPI Method | HTTP request | Description ------------- | ------------- | ------------- -[**upload**](https://github.com/apivideo/api.video-swift-uploader/blob/main/docs/VideosAPI.md#upload) | **POST** /videos/{videoId}/source | Upload a video +[**upload**](https://github.com/apivideo/api.video-swift-uploader/blob/main/docs/VideosAPI.md#upload) | **POST** /videos/\{videoId}/source | Upload a video [**uploadWithUploadToken**](https://github.com/apivideo/api.video-swift-uploader/blob/main/docs/VideosAPI.md#uploadWithUploadToken) | **POST** /upload | Upload with an delegated upload token diff --git a/sdks/vod/apivideo-typescript-media-recorder.md b/sdks/vod/apivideo-typescript-media-recorder.md index 04bde1e8..5b1c6aee 100644 --- a/sdks/vod/apivideo-typescript-media-recorder.md +++ b/sdks/vod/apivideo-typescript-media-recorder.md @@ -1,12 +1,9 @@ --- +## THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. IF YOU NEED TO CHANGE THIS FILE, CREATE A PR IN THE SOURCE REPOSITORY. title: api.video TypeScript Media Recorder meta: description: The official api.video TypeScript Media Recorder for api.video. [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. --- - # api.video TypeScript Media Recorder diff --git a/sdks/vod/apivideo-typescript-media-stream-composer.md b/sdks/vod/apivideo-typescript-media-stream-composer.md index 02463cff..7dfc9ee3 100644 --- a/sdks/vod/apivideo-typescript-media-stream-composer.md +++ b/sdks/vod/apivideo-typescript-media-stream-composer.md @@ -1,12 +1,9 @@ --- +## THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. IF YOU NEED TO CHANGE THIS FILE, CREATE A PR IN THE SOURCE REPOSITORY. title: api.video TypeScript Media Composer meta: description: The official api.video TypeScript Media Composer for api.video. [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. --- - # api.video TypeScript Media Composer @@ -132,7 +129,7 @@ When you load an image onto the composition, the origin of the image must be the | mute | boolean | false | Whether the stream should be muted or not | | hidden | boolean | false | Whether the stream should be hidden or not | opacity | number | 100 | Opacity of the stream (from 0 to 100) | -| onClick | (streamId: string, event: { x: number; y: number; }) => void | undefined | A callback function that will be called when the stream is clicked | +| onClick | (streamId: string, event: \{ x: number; y: number; }) => void | undefined | A callback function that will be called when the stream is clicked | **Example (screen capture)** diff --git a/sdks/vod/apivideo-typescript-uploader.md b/sdks/vod/apivideo-typescript-uploader.md index b2622e61..5bfa4dc9 100644 --- a/sdks/vod/apivideo-typescript-uploader.md +++ b/sdks/vod/apivideo-typescript-uploader.md @@ -1,12 +1,9 @@ --- +## THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. IF YOU NEED TO CHANGE THIS FILE, CREATE A PR IN THE SOURCE REPOSITORY. title: api.video TypeScript video uploader meta: description: The official api.video TypeScript video uploader for api.video. [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. --- - # api.video TypeScript video uploader diff --git a/structure.yaml b/structure.yaml deleted file mode 100644 index 827433dd..00000000 --- a/structure.yaml +++ /dev/null @@ -1,52 +0,0 @@ -tabs: - - label: Get started - subtabs: - - label: Get started - path: / - - label: VOD - subtabs: - - label: VOD - path: /vod/ - - label: Live streaming - subtabs: - - label: Live streaming - path: /live-streaming/ - - label: Delivery & analytics - subtabs: - - label: Delivery & analytics - path: /delivery-analytics/ - - label: API Reference - subtabs: - - label: References - path: /reference/ - - label: Libraries & SDKs - subtabs: - - label: Overview - path: /sdks/ - - label: Security best practices - path: /sdks/security/ - - label: API clients - path: /sdks/api-clients/ - icon: - set: lucide - name: square-code - - label: VOD - path: /sdks/vod/ - icon: - set: lucide - name: video - - label: Live streaming - path: /sdks/livestream/ - icon: - set: lucide - name: radio-tower - - label: Delivery & analytics - path: /sdks/player/ - icon: - set: lucide - name: monitor-play - - label: No-code solutions - path: /sdks/nocode/ - icon: - set: lucide - name: blocks \ No newline at end of file diff --git a/vod/README.md b/vod/README.md index affc7063..8e16cc1c 100644 --- a/vod/README.md +++ b/vod/README.md @@ -1,35 +1,86 @@ --- title: VOD overview -hide_side_table_of_contents: true +toc: false +breadcrumbs: false meta: description: This page serves as a foundational guide to integrating api.video's solutions for video on demand (VOD). --- -

- - What is VOD? -

+
-

- api.video's hosting service enables you to upload and store video files, which can then be easily embedded and shared across various devices and platforms. The platform automatically transcodes videos into multiple formats, resolutions, and bitrates, ensuring that the video content can be played on any device with any internet connection. api.video's transcoding and delivery is one of the fastest on the market. -
-

+# What is VOD? -
+ api.video's hosting service enables you to upload and store video files, which can then be easily embedded and shared across various devices and platforms. The platform automatically transcodes videos into multiple formats, resolutions, and bitrates, ensuring that the video content can be played on any device with any internet connection. api.video's transcoding and delivery is one of the fastest on the market. -
+
-# Start working with api.video +--- -
+## Start working with api.video + + + + ![What is a video object?](/_assets/icons/video-object.svg) + + **What is a video object?**\ + Learn about the basic building block of api.video's VOD solution. + + [Learn more ›](/vod/video-object) + + + ![VOD quickstart](/_assets/icons/vod-quickstart.svg) + + **VOD quickstart**\ + Get up to speed about the concept of VOD through building a video uploader and a video listing service in this quickstart guide. + + [Learn more ›](/vod/get-started-in-5-minutes) + + + ![Templates & demos](/_assets/icons/solutions-demos.svg) + + **Templates & demos**\ + Try api.video's interactive VOD demos, and build your own app with our free repository templates. + + [Learn more ›](/vod/demos-template-overview) + + + ![Video upload](/_assets/icons/video-ingestion.svg) + + **Video upload**\ + Understand the different way you can manage video ingestion using api.video. + + [Learn more ›](/vod/upload-a-video-regular-upload) + + + ![Using tokens](/_assets/icons/tokens.jpg) + + **Using tokens**\ + Learn about how api.video offers different authentication methods for video upload using tokens. + + [Learn more ›](/vod/delegated-upload-tokens) + + + ![Video management basics](/_assets/icons/video-object-management.svg) + + **Video management basics**\ + Check out this guide to understand the different operations you can use in api.video's solutions for VOD. + + [Learn more ›](/vod/video-management-basics) + + + ![VOD SDKs](/_assets/icons/videos-sdks.svg) + + **VOD SDKs**\ + Check out api.video's dedicated libraries and SDKs for video on demand. + + [Learn more ›](/sdks/vod) + + + ![No-code solutions for VOD](/_assets/icons/no-code.svg) + + **No-code solutions for VOD**\ + Build your solution without code using api.video's supported no-code plugins. -
-{% include "_partials/content-card.md" label: "What is a video object?", icon: "/_assets/icons/video-object.svg", description: "Learn about the basic building block of api.video's VOD solution.", link: "/vod/video-object" %} -{% include "_partials/content-card.md" label: "VOD quickstart", icon: "/_assets/icons/vod-quickstart.svg", description: "Get up to speed about the concept of VOD through building a video uploader and a video listing service in this quickstart guide.", link: "/vod/get-started-in-5-minutes" %} -{% include "_partials/content-card.md" label: "Templates & demos", icon: "/_assets/icons/solutions-demos.svg", description: "Try api.video's interactive VOD demos, and build your own app with our free repository templates.", link: "/vod/demos-template-overview" %} -{% include "_partials/content-card.md" label: "Video upload", icon: "/_assets/icons/video-ingestion.svg", description: "Understand the different way you can manage video ingestion using api.video.", link: "/vod/upload-a-video-regular-upload" %} -{% include "_partials/content-card.md" label: "Using tokens", icon: "/_assets/icons/tokens.jpg", description: "Learn about how api.video offers different authentication methods for video upload using tokens.", link: "/vod/delegated-upload-tokens" %} -{% include "_partials/content-card.md" label: "Video management basics", icon: "/_assets/icons/video-object-management.svg", description: "Check out this guide to understand the different operations you can use in api.video's solutions for VOD.", link: "/vod/video-management-basics" %} -{% include "_partials/content-card.md" label: "VOD SDKs", icon: "/_assets/icons/videos-sdks.svg", description: "Check out api.video's dedicated libraries and SDKs for video on demand.", link: "/sdks/vod" %} -{% include "_partials/content-card.md" label: "No-code solutions for VOD", icon: "/_assets/icons/no-code.svg", description: "Build your solution without code using api.video's supported no-code plugins.", link: "/sdks/nocode" %} -
\ No newline at end of file + [Learn more ›](/sdks/nocode) +
+
\ No newline at end of file diff --git a/vod/add-a-permanent-watermark.md b/vod/add-a-permanent-watermark.md index fbb4ae01..453bb166 100644 --- a/vod/add-a-permanent-watermark.md +++ b/vod/add-a-permanent-watermark.md @@ -21,14 +21,12 @@ Overall, watermarks can be an effective way to protect intellectual property, es Watermarks are uploaded separately from videos. You will need to upload the watermarks you want to utilize beforehand, after the watermark is uploaded it is attached to a video object, and eventually as soon as the video is uploaded to the object, the watermark is embedded in the video -{% capture content %} + - You can only add watermarks when creating a new video object. - You cannot delete or edit watermarks after you add them to a video. -{% endcapture %} -{% include "_partials/callout.html" kind: "warning", content: content %} + - -{% include "_partials/dark-light-image.md" dark: "/_assets/vod/add-watermarks/watermark-dark.svg", light: "/_assets/vod/add-watermarks/watermark-light.svg", alt: "A diagram that shows the process of creating and applying a watermark to a video object" %} +A diagram that shows the process of creating and applying a watermark to a video object ## Supported Image formats @@ -60,7 +58,7 @@ The clients offered by api.video include: To install your selected client, do the following: -{% capture samples %} + ```go go get github.com/apivideo/api.video-go-client ``` @@ -82,8 +80,8 @@ Using Nuget Install-Package ApiVideo ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + + ### Upload a watermark @@ -91,14 +89,13 @@ First step, would be to upload a watermark. It is recommended to use images that When the upload is complete, the response from the watermark endpoint will be the watermark id. You can either store it on your end or you can consume it from the list of watermarks. -{% capture content %} + api.video will only store the watermark id and the time and date it was uploaded. If you would like to reference the watermark to a specific image name, you would have to do that on your end. -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + More information can be found on the [API reference page](/reference/api/Watermarks) -{% capture samples %} + ```curl curl --request POST \ --url https://ws.api.video/watermarks \ @@ -196,11 +193,13 @@ file = open("video_to_watermark.mp4", "rb") video_response = videos_api.upload(video_id, file) print("Uploaded Video", video_response) ``` + ### List all watermarks You can list all of the watermarks that you have uploaded, while also sorting by date or id. + ```curl curl --request GET \ --url https://ws.api.video/watermarks \ @@ -279,8 +278,7 @@ watermark_api = WatermarksApi(client) response = watermark_api.list() print(response) ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + More information about the endpoint can be found [here](/reference/api/Watermarks#list-all-watermarks) @@ -301,7 +299,7 @@ The watermark property in the [video object creation payload](/reference/api/Wat | **height** | _string_ | Height of the watermark-image relative to the video if expressed in %. Otherwise a fixed height. _NOTE: To keep the watermark aspect ratio use the initial image height_ | | **opacity** | _string_ | Opacity expressed in % only to specify the degree of the watermark-image transparency with the video. | -{% capture samples %} + ```curl curl --request POST \ --url https://ws.api.video/videos \ @@ -332,7 +330,8 @@ from apivideo.model.bad_request import BadRequest from apivideo.model.video import Video from pprint import pprint -## Enter a context with an instance of the API client +Enter a context with an instance of the API client + with apivideo.AuthenticatedApiClient(__API_KEY__) as api_client: # Create an instance of the API class api_instance = videos_api.VideosApi(api_client) @@ -375,14 +374,13 @@ with apivideo.AuthenticatedApiClient(__API_KEY__) as api_client: except apivideo.ApiException as e: print("Exception when calling VideosApi->create: %s\n" % e) ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + ### Delete a watermark To delete a watermark, send the unique watermark ID to the [watermarks endpoint](/reference/api/Watermarks#delete-a-watermark). Deletion is permanent, you will not be able to retrieve the watermark after completing this request. -{% capture samples %} + ```curl curl --request DELETE \ --url https://ws.api.video/watermarks/watermark_1BhfLVwM8eEdaN9XFSnxCS \ @@ -428,8 +426,7 @@ watermarks_api = WatermarksApi(client) response = watermarks_api.delete(watermark) print(response) ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + ## API documentation diff --git a/vod/add-a-thumbnail-to-your-video.md b/vod/add-a-thumbnail-to-your-video.md index 7ad102a7..a46841cf 100644 --- a/vod/add-a-thumbnail-to-your-video.md +++ b/vod/add-a-thumbnail-to-your-video.md @@ -13,10 +13,9 @@ For videos or recorded live streams, api.video offers you two ways to add a thum This guide walks you through both methods for setting up a thumbnail for videos. -{% capture content %} + If you want to add a thumbnail to a live stream, the only available method is to upload a picture you choose. You can read more about this in the [Add or delete a live stream thumbnail](/live-streaming/add-or-delete-a-live-stream-thumbnail) guide. -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + ## API documentation @@ -27,7 +26,7 @@ If you want to add a thumbnail to a live stream, the only available method is to You have the option to choose a photo that's in `.jpg`, `.png`, or `.webp` format. It must be 8MB or smaller. To send your file, add the path to where it's stored and open it in binary. Then you can upload it with the client of your choice or see how it works with cURL. -{% capture samples %} + ```curl curl --request POST \ --url https://ws.api.video/videos/vi61tikT4GAAB29KehMKyqX3/thumbnail \ @@ -134,14 +133,13 @@ videos_api = VideosApi(client) response = videos_api.upload_thumbnail(video_id, file) print(response) ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + ## Pick a thumbnail If you don't want to create a custom thumbnail image for your video, you can select one from the video itself. All you need to do is choose the timecode to the frame you want to be the thumbnail. The format is ISO 8601, and represents - HH:MM:SS:mm - hours, minutes, seconds, milliseconds. -{% capture samples %} + ```curl curl --request PATCH \ --url https://ws.api.video/videos/viZxSTFgXZVjFnFCUo363Ie/thumbnail \ @@ -248,8 +246,7 @@ video_thumbnail_pick_payload = { response = videos_api.pick_thumbnail(video_id, video_thumbnail_pick_payload) print(response) ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + ## Add a thumbnail from the dashboard diff --git a/vod/add-captions.md b/vod/add-captions.md index 15d9e6a0..ae322dcf 100644 --- a/vod/add-captions.md +++ b/vod/add-captions.md @@ -15,7 +15,7 @@ The captions are uploaded per language. You can upload different captions for ea | Field | Type | | | :------- | :----- | :----------------------------------------------------------------------------------------- | | videoId | String | The unique identifier for the video you want to add a caption to. | -| language | String | A valid language identifier using IETF language tags. You can use primary subtags like `en` (English), extended subtags like `fr-CA` (French, Canada), or region subtags like `zh-Hans-CN` (Simplified Chinese used in the PRC).
- This parameter **only accepts dashes for separators**, for example `fr-CA`. If you use a different separator in your request, the API returns an error.
- When the value in your request does not match any covered language, the API returns an error.
- You can find the list of supported language tags [here](#supported-caption-language-tags). | +| language | String | A valid language identifier using IETF language tags. You can use primary subtags like `en` (English), extended subtags like `fr-CA` (French, Canada), or region subtags like `zh-Hans-CN` (Simplified Chinese used in the PRC).

- This parameter **only accepts dashes for separators**, for example `fr-CA`. If you use a different separator in your request, the API returns an error.

- When the value in your request does not match any covered language, the API returns an error.

- You can find the list of supported language tags [here](#supported-caption-language-tags). | | file | File | The video text track in VTT format only. | ## Supported caption file formats @@ -711,12 +711,11 @@ WebVTT is a format for displaying timed text tracks for captions or chapters. It To ensure that you use the correct formatting in your VTT file, api.video recommends using a parser to check for errors before you upload the file. [Click here](https://w3c.github.io/webvtt.js/parser.html) for a free online VTT parser. -{% capture content %} + Incorrect VTT file formatting The api.video API does not return an error for incorrectly formatted VTT files. The response from the API will be `200`, however, the captions will not be displayed. -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + The VTT file has an extension `.vtt` and the format is as in the example below: diff --git a/vod/backup-and-cold-storage.md b/vod/backup-and-cold-storage.md index 747da5c9..46f9e335 100644 --- a/vod/backup-and-cold-storage.md +++ b/vod/backup-and-cold-storage.md @@ -1,11 +1,17 @@ --- title: api.video backup and cold storage +toc: false +breadcrumbs: false meta: description: Backup your uploaded videos to your preferred provider. --- +
+ # Backup & Cold Storage +
+ It's important to feel safe and know that the content you've uploaded is backed up. While api.video got you covered by backing up the videos and having a disaster recovery plan, we understand that you might want to take an extra step and have your own backup. There are also cases where you would only want to use api.video's transcoding power but then host your transcoded videos on a different storage solution. @@ -14,17 +20,43 @@ With this in mind, we've created ways for you to backup your already transcoded In this section, you'll be able to find guides on how to backup the videos hosted on api.video to your Azure Storage account, Amazon S3 and other storage providers. - -{% include "_partials/dark-light-image.md" dark: "/_assets/vod/backup-and-cold-storage/backup-and-cold-storage-dark.svg", light: "/_assets/vod/backup-and-cold-storage/backup-and-cold-storage-light.svg", alt: "A diagram that shows the process of backing up videos on different hosting solutions" %} +A diagram that shows the process of backing up videos on different hosting solutions Below, you will find the scripts that are available for your disposale in order to backup your videos from api.video. -## Available Scripts - -
- -{% include "_partials/hagrid-item.md" title: "Amazon", image: "/_assets/get-started/migration-guide/Amazon-S3-Logo.svg", subtitle: "S3", link: "./amazon-cold-storage-backup.md" %} -{% include "_partials/hagrid-item.md" title: "Google", image: "/_assets/get-started/migration-guide/Google-Storage-Logo.png", subtitle: "Storage account", link: "./google-cold-storage-backup.md" %} -{% include "_partials/hagrid-item.md" title: "Azure", image: "/_assets/get-started/migration-guide/Microsoft_Azure.svg", subtitle: "Storage account", link: "./azure-cold-storage-backup.md" %} - -
+## Available scripts + + + + + Azure + + + Azure\ + Storage account + + + + + + + Amazon + + + Amazon\ + S3 + + + + + + + Google Cloud Storage + + + Google\ + Storage account + + + + \ No newline at end of file diff --git a/vod/clip-a-video.md b/vod/clip-a-video.md index c3d57fad..692d9a7f 100644 --- a/vod/clip-a-video.md +++ b/vod/clip-a-video.md @@ -10,8 +10,7 @@ In some cases, you just need to upload a smaller piece of a video, but you would [api.video](http://api.video) allows you to clip a video to upload only specific parts of the video. You will be able to specify the start and end time of the clip before you upload the source video to api.video. -{% include "_partials/dark-light-image.md" dark: "/_assets/vod/video-clip/video-clipping-dark.svg", light: "/_assets/vod/video-clip/video-clipping-light.svg", alt: "A diagram that shows the process of clipping a video" %} - +A diagram that shows the process of clipping a video ## How does video clipping work? @@ -29,7 +28,8 @@ For this example, let’s assume that we have a video file that is `00:10:00` in Once you’ve determined what video you would like to clip and trim, you need to create a [video object](https://docs.api.video/vod/video-object) with the `clip` parameter. -{% capture samples %} + + ```javascript // Documentation: https://github.com/apivideo/api.video-nodejs-client/blob/main/doc/api/VideosApi.md#create @@ -163,13 +163,11 @@ public class Example { } } ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + Once the object is created, all you have to do is just upload the video to the object: -{% capture samples %} - + ```javascript const file = './my-video.mp4'; // The path to the video you would like to upload. The path must be local. If you want to use a video from an online source, you must use the "/videos" endpoint and add the "source" parameter when you create a new video. const videoId = video.id @@ -213,7 +211,6 @@ File file = new File("/path/to/file"); // The path to the video you would like t } } ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + Once the video is uploaded and trancoded it will only include the segment of the clip that you have configured. \ No newline at end of file diff --git a/vod/creating-and-managing-chapters.md b/vod/creating-and-managing-chapters.md index e54a7d6f..6381f2fc 100644 --- a/vod/creating-and-managing-chapters.md +++ b/vod/creating-and-managing-chapters.md @@ -32,12 +32,11 @@ WebVTT is a format for displaying timed text tracks for captions or chapters. It To ensure that you use the correct formatting in your VTT file, api.video recommends using a parser to check for errors before you upload the file. [Click here](https://w3c.github.io/webvtt.js/parser.html) for a free online VTT parser. -{% capture content %} + **Incorrect VTT file formatting** The api.video API does not return an error for incorrectly formatted VTT files. The response from the API will be `200`, however, the captions will not be displayed. -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + ## API documentation @@ -66,7 +65,7 @@ The clients offered by api.video include: To install your selected client, do the following: -{% capture content %} + ```go go get github.com/apivideo/api.video-go-client ``` @@ -88,8 +87,7 @@ Using Nuget Install-Package ApiVideo ``` -{% endcapture %} -{% include "_partials/code-tabs.html" samples: content %} + ## Upload a chapter @@ -98,8 +96,8 @@ To upload chapters for your video, you'll need a .VTT file containing details ab - [Adding chapters to your videos](https://api.video/blog/tutorials/video-chapters/) - [Video chapters: Using external buttons for controls](https://api.video/blog/tutorials/video-chapters/) -{% capture content %} + ```curl curl --request POST \ --url https://ws.api.video/videos/vi4k0jvEUuaTdRAEjQ4Jfrgz/chapters/en \ @@ -204,9 +202,7 @@ file = open("chapters.vtt", "rb") response = chapter_api.upload(video_id, language, file) print(response) ``` - -{% endcapture %} -{% include "_partials/code-tabs.html" samples: content %} + ## Upload a chapter using the dashboard @@ -227,8 +223,7 @@ To upload a chapter, do the following: If you just want to list all the chapters that are available to you, you can send a request with the video ID for the video you want this information for. All chapters will be returned in the response. -{% capture samples %} - + ```curl curl --request GET \ --url https://ws.api.video/videos/vi4k0jvEUuaTdRAEjQ4Jfrgz/chapters \ @@ -329,9 +324,7 @@ chapter_api = ChaptersApi(client) response = chapter_api.list(video_id) print(response) ``` - -{% endcapture %} -{% include "_partials/code-tabs.html" samples: content %} + ## List chapters using the dashboard @@ -351,8 +344,7 @@ To list all chapter files for a video, do the following: You can retrieve details about a specific chapters file by sending a request with the video ID for the video you want chapter information for, and the valid BCP 47 tag for the specific chapter file. -{% capture samples %} - + ```curl curl --request GET \ --url https://ws.api.video/videos/vi4k0jvEUuaTdRAEjQ4Jfrgz/chapters/en \ @@ -455,11 +447,7 @@ language = "en" response = chapter_api.get(video_id, language) print(response) ``` - -{% endcapture %} -{% include "_partials/code-tabs.html" content: samples %} - - + ## Show a chapter file using the dashboard @@ -476,9 +464,7 @@ To show a chapter file using the dashboard, do the following: To delete a chapter, send the unique video ID with the chapters you want to delete. Include the appropriate BCP 47 language tag. You can only have one set of chapters per tag. Deletion is permanent, so be sure it's what you want to do. -{% capture samples %} - - + ```curl curl --request DELETE \ --url https://ws.api.video/videos/vi4k0jvEUuaTdRAEjQ4Jfrgz/chapters/en \ @@ -575,10 +561,7 @@ chapter_api = ChaptersApi(client) response = chapter_api.delete(video_id, language) print(response) ``` - -{% endcapture %} -{% include "_partials/code-tabs.html" content: samples %} - + ## Delete a chapter using the dashboard diff --git a/vod/delegated-upload-tokens.md b/vod/delegated-upload-tokens.md index bd32f53d..f866f4b7 100644 --- a/vod/delegated-upload-tokens.md +++ b/vod/delegated-upload-tokens.md @@ -8,7 +8,7 @@ meta: You can upload videos using the traditional two-step process where you create a video container then upload your video into your container. You can also upload a video using a **delegated upload token**. This guide explains how to create, list, retrieve, and delete delegated upload tokens, and how to upload videos with them. -{% include "_partials/dark-light-image.md" dark: "/_assets/vod/upload-tokens/upload-token-dark.svg", light: "/_assets/vod/upload-tokens/upload-token-light.svg", alt: "A diagram that shows how delegated tokens can be used on the backend and the frontend of your app" %} +A diagram that shows how delegated tokens can be used on the backend and the frontend of your app In this type of upload, you retrieve a token from the tokens endpoint. You can then directly upload using the token upload endpoint. It's one step, and you don't provide anything except the file. You can update the metadata for the upload later. A benefit of a delegated token is that you define the TTL (time-to-live) value, so it expires only when you need it to. You can always use the token to upload. You can also create delegated tokens for others to use to do uploads. @@ -16,10 +16,9 @@ In this type of upload, you retrieve a token from the tokens endpoint. You can t * You can create as many tokens as you need. * If you do not include a TTL (time-to-live) value for a token, it lasts until you delete it. -{% capture content %} + If you want to learn about regular or progressive uploads, check out the [regular](/vod/upload-a-video-regular-upload) and [progressive](/vod/progressive-upload) video upload guides. -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + ## API documentation @@ -58,8 +57,7 @@ The clients offered by api.video include: To install your selected client, do the following: -{% capture samples %} - + ```go go get github.com/apivideo/api.video-go-client ``` @@ -81,16 +79,13 @@ Using Nuget Install-Package ApiVideo ``` - -{% endcapture %} -{% include "_partials/code-tabs.html" content: samples %} + ## Generate a token for delegated upload Use this code sample to generate a token for use with a delegated upload. You can include a TTL (time-to-live) if you like. The token will expire after exceeding the set TTL. If you don't send in a TTL, your token will last until you choose to delete it. -{% capture samples %} - + ```curl curl --request POST \ --url https://ws.api.video/upload-tokens \ @@ -192,21 +187,17 @@ tokens_api = UploadTokensApi(client) response = tokens_api.create_token(token_creation_payload) print(response) ``` - -{% endcapture %} -{% include "_partials/code-tabs.html" content: samples %} + ## Upload a video with delegated tokens -{% capture content %} + If you do a progressive upload with a delegated token, you have to include the video ID you are uploading to after it comes back from the first request. If the video you're uploading is under 200 MiB, you don't need to worry. -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + You must first create a token and get the unique token ID to do a delegated upload. Then, you include it in your request as a query parameter. In the body, you place the path to the file you want to upload. If you are uploading a file that's 200 MiB or larger, to do a progressive upload, you will need to break the file into smaller pieces (no smaller than 5 MiB). Then send a request containing the first piece of your upload. Subsequent pieces must be sent with the video ID included in the body along with the file chunk. Retrieve the video ID from the response that comes back after your first request to upload. -{% capture samples %} - + ```curl curl --request POST \ --url 'https://ws.api.video/upload?token=__TOKENIDHERE__' \ @@ -306,10 +297,8 @@ file = open(path, "rb") ## Sending file. response = videos_api.upload_with_upload_token(token, file) print(response) -© 2022 GitHub, Inc. ``` -{% endcapture %} -{% include "_partials/code-tabs.html" content: samples %} + ## Token operations @@ -317,8 +306,7 @@ print(response) If a token is compromised, or you want to see how many tokens you have, you will need to retrieve a list of them programmatically. Here is the code sample for that: -{% capture samples %} - + ```curl curl --request GET \ --url 'https://ws.api.video/upload-tokens?currentPage=1&pageSize=25' \ @@ -419,17 +407,13 @@ tokens_api = UploadTokensApi(client) response = tokens_api.list() print(response) ``` - -{% endcapture %} -{% include "_partials/code-tabs.html" content: samples %} - + ### Show details about a specific token Retrieve information about a specific token. To do this, you send a request containing the token ID for the token you need details about. -{% capture samples %} - + ```curl curl --request GET \ --url https://ws.api.video/upload-tokens/to40nBwUZJGnuW8THBZwPqtL \ @@ -526,17 +510,14 @@ tokens_api = UploadTokensApi(client) response = tokens_api.get_token(token) print(response) ``` - -{% endcapture %} -{% include "_partials/code-tabs.html" content: samples %} + ### Delete a token If you create a token that's compromised, you may want to remove it. Or, you might want to clean up how many tokens you have in general. All you need to do to delete a token is send a request containing the token ID for the token you want to remove. -{% capture samples %} - + ```curl curl --request DELETE \ --url https://ws.api.video/upload-tokens/curl%20--request%20GET%20%5C%20%20%20%20%20%20--url%20https%3A%2F%2Fws.api.video%2Fupload-tokens%2Fto40nBwUZJGnuW8THBZwPqtL%20%5C%20%20%20%20%20%20--header%20%27Accept%3A%20application%2Fjson%27%20%5C%20%20%20%20%20%20--header%20%27Authorization%3A%20Bearer%20eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpYXQiOjE2NDI4MTQxNDUuMjE2Mzc2LCJuYmYiOjE2NDI4MTQxNDUuMjE2Mzc2LCJleHAiOjE2NDI4MTc3NDUuMjE2Mzc2LCJwcm9qZWN0SWQiOiJwclJ6SUpKQTdCTHNxSGpTNDVLVnBCMSJ9.GSDqqMzBxo-wOwl9IVbOnzevm8A6LSyaR5kxCWUdkEneSU0kIdoNfhwmXZBq5QWpVa-0GIT8JR59W6npNO-ayhaXmV3LA6EQpvv0mHd_dAhg3N8T96eC0ps0YIrkmw0_Oe6iRgEDI-wJ9nc6tQWi9ybbMHi1LDBjxW4rbFlq7G59C1QZGabd14QO7uqAUUSNqHC1l42z_m7BTK1AhFiBEXmMcfW7X0VmGcaEUy7NiNda8rmq_nrdvkxgN8KHguXzxMsw_4GE_d0eQwHcZvS1q-FebI6b8AoqpoltFOZvUACCrfXH_D_UPshHuJM3apXbD2dg_zQicc8oWBHVGiobLQ%27 \ @@ -639,10 +620,7 @@ print(videos[0]['video_id']) response = videos_api.delete(videos[0]['video_id']) print(response) ``` - -{% endcapture %} -{% include "_partials/code-tabs.html" content: samples %} - + ## Conclusion diff --git a/vod/delete-a-video.md b/vod/delete-a-video.md index abb32cae..5b73e8bd 100644 --- a/vod/delete-a-video.md +++ b/vod/delete-a-video.md @@ -20,7 +20,7 @@ To delete a video, you need to do the following: 2. Send a delete request to api.video containing the ID for the video you want to delete. Be sure you want to delete the video - there is no way to retrieve the content you delete. -{% capture samples %} + ```curl curl --request DELETE \ --url https://ws.api.video/videos/viZxSTFgXZVjFnFCUo363Ie \ @@ -121,8 +121,7 @@ print(videos[0]['video_id']) response = videos_api.delete(videos[0]['video_id']) print(response) ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + ## Delete a video in the dashboard diff --git a/vod/get-started-in-5-minutes.md b/vod/get-started-in-5-minutes.md index 200a556e..9056d7b2 100644 --- a/vod/get-started-in-5-minutes.md +++ b/vod/get-started-in-5-minutes.md @@ -24,12 +24,11 @@ Navigate to the [Dashboard](https://dashboard.api.video/register) and register w All you need now is to get your API key from the dashboard. Navigate to the [API keys page](https://dashboard.api.video/project-settings/api-keys) and grab your API key from there. -{% capture content %} + **API Key Security** Make sure to reach our security recommendation to avoid exposing your API key and causing a security breach on your account. You can find the security best practices [here](/reference/README.md#security) -{% endcapture %} -{% include "_partials/callout.html" kind: "warning", content: content %} + ## Clone the front-end repo @@ -67,7 +66,7 @@ $ npm run dev The server will be running on `localhost:3000` by default -{% capture content %} + **Changing the default port** You can change the default port of 3000 to something of your liking by editing the `package.json` file and adding the custom port like so: @@ -79,8 +78,7 @@ You can change the default port of 3000 to something of your liking by editing t "start": "next start -p 3002", }, ``` -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + When you navigate to `http://localhost:3000` with your browser, you should get this screen: @@ -128,16 +126,15 @@ const ListVideoPage = (page: number) => { #### Server Hello World -{% capture content %} + **Building the backend with the language of your choice** This tutorial is designed to get you started with our client libraries, you can choose which client library you want to work with. For each example, please make sure to choose the language of your choice in the code snippet pane. -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + -Now we need to build a server that will accept the requests from our frontend. Let's build a small application sever that if taking requests on port 5500 +Now we need to build a server that will accept the requests from our frontend. Let's build a small application sever that is taking requests on port 5500 -{% capture samples %} + ```javascript $ mkdir apivideo-node-server $ cd apivideo-node-server @@ -155,10 +152,9 @@ $ cd apivideo-go-server $ touch app.go $ go mod init apivideo-go-server ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + -{% capture samples %} + ```javascript const express = require('express') const app = express() @@ -201,10 +197,7 @@ func HelloServer(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello, %s!", r.URL.Path[1:]) } ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} - - + Now we have a server that takes post requests on port `5500`. @@ -214,7 +207,7 @@ The next step is to utilize the client library that api.video is offering in ord For the server, we will need to install all the dependent libraries including the api.video client library. Run the following command in the server app folder. -{% capture samples %} + ```javascript //express server $ npm install express --save @@ -239,15 +232,14 @@ $ pip3 install flask-cors $ go get github.com/apivideo/api.video-go-client $ go get github.com/rs/cors ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + ### Adding the api.video client library Let's add the api.video client library to our server code. You can find all the available client libraries [here](/sdks/README.md) -{% capture samples %} + ```javascript const express = require('express'); const ApiVideoClient = require('@api.video/nodejs-client') @@ -284,9 +276,7 @@ func main() { http.ListenAndServe(":5500", handler) } ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} - + ### api.video client initialization @@ -294,7 +284,7 @@ The client library takes your api key, which you can [find here](https://dashboa Learn more about [Basic Authentication](/reference/basic-authentication) and [Bearer Token Authentication](/reference/disposable-bearer-token-authentication). -{% capture samples %} + ```javascript const apivideoClient = new ApiVideoClient({ apiKey: "replace with your api key" }); ``` @@ -319,15 +309,14 @@ func InitApiVideoClient() (*apivideosdk.Client) { return client } ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + ### File handler & CORS We will add a file handler library that will intake the file stream from the request form. If you are using localhost it's a good idea to add a CORS -{% capture samples %} + ```javascript const express = require('express'); const ApiVideoClient = require('@api.video/nodejs-client') @@ -381,9 +370,7 @@ func InitApiVideoClient() (*apivideosdk.Client) { } ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} - + ## api.video Uploader @@ -393,7 +380,7 @@ In this step, we will need to create a handler for the incoming POST request fro In this instance we are referring to the Videos endpoint. First we create a video object. You can find more about the endpoint [here](/reference/api/Videos#create-a-video-object) -{% capture samples %} + ```javascript app.post('/upload', upload.single('file'), async (req, res, next) => { // Grab the file from the request @@ -464,13 +451,12 @@ func UploadVideoToapivideo(videoId *apivideosdk.Video, videoFile *os.File) map[s return resVideoId } ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + Next up, after we created the video object, we can now upload the actual video file. So add these lines after the video creation. -{% capture samples %} + ```javascript // create a video object first const video = await apivideoClient.videos.create(videoCreationPayload); @@ -490,8 +476,7 @@ res.json(uploadVideoRes.videoId); # return the video id to the frontend return jsonify(uploaded_video_id) ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + In this step we are leveraging the upload a video endpoint, this endpoint enables you not only to [upload a video](/reference/api/Videos#upload-a-video), but also to upload a video from a [url source](/vod/upload-from-source), or do a [progressive video upload](/vod/progressive-upload). @@ -500,7 +485,7 @@ In this step we are leveraging the upload a video endpoint, this endpoint enable Let's add the upload status, so we will be able to indicate to the user that the video has been uploaded, or the upload is in progress. Add another POST request handler function that will intake the video id and return the video status -{% capture samples %} + ```javascript app.post('/uploadStatus', async (req, res) => { // Get the video id from the request @@ -523,8 +508,7 @@ def video_upload_status(): # return the jsonified status payload to the frontend return video_upload_status_jsonified ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + We've leveraged the `/status` endpoint in this step, you can find more information about the endpoint [here](/reference/api/Videos#retrieve-video-status-and-details) @@ -533,7 +517,7 @@ We've leveraged the `/status` endpoint in this step, you can find more informati The last thing we need to get the list of videos and assets. Just add another request handler that will return a list of 10 videos per page from the workspace -{% capture samples %} + ```javascript app.post('/videos', async (req, res) => { const page = req.body.page @@ -555,8 +539,7 @@ def get_video_list(): # return the list to the frontend return json_video_list ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + This steps utilizes the List all videos endpoint. You can also use different filters to retrieve video lists, you can find more information about the endpoint [here](/reference/api/Videos#list-all-video-objects) @@ -564,12 +547,11 @@ This steps utilizes the List all videos endpoint. You can also use different fil As we already have the React frontend running on localhost:3000, we will need to run the server on a different port. If you followed the instructions, we've set the server port to 5500 by default and the code you've copied is running the server on port 5500. The only thing left is to run our server. Go to the server app folder and run it -{% capture samples %} + ```javascript node index.js ``` ```python python3 app.py ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + \ No newline at end of file diff --git a/vod/list-videos-2.md b/vod/list-videos-2.md index efbad34c..b887833e 100644 --- a/vod/list-videos-2.md +++ b/vod/list-videos-2.md @@ -21,7 +21,7 @@ This guide walks through the different options for retrieving videos and covers You can list all videos by not using any filters when sending your request. The code sample looks like this: -{% capture samples %} + ```curl curl --request GET \ --url 'https://ws.api.video/videos?currentPage=1&pageSize=25' \ @@ -109,14 +109,13 @@ videos = videos_api.list() print(videos) ``` -{% endcapture %} -{% include "_partials/code-tabs.html" content: samples %} + ## List videos using query parameters If you want to retrieve a specific subset of videos, this code sample shows you how to filter: -{% capture samples %} + ```curl curl --request GET \ --url 'https://ws.api.video/videos?title=videotitle.mp4¤tPage=1&pageSize=25' \ @@ -223,8 +222,7 @@ videos = videos_api.list(title='your title') print(videos) ``` -{% endcapture %} -{% include "_partials/code-tabs.html" content: samples %} + ## See a list of videos in the dashboard diff --git a/vod/progressive-upload.md b/vod/progressive-upload.md index a4151254..fb3532b3 100644 --- a/vod/progressive-upload.md +++ b/vod/progressive-upload.md @@ -11,10 +11,9 @@ api.video provides different ways to upload your videos. There are two ways to u - Progressive upload for a video that's 200MiB or more - Progressive upload for a video that's 200MiB or more using `byte` range in the `Content-Range` header -{% capture content %} + Megabyte (MB) and Mebibyte (MiB) are both used to measure units of information on computer storage. 1 MB is 1000Kb (kilobytes), and 1 MiB is 1048.576Kb. api.video uses MiB. -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + ## API documentation @@ -44,8 +43,7 @@ The clients offered by api.video include: To install your selected client, do the following: -{% capture samples %} - + ```go go get github.com/apivideo/api.video-go-client ``` @@ -67,9 +65,7 @@ Using Nuget Install-Package ApiVideo ``` - -{% endcapture %} -{% include "_partials/code-tabs.html" content: samples %} + ## Progressive upload in file chunks @@ -78,8 +74,7 @@ When the video file you want to upload is too large to send in one request, you - When you do a progressive upload using one of the api.video clients, you must indicate when you send the last part. - If you implement this functionality without an api.video client, you do not need to indicate the last part of the progressive upload. api.video can track the chunk numbers based on your header which indicates `Content-Range`, for example : part 3/3, according to the number of chunks you sent. -{% capture samples %} - + ```curl curl --request POST \ --url https://ws.api.video/videos \ @@ -262,10 +257,7 @@ def upload(file): upload('VIDEO_FILE.mp4') ``` - -{% endcapture %} -{% include "_partials/code-tabs.html" content: samples %} - + ## Progressive upload with byte range in the content-range header @@ -277,8 +269,7 @@ Content-Range: bytes 0-5242879 And then continue from there. By default, the api.video clients handle uploads for you using this method. If you want to try it yourself without the client, the sample will look like this in cURL: -{% capture samples %} - + ```curl curl -X POST \ https://sandbox.api.video/auth/api-key \ @@ -324,15 +315,11 @@ curl https://sandbox.api.video/videos/vitq4gOj8GyDT9kyxPQoyNJl/source \ -F file=@/path/to/file_chunk_ac ``` + -{% endcapture %} -{% include "_partials/code-tabs.html" content: samples %} - - -{% capture content %} + All api.video clients automatically use the `Content-Range: bytes` method to upload big videos for you. You don't have to set it up yourself if you use a client! -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + ## Resources diff --git a/vod/show-video-details.md b/vod/show-video-details.md index 88567da6..b06b997a 100644 --- a/vod/show-video-details.md +++ b/vod/show-video-details.md @@ -16,7 +16,7 @@ You can retrieve details for a specific video if you have the video ID. In this To retrieve information about any of your videos, use this code sample: -{% capture samples %} + ```curl curl --request GET \ --url https://ws.api.video/videos/viZxSTFgXZVjFnFCUo363Ie \ @@ -109,8 +109,7 @@ videos_api = VideosApi(client) response = videos_api.get(video_id) print(response) ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + ## Retrieve video info from your dashboard diff --git a/vod/show-video-upload-status.md b/vod/show-video-upload-status.md index e1155d8e..c1df4ae2 100644 --- a/vod/show-video-upload-status.md +++ b/vod/show-video-upload-status.md @@ -8,7 +8,7 @@ meta: api.video gives you ways of checking the video upload status and video details. -To check the video upload status or details of the encoding, you can either use webhooks or API polling by making a request to [/videos/{videoId}/status](/reference/api/Videos#retrieve-video-status-and-details) endpoint. +To check the video upload status or details of the encoding, you can either use webhooks or API polling by making a request to [`/videos/{videoId}/status`](/reference/api/Videos#retrieve-video-status-and-details) endpoint. ## Listening to Webhooks for Video Status & Encoding @@ -132,7 +132,7 @@ Provides data on the source video To install your selected client, do the following: -{% capture samples %} + ```go go get github.com/apivideo/api.video-go-client ``` @@ -154,8 +154,7 @@ Using Nuget Install-Package ApiVideo ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + #### Retrieve your API key @@ -165,7 +164,7 @@ You'll need your API key to get started. You can sign up for one here: [Get your To retrieve the status of a video you uploaded, use this code sample: -{% capture samples %} + ```curl curl --request GET \ --url https://ws.api.video/videos/{video ID here}/status \ @@ -257,8 +256,7 @@ videos_api = VideosApi(client) response = videos_api.get_status(video_id) print(response) ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + ## API documentation diff --git a/vod/tags-metadata.md b/vod/tags-metadata.md index c8893b4a..b3a1a579 100644 --- a/vod/tags-metadata.md +++ b/vod/tags-metadata.md @@ -124,10 +124,9 @@ You can add, update, or delete metadata to create an additional layer of data an That’s it! - {% capture content %} + The [Update a video object](/reference/api/Videos#create-a-video-object) endpoint is a `PATCH` operation that implements JSON Merge Patch. This means that tags and metadata you define in your `PATCH` request will replace the existing contents of the `tags` and `metadata` arrays. To avoid losing tags and metadata that you already defined and want to keep, make sure that you include them in your request. - {% endcapture %} - {% include "_partials/callout.html" kind: "info", content: content %} + 3. When **listing videos**, you can filter results with the `metadata` parameter. Simply add the key and value that you want to filter for to your request. You can add multiple key-value pairs to further narrow down search results. Check out the [List all video objects](/reference/api/Videos#list-all-video-objects) endpoint in the API reference for examples. diff --git a/vod/update-video-details.md b/vod/update-video-details.md index 55724619..5209d31c 100644 --- a/vod/update-video-details.md +++ b/vod/update-video-details.md @@ -27,7 +27,7 @@ When you update details about your video, you can choose from a wide variety of To update details about a video, use this code sample: -{% capture samples %} + ```curl curl --request PATCH \ --url https://ws.api.video/videos/viZxSTFgXZVjFnFCUo363Ie \ @@ -159,8 +159,7 @@ video_response = videos_api.upload(video_id, file) print("Uploaded Video", video_response) ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + ## Update video details with your dashboard diff --git a/vod/upload-a-video-regular-upload.md b/vod/upload-a-video-regular-upload.md index 69c0384c..65c0a68d 100644 --- a/vod/upload-a-video-regular-upload.md +++ b/vod/upload-a-video-regular-upload.md @@ -10,10 +10,9 @@ api.video provides different ways to upload your videos. There are two ways to u Check out the guide on [Progressive upload](/vod/progressive-upload.md) to understand how to upload videos larger than 200MiB in size. -{% capture content %} + Megabyte (MB) and Mebibyte (MiB) are both used to measure units of information on computer storage. 1 MB is 1000Kb (kilobytes), and 1 MiB is 1048.576Kb. api.video uses MiB. -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + ## API documentation @@ -24,10 +23,9 @@ Megabyte (MB) and Mebibyte (MiB) are both used to measure units of information o This section gives you an overview of your upload options. This guide walks through regular uploads but describes all the available choices here. -{% capture content %} + If you want to learn about delegated uploads, which are useful for creating private videos, or allowing your viewers to upload content themselves, or even just making it easier for you to do uploads, check out the [Delegated upload tokens](/vod/delegated-upload-tokens) guide. -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + The two token-based upload methods are: @@ -59,8 +57,7 @@ The clients offered by api.video include: To install your selected client, do the following: -{% capture samples %} - + ```go go get github.com/apivideo/api.video-go-client ``` @@ -82,10 +79,7 @@ Using Nuget Install-Package ApiVideo ``` - -{% endcapture %} -{% include "_partials/code-tabs.html" content: samples %} - + ## Upload a video file @@ -95,7 +89,7 @@ Install-Package ApiVideo The first step to uploading a video is to create a video object. Once you create the object, you can use it to upload a video. Check out this simple code that creates a video object. Make sure that you replace `your_api_key` with your own API key from the [dashboard](https://dashboard.api.video/). -{% capture samples %} + ```curl curl --user *your_api_key*: \ --request POST \ @@ -230,13 +224,11 @@ catch (ApiException e) // Manage error here } ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + -{% capture content %} + The API deletes empty video containers after 7 days. -{% endcapture %} -{% include "_partials/callout.html" kind: "warning", content: content %} + The response to your API request will return the following, along with other params: @@ -253,16 +245,16 @@ The response to your API request will return the following, along with other par Remember the `videoId`: you will need it to upload your video, in the [next step](#upload-your-file-into-the-video-object). Also, save the value of `assets.player` for [video playback](#watch-and-share-your-video). -{% capture content %} + + If you are using one of our API clients, you will find the above information in the returned response's `Video` object. -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + ### Upload your file into the video object In the first step, you created the video object. Next, you need to upload the video file into the video object using this API request: -{% capture samples %} + ```curl curl --user *your_api_key*: --url https://ws.api.video/videos/{videoId}/source @@ -385,8 +377,7 @@ catch (ApiException e) // Manage error here } ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + ### API response diff --git a/vod/upload-from-source.md b/vod/upload-from-source.md index 9622502c..fc58324e 100644 --- a/vod/upload-from-source.md +++ b/vod/upload-from-source.md @@ -12,7 +12,7 @@ api.video enables you to upload a video container file [via a URL](#upload-a-fil Uploading a video from a video URL enables you go through the whole video upload process in only 1 step. Paste a URL that points to your video container (for example, the `.mp4` file of your video) into the `source` field in your request: -{% capture samples %} + ```curl curl --user *your_api_key*: \ --request POST \ @@ -158,19 +158,17 @@ catch (ApiException e) // Manage error here } ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + -{% capture content %} + Replace the link in the example above with your video container (for example, the `.mp4` file of your video). If you don’t have a video URL to test this, you can use [this one](http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4) for example. -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + ## Clone an existing video You can clone a video that already exists in your api.video project. Just paste your video's `videoId` into the `source` field in your request: -{% capture samples %} + ```curl curl --user *your_api_key*: \ --request POST \ @@ -316,8 +314,7 @@ catch (ApiException e) // Manage error here } ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + ## API response diff --git a/vod/video-best-practices.md b/vod/video-best-practices.md index dab5b691..d690bf37 100644 --- a/vod/video-best-practices.md +++ b/vod/video-best-practices.md @@ -17,9 +17,9 @@ A tutorial for uploading a video with curl can be found [here](https://api.video A more visual representation can be found below: -{% include "_partials/dark-light-image.md" dark: "/_assets/vod/video-best-practices/create-a-video-dark.svg", light: "/_assets/vod/video-best-practices/create-a-video-light.svg", alt: "A diagram that shows the steps of creating a video object, and uploading a video" %} +A diagram that shows the steps of creating a video object, and uploading a video -{% capture content %} + **Important things to know** * **All qualities encoding:** The video object will include up to 6 responsive video streams from 240p to 4K * **Video size:** The video file size is limited to 30 GiB. The files will be compressed to fit delivery needs (4k max def with H.264 at 60fps max + AAC) @@ -27,12 +27,11 @@ A more visual representation can be found below: * **360° videos support:** Panoramic videos are videos recorded in 360°. You can toggle this after your 360° video upload. * **Video Access Management:** When creating a video object, it can be either private or public. The feature allows you to change it later by updating the video object. * **Progressive Upload:** Ability to upload videos in a progressive manner while they are being recorded. -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + ## Recommendations -{% capture content %} + For optimal ingestion, the video should use: - Resolution ≤ 4k @@ -42,13 +41,11 @@ For optimal ingestion, the video should use: - Standard Dynamic Range: **yuv420p** - Framerate ≤ **60fps** - Audio Codec: **aac** -{% endcapture %} -{% include "_partials/callout.html" kind: "success", content: content %} - + ## Limitations -{% capture content %} + * When using the [sandbox environment](/reference#environments), the API: * limits the videos you upload to 30 seconds * adds a watermark to your videos that you cannot remove @@ -62,8 +59,7 @@ For optimal ingestion, the video should use: - **at most 30 GiB** - **of at most 24h** * **ProRes RAW** video codec is currently not supported. -{% endcapture %} -{% include "_partials/callout.html" kind: "warning", content: content %} + ## Progressive video upload & uploading large videos diff --git a/vod/video-download.md b/vod/video-download.md index 00b42d9a..3e726a33 100644 --- a/vod/video-download.md +++ b/vod/video-download.md @@ -10,7 +10,7 @@ After videos have been transcoded on [api.video](http://api.video), it’s natur [api.video](http://api.video) allows you and your users to download videos directly from the player or programmatically through the API. -{% include "_partials/dark-light-image.md" dark: "/_assets/vod/video-download/video-download-diagram-dark.svg", light: "/_assets/vod/video-download/video-download-diagram-light.svg", alt: "A diagram that shows the process of video download" %} +A diagram that shows the process of video download ## Download a video from [api.video](http://api.video) player @@ -19,11 +19,10 @@ The video object can be created or updated with the `mp4Support` tag. The tag wi ![](/_assets/vod/video-download/download-video-1.png) ![](/_assets/vod/video-download/download-video-2.png) -{% capture content %} + * By default, the `mp4Support` tag is set to `true`, hence the video is downloadable. If you want to disable the download ability from the [api.video](http://api.video) player, you have to set the `mp4Support` tag to `false` * If you don’t want the user to be able to download the video, do not serve the mp4 asset. -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + ## Disabling download @@ -35,7 +34,7 @@ You can also find more information on the `/videos` endpoints on the [API refere How to create a video object with disabled download -{% capture samples %} + ```javascript // Documentation: https://github.com/apivideo/api.video-nodejs-client/blob/main/doc/api/VideosApi.md#create @@ -158,12 +157,11 @@ public class Example { } } ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + Once the object is created, all you have to do is just upload the video to the object: -{% capture samples %} + ```javascript const file = './my-video.mp4'; // The path to the video you would like to upload. The path must be local. If you want to use a video from an online source, you must use the "/videos" endpoint and add the "source" parameter when you create a new video. const videoId = video.id @@ -207,14 +205,13 @@ file := os.NewFile(1234, "some_file") // *os.File | The path to the video you would like to upload. The path must be local. If you want to use a video from an online source, you must use the "/videos" endpoint and add the "source" parameter when you create a new video. res, err := client.Videos.UploadFile(videoId, file) ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + ### Disable download for an existing video object It’s also possible to disable the download ability for the users, after the video was already uploaded and transcoded. For that, you just need to update the video object. -{% capture samples %} + ```javascript // First install the "@api.video/nodejs-client" npm package // Documentation: https://github.com/apivideo/api.video-nodejs-client/blob/main/doc/api/VideosApi.md#update @@ -344,8 +341,7 @@ func main() { ", res) } ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + ## Creating a custom download button @@ -476,10 +472,9 @@ $ npm init Now edit the index.js file that you’ve created, and copy this code. -{% capture content %} + Make sure that you copy your API key from the [api.video](http://api.video) dashboard and replace the port to the port you would like to run the server on. -{% endcapture %} -{% include "_partials/callout.html" kind: "info", content: content %} + ```javascript diff --git a/vod/video-management-basics.md b/vod/video-management-basics.md index d7a937d0..7e9efecf 100644 --- a/vod/video-management-basics.md +++ b/vod/video-management-basics.md @@ -28,7 +28,7 @@ The clients offered by api.video include: To install your selected client, do the following: -{% capture samples %} + ```go go get github.com/apivideo/api.video-go-client ``` @@ -50,8 +50,7 @@ Using Nuget Install-Package ApiVideo ``` -{% endcapture %} -{% include "_partials/code-tabs.md" samples: samples %} + Check out the [API clients library](/sdks/api-clients.md) for detailed instructions for all libraries & SDKs. diff --git a/vod/video-object.md b/vod/video-object.md index 21b7b6cc..f5748983 100644 --- a/vod/video-object.md +++ b/vod/video-object.md @@ -10,7 +10,7 @@ The video object in reference to api.video is a container of sort (not to be con Before you [upload a video](/reference/api/Videos#upload-a-video), you need to [create the video object](/reference/api/Videos#create-a-video-object) that will contain the video itself after you upload it. -{% include "_partials/dark-light-image.md" dark: "/_assets/vod/video-object/create-a-video-dark.svg", light: "/_assets/vod/video-object/create-a-video-light.svg", alt: "A diagram that shows the steps of creating a video object, and uploading a video" %} +A diagram that shows the steps of creating a video object, and uploading a video The video object has properties and metadata that you can create and update, below are the attributes that are available for the video object. diff --git a/vod/video-playback-features.md b/vod/video-playback-features.md index 50929589..850d0607 100644 --- a/vod/video-playback-features.md +++ b/vod/video-playback-features.md @@ -1,16 +1,15 @@ --- title: HTML5 Player URL Fragments meta: - description: URL fragments let you complete the api.video embed source URL with query parameters introduced by a hash (#). The HTML5 Player URL Fragments page shows you how to use them with your project. + description: URL fragments let you complete the api.video embed source URL with query parameters introduced by a hash. The HTML5 Player URL Fragments page shows you how to use them with your project. --- -HTML5 Player URL Fragments -========================== +# HTML5 Player URL Fragments ## Introduction Some features of the api.video player may be activated with `URL fragments`. -In other words, it means that the Api Video embed (iFrame) source URL may be completed by query parameters introduced by a hash (#). +In other words, it means that the api.video embed iFrame's source URL may be completed by query parameters introduced with a hash `#`. Here is the example of a Api Video embed code: @@ -23,13 +22,15 @@ Any fragment must be appended to the end of this URL after a hash `#`. Example : `https://embed.api.video/vod/vi54sj9dAakOHJXKrUycCQZp#autoplay` -Multiple fragments may be concatenated with a semi-colon `;`. For example, this video will autoplay and loop. -Example : `https://embed.api.video/vod/vi54sj9dAakOHJXKrUycCQZp#autoplay;loop` +Multiple fragments may be concatenated with a semi-colon `;`. For example, this video will autoplay and loop: + +Example: `https://embed.api.video/vod/vi54sj9dAakOHJXKrUycCQZp#autoplay;loop` ### 1. Autoplay -To launch video as soon as the player can, use `#autoplay`. - +To launch video as soon as the player can, use `#autoplay`: + +`https://embed.api.video/vod/vi54sj9dAakOHJXKrUycCQZp#autoplay` @@ -44,8 +45,9 @@ Time may be expressed in the following formats: - `mm:ss` (ex. `2:30` for two minutes and a half) - `hh:mm:ss` (ex. `1:30:00` for one hour and a half) -For example, this video will play from time =10 -> 15. - +For example, this video will play from time `10` to `15`: + +`https://embed.api.video/vod/vi54sj9dAakOHJXKrUycCQZp#t=10,15` @@ -63,7 +65,7 @@ To hide the Player's title that is displayed on the bottom left corner of the po To hide the Player's control bar, use `#hide-controls`. -> Caution as you should integrate your own controls if you prevent users from accessing Api Video Player native ones. +Caution as you should integrate your own controls if you prevent users from accessing Api Video Player native ones. @@ -76,9 +78,9 @@ Video will play to end and automatically restart. This example will autoplay and ### 7. Show captions -If your video has captions, you can make them appear by default by adding the #show-subtitles url parameter to the player url: +If your video has captions, you can make them appear by default by adding the `#show-subtitles` url parameter to the player url: -![](/_assets/show-captions.png) +![Showing captions](/_assets/show-captions.png) ### 8. Download @@ -96,5 +98,4 @@ For example: https://embed.api.video/vod/#adTagUrl:https%3A%2F%2Fpubads.g.doubleclick.ne[…]tart%3D1%26env%3Dvp%26impl%3Ds%26correlator%3D` ``` -For more details, navigate to the dedicated documentation page for [in-stream ads](/delivery-analytics/ads). - +For more details, navigate to the dedicated documentation page for [in-stream ads](/delivery-analytics/ads). \ No newline at end of file