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

# Upload a video and embed it into your app

Upload a video to Gcore Video Hosting, update its playback settings, and embed it into your app or website with the Gcore player, iframe code, or direct playback links.

## Step 1. Upload a video to the customer portal

Navigate to the [Video Hosting](https://portal.gcore.com/streaming/video/list) tab and upload a video using one of the following actions:

* **Upload the video**. On this tab, you can add locally stored videos. Either click the **Click to upload** button or drag and drop your files to the designated upload area.

<Frame>
  <img src="https://mintcdn.com/gcore/DxKkEmNHOU3QYNoT/images/docs/streaming-platform/video-hosting/upload-a-video-and-embed-it-to-your-app/upload-video-tab.png?fit=max&auto=format&n=DxKkEmNHOU3QYNoT&q=85&s=79b20b7d9c3446159dfceb0aa7d1acda" alt="Video Hosting tab" width="4756" height="916" data-path="images/docs/streaming-platform/video-hosting/upload-a-video-and-embed-it-to-your-app/upload-video-tab.png" />
</Frame>

* **Download from the source**. Here you can upload a video from the origin by specifying the video title and video origin URL.

<Frame>
  <img src="https://mintcdn.com/gcore/N-hl9rrEQ6ZbjY2q/images/docs/streaming-platform/video-hosting/upload-a-video-and-embed-it-to-your-app/download-from-source.png?fit=max&auto=format&n=N-hl9rrEQ6ZbjY2q&q=85&s=89cf25b9918528c79eaa841c59e179b8" alt="Video Hosting tab" width="4760" height="916" data-path="images/docs/streaming-platform/video-hosting/upload-a-video-and-embed-it-to-your-app/download-from-source.png" />
</Frame>

* **Import from Google Drive**. To add a video, click the **Click here** area, sign in to your Google account, and then choose the required video from your Google Drive.

<Frame>
  <img src="https://mintcdn.com/gcore/DxKkEmNHOU3QYNoT/images/docs/streaming-platform/video-hosting/upload-a-video-and-embed-it-to-your-app/import-from-google-drive.png?fit=max&auto=format&n=DxKkEmNHOU3QYNoT&q=85&s=14c2a12946a6e74fe57a182e2f41c598" alt="Video Hosting tab" width="4760" height="916" data-path="images/docs/streaming-platform/video-hosting/upload-a-video-and-embed-it-to-your-app/import-from-google-drive.png" />
</Frame>

Wait until your video is uploaded and processed. Waiting time varies depending on video size and internet speed.

| Status     | What it means                                                                                                              |
| ---------- | -------------------------------------------------------------------------------------------------------------------------- |
| `empty`    | The video entity was created, but the source file is still being received by upload, import, or download from your source. |
| `pending`  | The source file was received and is being prepared for processing.                                                         |
| `viewable` | The video can already be watched in one of the available qualities.                                                        |
| `ready`    | The video is fully prepared and available in all processed qualities.                                                      |
| `error`    | The video could not be uploaded or prepared. Check the file and try again.                                                 |

For more details, see [Video Lifecycle and Statuses](/streaming/video-hosting/vod-status).

<Frame>
  <img src="https://mintcdn.com/gcore/DxKkEmNHOU3QYNoT/images/docs/streaming-platform/video-hosting/upload-a-video-and-embed-it-to-your-app/video-uploading-process.png?fit=max&auto=format&n=DxKkEmNHOU3QYNoT&q=85&s=9c628d7b2f8a1fb21dc48973e727c1c2" alt="Wait until your video is uploaded" width="2424" height="1400" data-path="images/docs/streaming-platform/video-hosting/upload-a-video-and-embed-it-to-your-app/video-uploading-process.png" />
</Frame>

<Info>
  If a video enters `Error` status after upload, first inspect the original file itself. Some failures are caused by technical parameter changes inside the source file, such as pixel format or color range changing near the end. In such cases, retrying the same file usually does not help. Re-export or trim the source and upload the corrected file again.
</Info>

## Step 2. Update video settings

If you need to adjust some video configuration, get links to export the video or set up subtitles and tags. You can do so on the **Main settings** tab:

1\. Open video settings by clicking the video name or the three-dot icon next to it.

<Frame>
  <img src="https://mintcdn.com/gcore/DxKkEmNHOU3QYNoT/images/docs/streaming-platform/video-hosting/upload-a-video-and-embed-it-to-your-app/video-settings.png?fit=max&auto=format&n=DxKkEmNHOU3QYNoT&q=85&s=5071ec29acd789c05e2299023016a5d6" alt="settings of the uploaded video" width="3420" height="884" data-path="images/docs/streaming-platform/video-hosting/upload-a-video-and-embed-it-to-your-app/video-settings.png" />
</Frame>

2\. Update the following video settings if necessary:

* **Name** : Change its name (it will be displayed in the Gcore Customer Portal)
* **Description** : Enter a description (it will be displayed in the Gcore Customer Portal)
* **Player** : Select custom player, if you enabled the [Players](/streaming/extra-features/customize-appearance-of-the-built-in-player) feature
* **Tags** : Select [tags](/streaming/video-hosting/organize-uploaded-videos#how-to-use-tags) for a video
* **Subtitles** : Add [subtitles and choose a subtitle language](/streaming/video-hosting/subtitles-and-closed-captions-for-vod#control-panel)
* **Screensaver** : Select a screensaver from screenshots or upload a screensaver from your computer

<Frame>
  <img src="https://mintcdn.com/gcore/E2frEa33lsbt13lI/images/docs/streaming-platform/video-hosting/upload-a-video-and-embed-it-to-your-app/vod-subtitles.png?fit=max&auto=format&n=E2frEa33lsbt13lI&q=85&s=022fb1d567b649618eb8b07f04af0472" alt="Video settings" width="2838" height="1660" data-path="images/docs/streaming-platform/video-hosting/upload-a-video-and-embed-it-to-your-app/vod-subtitles.png" />
</Frame>

3\. (Optional) After you upload the video, it'll be transсoded with different qualities and bitrates. Click the **Video transcoding data** link under the video to check the transcoding details.

4\. Select one of the automatically created video posters or upload a new one from your local storage.

<Frame>
  <img src="https://mintcdn.com/gcore/E2frEa33lsbt13lI/images/docs/streaming-platform/video-hosting/upload-a-video-and-embed-it-to-your-app/vod-poster.png?fit=max&auto=format&n=E2frEa33lsbt13lI&q=85&s=7101e1c7d51068d511c1529c89cc1fc7" alt="Video poster settings" width="2838" height="1660" data-path="images/docs/streaming-platform/video-hosting/upload-a-video-and-embed-it-to-your-app/vod-poster.png" />
</Frame>

## Step 3. Choose a player UI customization and video projection

Customize the functionality and appearance of a [built-in HTML web player](/streaming/extra-features/customize-appearance-of-the-built-in-player) for the uploaded video. Note that these settings apply only to the built-in player and won't affect viewers using external or OS-native players.

In the **Player** dropdown, you can choose the existing configuration. To add a new built-in player and customize its settings, refer to our [dedicated guide](/streaming/extra-features/customize-appearance-of-the-built-in-player).

## Step 4. Export video

In the **Links for export** section, choose the relevant export method:

* **Video page URL** : A Web player URL to access and play the video directly from a website.

* **HLS manifest URL** : A URL to a master playlist HLS (master.m3u8) with MPEGTS container.

* **iFrame embed code** : A URL to our HTML video player with the video inside. It can be inserted into an iframe on your website and the video will automatically play on all browsers.

In the Links for export section, you can also choose the video size and download the uploaded video in the required quality by selecting its bitrate and clicking **Download video**.

<Frame>
  <img src="https://mintcdn.com/gcore/E2frEa33lsbt13lI/images/docs/streaming-platform/video-hosting/upload-a-video-and-embed-it-to-your-app/vod-player.png?fit=max&auto=format&n=E2frEa33lsbt13lI&q=85&s=134393e981368b9a3fc1cd33248e9309" alt="Export tab" width="2846" height="3628" data-path="images/docs/streaming-platform/video-hosting/upload-a-video-and-embed-it-to-your-app/vod-player.png" />
</Frame>
