From 316fd3a89a346ca9af31c9e7e6f4ba02b5803662 Mon Sep 17 00:00:00 2001 From: szekelyzol Date: Mon, 20 May 2024 11:49:35 +0200 Subject: [PATCH] Add image and custom components --- README.md | 5 +- _assets/css/style.css | 98 ++++++++++++++++++- _components/api-video-card.md | 6 ++ _components/landing-page-card.md | 18 ++++ _components/landing-page-list.md | 14 +++ .../private-video-get-started.md | 10 +- .../private-video-session-tokens.md | 2 +- delivery-analytics/using-custom-domains.md | 2 +- .../video-privacy-access-management.md | 4 +- doctave.yaml | 65 +++++++++--- get-started/infra.md | 2 +- get-started/start-building.md | 2 +- live-streaming/restreams.md | 2 +- reference/authentication-guide.md | 2 +- reference/create-and-manage-webhooks.md | 2 +- .../disposable-bearer-token-authentication.md | 2 +- structure.yaml | 52 ---------- vod/add-a-permanent-watermark.md | 3 +- vod/backup-and-cold-storage.md | 3 +- vod/clip-a-video.md | 3 +- vod/delegated-upload-tokens.md | 2 +- vod/video-best-practices.md | 2 +- vod/video-download.md | 2 +- vod/video-object.md | 2 +- 24 files changed, 214 insertions(+), 91 deletions(-) create mode 100644 _components/api-video-card.md create mode 100644 _components/landing-page-card.md create mode 100644 _components/landing-page-list.md delete mode 100644 structure.yaml diff --git a/README.md b/README.md index 677d9858..776d5b74 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,8 @@ --- -hide_navigation: false +experimental: + v2_templates: false +toc: true +breadcrumbs: false hide_side_table_of_contents: true 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. diff --git a/_assets/css/style.css b/_assets/css/style.css index 1b52ab7e..eea5a0bf 100644 --- a/_assets/css/style.css +++ b/_assets/css/style.css @@ -383,4 +383,100 @@ 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-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/_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/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-session-tokens.md b/delivery-analytics/private-video-session-tokens.md index ecb3cbd6..cd374eb2 100644 --- a/delivery-analytics/private-video-session-tokens.md +++ b/delivery-analytics/private-video-session-tokens.md @@ -14,7 +14,7 @@ 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** 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-privacy-access-management.md b/delivery-analytics/video-privacy-access-management.md index 52e7c748..724d514d 100644 --- a/delivery-analytics/video-privacy-access-management.md +++ b/delivery-analytics/video-privacy-access-management.md @@ -17,7 +17,7 @@ A **private token** is a string of unique numbers and letters. For example: `009 {% 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 +41,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/infra.md b/get-started/infra.md index cfa49ca4..3417d15e 100644 --- a/get-started/infra.md +++ b/get-started/infra.md @@ -13,7 +13,7 @@ To fulfill this commitment, we've meticulously crafted a robust infrastructure t ## 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: diff --git a/get-started/start-building.md b/get-started/start-building.md index 15168bae..ef0b0af4 100644 --- a/get-started/start-building.md +++ b/get-started/start-building.md @@ -13,7 +13,7 @@ This documentation serves as your foundational guide to integrating api.video's ## 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. diff --git a/live-streaming/restreams.md b/live-streaming/restreams.md index fe79177e..b82a0ffb 100644 --- a/live-streaming/restreams.md +++ b/live-streaming/restreams.md @@ -19,7 +19,7 @@ api.video gives you the ability to broadcast a live stream to multiple platforms ## 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. diff --git a/reference/authentication-guide.md b/reference/authentication-guide.md index ef1b13d6..936b9027 100644 --- a/reference/authentication-guide.md +++ b/reference/authentication-guide.md @@ -59,7 +59,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. diff --git a/reference/create-and-manage-webhooks.md b/reference/create-and-manage-webhooks.md index 8f40d742..96b13dfc 100644 --- a/reference/create-and-manage-webhooks.md +++ b/reference/create-and-manage-webhooks.md @@ -21,7 +21,7 @@ api.video provides you the possibility to get a `POST` request to your server th 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 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/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/add-a-permanent-watermark.md b/vod/add-a-permanent-watermark.md index fbb4ae01..85ca8700 100644 --- a/vod/add-a-permanent-watermark.md +++ b/vod/add-a-permanent-watermark.md @@ -27,8 +27,7 @@ Watermarks are uploaded separately from videos. You will need to upload the wate {% 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 diff --git a/vod/backup-and-cold-storage.md b/vod/backup-and-cold-storage.md index 747da5c9..19003935 100644 --- a/vod/backup-and-cold-storage.md +++ b/vod/backup-and-cold-storage.md @@ -14,8 +14,7 @@ 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. diff --git a/vod/clip-a-video.md b/vod/clip-a-video.md index c3d57fad..808194ec 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? diff --git a/vod/delegated-upload-tokens.md b/vod/delegated-upload-tokens.md index bd32f53d..c340527c 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. diff --git a/vod/video-best-practices.md b/vod/video-best-practices.md index dab5b691..a0374ffe 100644 --- a/vod/video-best-practices.md +++ b/vod/video-best-practices.md @@ -17,7 +17,7 @@ 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** diff --git a/vod/video-download.md b/vod/video-download.md index 00b42d9a..f55af5f8 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 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.