API to upload video without using KMC?

Hello Kaltura experts,

Wondering if there is an API to use to programmatically upload video (suppose we know KMC admin password), as if the same effect of upload video manually into KMC.

thanks in advance,

when logged in as admin, checkout the api console, you can easily get the required function calls.

I agree with shaktil just browse through the api either on your local server or here: http://www.kaltura.com/api_v3/testmeDoc/index.php

1 Like

Hi shaktil,

Thanks for the suggestions. I am on KMC now as admin and what do you mean API console? Sorry for the dumb question as a new user. :smile:


Hi Ofer,

I find some bulk upload APIs, but deprecated? From the name of the API, I cannot identify one which could be used for upload video, appreciate if you could help to point out which API should I use? :smile:

Have a good weekend,

Look on these 2 items:

1 Like

Thanks Ofer for the details – always.

Quick question, for this API (http://www.kaltura.com/api_v3/testmeDoc/index.php?service=uploadToken), what exactly means a token here? Is it some admin credential?

If there is a sample code snippet about how to use the upload API to upload real files, it will be great. :smile:

Upload Token is just an “handle” that enables you to upload the content in chunks.
You get a new one from the server using the add method, and then each upload action is returning a new token.

1 Like

Thanks Ofer,

Is there a sample of real code handling uploading to refer to? :smile:

BTW, for “each upload action”, for each upload action, do you mean an action to upload a chunk of a part of a file, or the action of upload the whole file?


BTW, Ofer, if you could help to comment on this question, it will be great. :smile:


Very high level, upload of a file: (in C# syntax)

                tok = kaltura.getClient().UploadTokenService.Add(tok);
                         tok = kaltura.getClient().UploadTokenService.Upload(tok.Id, fileToLoad,.....)
                End Loop

               kaltura.getClient().MediaService.AddFromUploadedFile(mediaEntry, tok.Id);

Thanks Ofer,

Two quick questions,

  1. In your sample, you are using one token to upload multiple files?
  2. Will backend transcoding service automatically be invoked?


See: http://knowledge.kaltura.com/node/1280 and http://knowledge.kaltura.com/node/468 .
KMC uses the same API you’ll use, so you can also just use a network monitor to see the API calls it makes.

Generally speaking, upload follows these steps:

  1. Create a session ( http://knowledge.kaltura.com/node/461 )
  2. Create an upload token (uploadToken.add)
  3. Upload a file (uploadToken.upload)
  4. Create an Entry (entry.add)
  5. Associate the uploadToken with the Entry (entry.setContent)

When you’ll associate the entry with the uploaded file, that’s when the batch process in Kaltura will kick in automatically.

You may also want to check out this project if you’re looking for uploading via JS UI:

Or this project if you’re looking to submit a bulk upload (ingesting many files at once from accessible server):


Fantastic, thanks ZoharBabin! Have a great weekend.


Hi ZoharBabin,

Report an issue, it seems the images in the guide below cannot be displayed – I tried multiple browsers and computers. It is hard for me to follow without an image. :smile:

It will be great if anyone could fix.


Hello Lin, here at Panda O.S. we’ve developed an application layer on top of the Kaltura API. It’s called Bamboo.
You can check it out here http://demo.bamboo-video.com
To upload a video go to the Media Management section “http://demo.dev.bamboo-video.com/my-media

Hello Lin,
The images in that document do load for me.
Can you run a sniffer and report exactly what resources fail to load?

Works for me too. Should be something on your side.

Works for me now, thanks Jess and Ofer.


Hi ZoharBabin, Jess and Ofer,

After reading the 5 steps below, a bit lost why we need a concept of token here. We have uploaded file (entry) and session to upload, and wondering what is the logical meaning of token here? Does token mean/represent credential of the user who is uploading?

Create a session ( http://knowledge.kaltura.com/node/461 )
Create an upload token (uploadToken.add)
Upload a file (uploadToken.upload)
Create an Entry (entry.add)
Associate the uploadToken with the Entry (entry.setContent)