Direct Upload

Upload files directly to Gumlet

Create Video Collection

To use direct-upload facility first step is to create a new video collection with Direct Upload as Collection Origin Type.

Once a collection is created you can use the direct-upload facility with either Gumlet Dashboard or REST APIs.

Using Dashboard

1. Go to the video manager of the above-created collection

2. Process new video and set necessary parameters

3. Upload Video File

Start uploading a video file by selecting it from the file browser.

After successful completion of the upload, you will be redirected back to the video manager.

4. Check Asset status in the video manager


1. Create an authenticated Gumlet URL

The first step is creating a new Direct Upload Asset with Asset Parameters as you want. The Gumlet API will return an authenticated URL that you can use directly, as well as an asset ID specific to that Direct Upload Asset so you can check the status later via the API or in Gumlet Video Manager.

curl -L -X POST '' \
-H 'Authorization: Bearer <YOUR_API_KEY>' \
-H 'Content-Type: application/json' \
-d '{
    "format": "hls",
    "resolution": ["240p", "360p", "720p", "1080p"],
    "image_overlay": {
        "url": "",
        "height": "10%",
        "width": "10%",
        "horizontal_align": "left",
        "horizontal_margin": "5%",
        "vertical_align": "top",
        "vertical_margin": "5%"
    "asset_id": "60c1b50a6676496c4bd9bec7",
    "progress": 0,
    "created_at": 1623307530439,
    "status": "upload-pending",
    "input": {
        "transformations": {
            "format": "hls",
            "resolution": [
            "video_codec": [
            "audio_codec": [
            "image_overlay": {
                "url": "",
                "vertical_align": "top",
                "horizontal_align": "left",
                "vertical_margin": "5%",
                "horizontal_margin": "5%",
                "width": "10%",
                "height": "10%"
            "thumbnail": [
            "thumbnail_format": "png",
            "mp4_access": false,
            "per_title_encoding": true,
            "process_low_resolution_input": false,
            "keep_original": true
        "source_url": "60c1af0c667649f5a0d9ada2/60c1b50a6676496c4bd9bec7/origin-60c1b50a6676496c4bd9bec7"
    "output": {
        "format": "hls",
        "status_url": "",
        "playback_url": "",
        "thumbnail_url": [
    "upload_url": ""

2. Use URL to upload a file

Once you have got upload_url like in the above response example, you'll use the secured URL to make a PUT request that includes the file in the body as following.

curl -v -X PUT -T video.mp4 <upload_url>
var fs = require('fs');
var request = require('request');
var options = {
  'method': 'PUT',
  'url': '<upload_url goes here>',
  'headers': {
    'Content-Type': 'video/mp4'

fs.readFile('video.mp4',(data, err) => {
  if (!err) options.body = data;

request(options, function (error, response) {
  if (error) throw new Error(error);
import requests

url = "<upload_url goes here>"

headers = {
  'Content-Type': 'video/mp4'

response = requests.request("PUT", url, headers=headers, data=payload)

require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('<upload_url goes here>');
$filename = "video.mp4";    
$fp = fopen($filename, "r"); //open file in read mode    
$contents = fread($fp, filesize($filename)); //read file 
  'follow_redirects' => TRUE
  'Content-Type' => 'video/mp4'
try {
  $response = $request->send();
  if ($response->getStatus() == 200) {
    echo $response->getBody();
  else {
    echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
catch(HTTP_Request2_Exception $e) {
  echo 'Error: ' . $e->getMessage();

On successful completion of the cURL command, you should find new Assets in the Gumlet Video Manager with the settings you specified in the first step to create Direct Upload Asset.

3. Access uploaded video

You can access your uploaded video by using Video Asset Status API. You will receive original_download_url field in response of the API which will contain a URL for accessing the uploaded video.

By default, Gumlet will keep your original videos in it's stoage space. If you don't want your original video to be stored on Gumlet storage then you can add keep_originalparameter with value false in Create Asset API and Gumlet will delete your original video after processing.