---
title: Basic Uploader Properties
slug: solution-builder/basic-uploader-properties
docTags: 
createdAt: 2024-02-03T18:40:53.677Z
---

# Overview

For background information, see [Basic Uploader JavaScript Settings](docId:9GsXHQrH7XJsv73E51WaT).

Below is a list of properties that you may configure from your [Basic Uploader](docId:42tXkY0k3OLyTsWSglySh) JavaScript file.

## Basic Uploader Properties

- [basicupload.failed.message](docId\:S0KsAqafGNpfvbpnwMSLa) - <font color="#3b9f0f">OPTIONAL</font>
- [basicupload.offer.savevideo](docId\:S0KsAqafGNpfvbpnwMSLa) - <font color="#3b9f0f">OPTIONAL</font>
- [basicupload.launch.event.url](docId\:S0KsAqafGNpfvbpnwMSLa) - <font color="#3b9f0f">OPTIONAL</font>
- [basicupload.panel.button.title](docId\:S0KsAqafGNpfvbpnwMSLa) - <font color="#3b9f0f">OPTIONAL</font>
- [basicupload.panel.input.description.label](docId\:S0KsAqafGNpfvbpnwMSLa) - <font color="#3b9f0f">OPTIONAL</font>
- [basicupload.panel.input.description.required](docId\:S0KsAqafGNpfvbpnwMSLa) - <font color="#3b9f0f">OPTIONAL</font>
- [basicupload.panel.input.description.required.message](docId\:S0KsAqafGNpfvbpnwMSLa) - <font color="#3b9f0f">OPTIONAL</font>
- [basicupload.panel.input.description.show](docId\:S0KsAqafGNpfvbpnwMSLa) - <font color="#3b9f0f">OPTIONAL</font>
- [basicupload.panel.input.title.label](docId\:S0KsAqafGNpfvbpnwMSLa) - <font color="#3b9f0f">OPTIONAL</font>
- [basicupload.panel.input.title.required](docId\:S0KsAqafGNpfvbpnwMSLa) - <font color="#3b9f0f">OPTIONAL</font>
- [basicupload.panel.input.title.required.message](docId\:S0KsAqafGNpfvbpnwMSLa) - <font color="#3b9f0f">OPTIONAL</font><font color="#3b9f0f"> </font>
- [basicupload.panel.input.title.show](docId\:S0KsAqafGNpfvbpnwMSLa) - <font color="#3b9f0f">OPTIONAL</font>
- [basicupload.panel.message](docId\:S0KsAqafGNpfvbpnwMSLa) - <font color="#3b9f0f">OPTIONAL</font>
- [basicupload.panel.title](docId\:S0KsAqafGNpfvbpnwMSLa) - <font color="#3b9f0f">OPTIONAL</font>
- [basicupload.panel.input.choose-replace.show](docId\:S0KsAqafGNpfvbpnwMSLa) - <font color="#3b9f0f">OPTIONAL</font>
- [basicupload.post.extraheaders.1](docId\:S0KsAqafGNpfvbpnwMSLa) - <font color="#3b9f0f">OPTIONAL</font>
- [basicupload.post.maxwidth](docId\:S0KsAqafGNpfvbpnwMSLa) - <font color="#3b9f0f">OPTIONAL</font>
- [basicupload.post.method](docId\:S0KsAqafGNpfvbpnwMSLa) - <font color="#3b9f0f">OPTIONAL</font>
- [basicupload.preview.title](docId\:S0KsAqafGNpfvbpnwMSLa) - <font color="#3b9f0f">OPTIONAL</font>
- [basicupload.request.url](docId\:S0KsAqafGNpfvbpnwMSLa) - <font color="#ff6900">REQUIRED</font>
- [basicupload.session.data](docId\:S0KsAqafGNpfvbpnwMSLa) - <font color="#3b9f0f">OPTIONAL</font>
- [basicupload.site.name](docId\:S0KsAqafGNpfvbpnwMSLa)  - <font color="#ff6900">REQUIRED</font>
- [basicupload.success.message](docId\:S0KsAqafGNpfvbpnwMSLa) - <font color="#3b9f0f">OPTIONAL</font>
- [basicupload.success.showlink](docId\:S0KsAqafGNpfvbpnwMSLa) - <font color="#3b9f0f">OPTIONAL</font>
- [basicupload.success.url](docId\:S0KsAqafGNpfvbpnwMSLa) - <font color="#3b9f0f">OPTIONAL</font>
- [basicupload.virtualbackground.enabled](docId\:S0KsAqafGNpfvbpnwMSLa) - <font color="#3b9f0f">OPTIONAL</font>
- [locale](docId\:S0KsAqafGNpfvbpnwMSLa) - <font color="#3b9f0f">OPTIONAL</font>
- [som.\*.app.content.subdirectory](docId\:S0KsAqafGNpfvbpnwMSLa) - <font color="#ff6900">REQUIRED</font>
- [som.\*.app.drawandzoom.enabled](docId\:S0KsAqafGNpfvbpnwMSLa) - <font color="#3b9f0f">OPTIONAL</font>
- [som.\*.app.editing.enabled](docId\:S0KsAqafGNpfvbpnwMSLa) - <font color="#3b9f0f">OPTIONAL</font>
- [som.\*.app.frame.title](docId\:S0KsAqafGNpfvbpnwMSLa) - <font color="#ff6900">REQUIRED</font>
- [workflow](docId\:S0KsAqafGNpfvbpnwMSLa) - <font color="#3b9f0f">OPTIONAL</font>

***

# basicupload.failed.message

<font color="#3b9f0f">OPTIONAL</font><font color="#3b9f0f">  </font>The message displayed if the upload fails.

```javascript
"basicupload.failed.message"="Upload failed. Please check your anti-virus and network connection."
```

***

# basicupload.offer.savevideo

<font color="#3b9f0f">OPTIONAL  </font>Displays the **Save As Video File** UI to allow the user to save their recording locally to a file.

```javascript
"basicupload.offer.savevideo"="true"
```

***

# basicupload.launch.event.url

<font color="#3b9f0f">OPTIONAL  </font>This specifies a URL that is opened by ScreenPal each time it is launched.  See [Solution Builder Launch Event](docId:7iPG3ENCk51RTGD0XfmIc) for more information.

If this property is not overridden, then its default value is used, which is shown in the example code below.  You may override it with your own URL. &#x20;

```javascript
"basicupload.launch.event.url"="https://screenpal.com/api/v2/solution-builder/event"
```

***

# basicupload.panel.button.title

<font color="#3b9f0f">OPTIONAL</font><font color="#3b9f0f">  </font>The text for the button that starts the upload.

```javascript
"basicupload.panel.button.title"="Upload"
```

***

# basicupload.panel.input.description.label

<font color="#3b9f0f">OPTIONAL</font><font color="#3b9f0f">  </font>The text for the input description field.  Also see [basicupload.panel.input.description.required](docId\:S0KsAqafGNpfvbpnwMSLa) and [basicupload.panel.input.description.show](docId\:S0KsAqafGNpfvbpnwMSLa).

```javascript
"basicupload.panel.input.description.label"="<b>Description</b>"
```

***

# basicupload.panel.input.description.required

<font color="#3b9f0f">OPTIONAL  </font>Specifies if the Description is optional or required to be input by the user before the "Upload" button will be enabled.  Also see [basicupload.panel.input.description.label](docId\:S0KsAqafGNpfvbpnwMSLa) and [basicupload.panel.input.description.show](docId\:S0KsAqafGNpfvbpnwMSLa).

```javascript
"basicupload.panel.input.description.required"="false"
```

***

# basicupload.panel.input.description.required.message

<font color="#3b9f0f">OPTIONAL  </font>The message displayed to the user to inform them that the **Description&#x20;**&#x66;ield is required to be entered before the "Upload" button will be enabled.  Also see [basicupload.panel.input.description.label](docId\:S0KsAqafGNpfvbpnwMSLa), [basicupload.panel.input.description.required](docId\:S0KsAqafGNpfvbpnwMSLa), and [basicupload.panel.input.description.show](docId\:S0KsAqafGNpfvbpnwMSLa).

```javascript
"basicupload.panel.input.description.required.message"="Please enter a description."
```

***

# basicupload.panel.input.description.show

<font color="#3b9f0f">OPTIONAL  </font>Specifies if the Description field is displayed or not.  Also see [basicupload.panel.input.description.label](docId\:S0KsAqafGNpfvbpnwMSLa) and [basicupload.panel.input.description.required](docId\:S0KsAqafGNpfvbpnwMSLa).

```javascript
"basicupload.panel.input.description.show"="true"
```

***

# basicupload.panel.input.title.label

<font color="#3b9f0f">OPTIONAL</font><font color="#3b9f0f">  </font>The text above the Title field.  Also see [basicupload.panel.input.title.required](docId\:S0KsAqafGNpfvbpnwMSLa), [basicupload.panel.input.title.required.message](docId\:S0KsAqafGNpfvbpnwMSLa), and [basicupload.panel.input.title.show](docId\:S0KsAqafGNpfvbpnwMSLa)

```javascript
"basicupload.panel.input.title.label"="<b>Title</b>"
```

***

# basicupload.panel.input.title.required

<font color="#3b9f0f">OPTIONAL  </font>Specifies if the Title is optional or required to be input by the user before the "upload" button will be enabled.  Also see [basicupload.panel.input.title.label](docId\:S0KsAqafGNpfvbpnwMSLa), [basicupload.panel.input.title.required.message](docId\:S0KsAqafGNpfvbpnwMSLa), and [basicupload.panel.input.title.show](docId\:S0KsAqafGNpfvbpnwMSLa)

```javascript
"basicupload.panel.input.title.required"="true"
```

***

# basicupload.panel.input.title.required.message

<font color="#3b9f0f">OPTIONAL</font><font color="#3b9f0f">  </font>The message displayed to the user to inform them that the Title field is required to be entered before the "Upload" button will be enabled.  Also see [basicupload.panel.input.title.label](docId\:S0KsAqafGNpfvbpnwMSLa), [basicupload.panel.input.title.required](docId\:S0KsAqafGNpfvbpnwMSLa), and [basicupload.panel.input.title.show](docId\:S0KsAqafGNpfvbpnwMSLa).

```javascript
"basicupload.panel.input.title.required.message"="Please enter a title."
```

***

# basicupload.panel.input.title.show

<font color="#3b9f0f">OPTIONAL  </font>Specifies if the Title field is displayed or not.  Also see [basicupload.panel.input.title.label](docId\:S0KsAqafGNpfvbpnwMSLa), [basicupload.panel.input.title.required](docId\:S0KsAqafGNpfvbpnwMSLa), and [basicupload.panel.input.title.required.message](docId\:S0KsAqafGNpfvbpnwMSLa).

```javascript
"basicupload.panel.input.title.show"="true"
```

***

# basicupload.panel.message

<font color="#3b9f0f">OPTIONAL</font><font color="#3b9f0f">  </font>The text to show at the top of the Upload UI panel.

```javascript
"basicupload.panel.message"="Enter values below then click Upload to start uploading."
```

***

# basicupload.panel.title

<font color="#3b9f0f">OPTIONAL</font><font color="#3b9f0f">  </font>The text to show as the title for the Upload UI panel.

```javascript
"basicupload.panel.message"="Upload"
```

***

# basicupload.panel.input.choose-replace.show

****<font color="#3b9f0f">OPTIONAL</font>  Displays a checkbox in the upload UI that lets the user choose whether to replace an existing video or upload a new one.&#x20;

:::hint{type="info"}
This checkbox is only meaningful when combined with the `basicupload.session.data` property.
:::

### Behavior

- If `basicupload.panel.input.choose-replace.show` is set to `"true"` the upload UI will show a checkbox labeled something like **"Replace current upload"**.
  - The checkbox has additional show/hide considerations as well.
    - If the video has previously been published, then the checkbox will show on subsequent attempts to publish that project.
    - If an `editvideo-url` workflow is used on initial launch of a project, then the replace checkbox will also show on first attempt to publish.
- The checkbox state is remembered across launches within the same project.

```javascript
"basicupload.panel.input.choose-replace.show": "true"
```

### Example Workflow

1. You launch ScreenPal with:

   ```javascript
   "workflow": "editVideo-https://files.screencast-o-matic.com/original.mp4",
   "basicupload.session.data": "{\"originalUrl\":\"https://files.screencast-o-matic.com/original.mp4\"}",
   "basicupload.panel.input.choose-replace.show": "true"
   ```
2. On upload, the user is prompted to enter a title and description and is given the option to **Replace current upload** via a checkbox.
3. If checked, the upload request might look like:

```http
POST /basicuploadS3Upload.php?id=myid
Content-Type: multipart/form-data

title=Updated Video
description=Shortened version with intro
session-data={"originalUrl":"https://files.screencast-o-matic.com/original.mp4"}
choose-replace=true
```

***

# basicupload.post.extraheaders.1

<font color="#3b9f0f">OPTIONAL  </font>This is useful for when you want to upload to AWS S3 and need to set the access control list to allow the uploaded video to be read by anyone.  Note that you may add more than one extra header by adding another entry with the number incremented, such as `basicupload.post.extraheaders.2`.

```javascript
"basicupload.post.extraheaders.1":"x-amz-acl:public-read"
```

***

# basicupload.post.maxwidth

<font color="#3b9f0f">OPTIONAL  </font>To reduce the size of videos that are posted to your servers, you may specify a video pixel width limit.  Videos that are smaller than that will not be altered.

```javascript
"basicupload.post.maxwidth":"1280"
```

***

# basicupload.post.method

<font color="#3b9f0f">OPTIONAL  </font>This is useful for when you want to upload to AWS S3 and need to set the post method to `PUT`.

```javascript
"basicupload.post.method":"PUT"
```

***

# basicupload.preview\.title

<font color="#3b9f0f">OPTIONAL</font><font color="#3b9f0f">  </font>The text to show for the title during video preview.

```javascript
"basicupload.preview.title"="Preview"
```

***

# basicupload.request.url

<font color="#ff6900">REQUIRED  </font>Specifies the URL to use when uploading the video.

:::hint{type="warning"}
If you are also using `basicupload.success.url (success callback property)`, then use a URL parameter like `id=myid` to link this call to [basicupload.success.url](docId\:S0KsAqafGNpfvbpnwMSLa).
:::

The URL used to `POST` the mp4 video file.  If you do not use the title and description options, then a `GET `request is used instead.

```javascript
"basicupload.request.url":"https://.../basicuploadS3Upload.php?id=myid"
```

***

# basicupload.session.data

****<font color="#3b9f0f">OPTIONAL</font>  This property allows you to pass in custom metadata (such as the URL or identifier of the original video) that gets stored in the associated Video Project and later returned as part of the video upload request. It enables functionality such as ["Replace Existing Upload"](docId\:S0KsAqafGNpfvbpnwMSLa) when editing previously hosted videos.&#x20;

### Purpose

This property supports workflows like `editVideo-URL`, where a user downloads and edits a previously uploaded video. Including this property ensures the backend can track and optionally replace the original video when the user re-uploads it.

The value of `basicupload.session.data` is included in the POST request to `basicupload.request.url` under the key `session-data`, along with other form fields such as `title` and `description`.

```javascript
"basicupload.session.data": "{\"originalUrl\":\"https://files.screencast-o-matic.com/video123.mp4\"}"
```

### Persistence Across Sessions

If the user records a video but does not immediately upload it, the session data will be saved to the Video Project. When the video is uploaded later—either from the Project Manager or editor—the `session-data` is preserved and included in the upload request.

***

# basicupload.site.name

<font color="#ff6900">REQUIRED</font><font color="#3b9f0f">  </font>The text to display while a video is uploading.

```javascript
"basicupload.site.name":"Example Site"
```

***

# basicupload.success.message

<font color="#3b9f0f">OPTIONAL</font><font color="#3b9f0f">  </font>The text to display when an upload is successful.

```javascript
"basicupload.success.message"="Upload Successful!"
```

***

# basicupload.success.showlink

<font color="#3b9f0f">OPTIONAL  </font>Optionally display a URL to the user that accesses the successfully uploaded video.  The URL is from the  [basicupload.success.url](docId\:S0KsAqafGNpfvbpnwMSLa) property.

```javascript
"basicupload.success.showlink"="false"
```

***

# basicupload.success.url

<font color="#3b9f0f">OPTIONAL  </font>The URL optionally shown for accessing a successfully uploaded video.  Also see [basicupload.success.showlink](docId\:S0KsAqafGNpfvbpnwMSLa).

```javascript
"basicupload.success.url":"https://.../basicuploadSuccess.php?id=myid"
```

***

# basicupload.virtualbackground.enabled﻿

<font color="#3b9f0f">OPTIONAL  </font>You may choose to enable the virtual background feature to support blur and background replacement. If this property is omitted, the default state will be enabled.

- If ScreenPal is hosting your files (jars, installers, etc.) then simply use true,false, or omit  the property accordingly (if you want it enabled).
- If YOU are hosting the files, and you have this set to true, or have the property omitted, then you will need to ensure you are also hosting the following files:
- `https://s3.amazonaws.com/files.screencast-o-matic.com/jars/som-native-cv-win64-0.1.3.zip`
- `https://s3.amazonaws.com/files.screencast-o-matic.com/jars/som-native-cv-osx64-0.1.3.zip`
- `https://s3.amazonaws.com/files.screencast-o-matic.com/jars/som-native-cv-aarch64-0.1.3.zip`

```javascript
"basicupload.virtualbackground.enabled":"true"
```

***

# locale

<font color="#3b9f0f">OPTIONAL  </font>The locale (language) to use in the ScreenPal Application.

| Value  | Language            |
| ------ | ------------------- |
| de     | German              |
| en     | English             |
| es     | Spanish             |
| fr     | French              |
| it     | Italian             |
| ja     | Japanese            |
| pt\_br | Portuguese (Brasil) |
| zh     | Chinese             |



```javascript
"locale": "en"
```

***

# som.\*.app.content.subdirectory

<font color="#ff6900">REQUIRED</font><font color="#3b9f0f">  </font>This is the subdirectory where your user's recordings will be stored.  For example,"C:\Users\\\[UserName]\Screen Recorder\Recordings" and "C:\Users\\\[UserName]\Screen Recorder\Screenshots", if you set the value to "Screen Recorder".

```javascript
"som.*.app.content.subdirectory":"Screen Recorder"
```

***

# som.\*.app.drawandzoom.enabled

<font color="#3b9f0f">OPTIONAL  </font>Optionally show the **Show Draw & Zoom Controls** button on the ScreenPal Recorder.

```javascript
"som.*.app.drawandzoom.enabled":"true"
```

***

# som.\*.app.editing.enabled

<font color="#3b9f0f">OPTIONAL  </font>Optionally show the **Edit Video** button on the Upload UI panel.

```javascript
"som.*.app.editing.enabled":"true"
```

***

# som.\*.app.frame.title

<font color="#ff6900">REQUIRED</font><font color="#3b9f0f">  </font>This is the title shown on the window for the application.

```javascript
"som.*.app.frame.title":"Screen Recorder"
```

***

# workflow

<font color="#3b9f0f">OPTIONAL  </font>A Workflow, also known as deep-linking, is a ScreenPal feature that allows a URL to specify how ScreenPal should open.  For example, adding `&workflow=openVideoManager` to a ScreenPal launching URL instructs ScreenPal to start up and then run the `openVideoManager`Workflow, which tells ScreenPal to show the Library Manager with the Videos Tab selected.

For more information see [Deep Linking - Workflows](docId\:FcJBaomsucbU8CLRs0tm5).

