> For the complete documentation index, see [llms.txt](https://help.craftsmanplus.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.craftsmanplus.com/asset-library/uploading-assets.md).

# Uploading Assets

The Asset Library is where all of your team's images, videos, audio, and fonts live for use across CRAFTSMAN+ projects. Uploading is the first step in getting your assets into the platform, where they can be sanitized, optimized, organized, and reused across creatives.

#### Ways to Upload

There are three ways to start an upload:

1. Click the **Upload** button in the Asset Library and select files from the file picker.
2. Drag files from your desktop onto the Asset Library when it's open.
3. Drag files directly onto the editor canvas while working in PLAY. The Asset Library opens automatically and the upload begins.

You can upload one file or many at once.

#### Supported File Types

The Asset Library accepts common image, video, audio, and font formats. Every file you upload is processed through the sanitization and optimization pipeline before it's added to your library. For the full list of accepted formats, see [Sanitization & Optimization](/asset-library/uploading-assets/sanitization-and-optimization.md).

{% hint style="info" %}
*Expanded file format support is **coming soon**. The Asset Library will soon accept many additional formats and auto-convert them during upload, including MOV, AVI, MKV, HEIC, TIFF, WAV, AAC, FLAC, and others.*
{% endhint %}

#### The Upload Flow

After you drop or select your files, one of two things happens:

* If everything looks good, your files start uploading right away.
* If any files have issues, you'll see a **Pending Upload** review step first so you can clean up the list before committing.

***

**1. Pending Upload**

Pending Upload gives you a chance to review your files before the upload begins. Each file is listed by name, with any problem files flagged inline:

* **Asset Unsupported** - the file type isn't accepted by the Asset Library.
* **Asset Corrupted** - the file type is accepted, but the file itself can't be read.

You can remove individual files with the **X** next to them, or clear the whole list with **Deselect All**.

When you're ready, click **Upload...**. Any flagged files are skipped automatically, and only your valid assets are sent through.

{% hint style="info" %}
*Unsupported and corrupted files never make it into your library. If you see a file flagged here, double-check it at the source before trying again.*
{% endhint %}

***

**2. Uploading**

Your files upload in parallel, so larger batches finish faster than they would one at a time. You'll see live progress for each file as it goes, and the panel updates as each one completes.

You can keep working in the Asset Library while uploads are in progress.

Every successful upload is automatically processed through the sanitization and optimization pipeline. This standardizes formatting, strips unnecessary metadata, and generates a lighter-weight optimized version where it makes sense.

For a full breakdown of how each asset type is processed, see [Sanitization & Optimization](/asset-library/uploading-assets/sanitization-and-optimization.md).

***

**3. Upload Complete**

Once everything finishes, your newly uploaded assets are pre-selected and ready to add to your project.

If any files failed to upload (typically due to a connection issue), they'll be called out so you can retry them. Click **Confirm** to dismiss the summary and continue working with your successful uploads. To learn how to add assets to your project, see [Adding a Layer](/play/layers/adding-a-layer.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://help.craftsmanplus.com/asset-library/uploading-assets.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
