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

# Upload an asset

> Upload video files to Livepeer Studio with TUS resumable uploads or PUT.

Upload videos via the Livepeer Studio API. **TUS resumable upload** is recommended; **PUT** is also supported.

<Info>
  TUS supports resumable uploads and is recommended for all uploads, especially large files.
</Info>

## Create upload with the SDK

From your backend, create an asset to get an upload URL (TUS or PUT):

```javascript icon="terminal" theme={"theme":{"light":"github-light","dark":"dark-plus"}}
const { data } = await livepeer.asset.create({ name: "my-video.mp4" });
// data.tusUploadUrl for TUS client on frontend
// data.asset has asset id
```

Use the **TUS upload URL** with a [TUS client](https://github.com/TUS/TUS-js-client) on the frontend to upload the file. When processing finishes, use the asset **playback ID** to play it. See [Play an asset](./playback-asset) and [Listen to events](../analytics/listen-to-events).

## Next steps

* [Play an asset](./playback-asset)
* [Encrypted assets](encrypted-assets)
* [Thumbnails (VOD)](./thumbnails-vod)
