Search code examples
javakaltura

Kaltura File Upload API


I have to upload file using java kaltura api. I have searched it about a lot,but could not find any helping docs. Please help me if anybody knows how to upload file in kaltura using java.

I got a C# API for file upload,i hope it will help you.

KalturaClient  kalturaClient = KalturaUtilsService.getKalturaClient();
            KalturaMediaEntry kalturaMediaEntry = new KalturaMediaEntry();


            kalturaMediaEntry.name = "Java Entry Using C#";
            kalturaMediaEntry.mediaType = KalturaMediaType.VIDEO;
            kalturaMediaEntry = kalturaClient.getMediaService().add(kalturaMediaEntry);
            FileStream fileStream = new FileStream("/home/alok/Desktop/index.mp4", FileMode.Open, FileAccess.Read);
            KalturaUploadToken uploadToken = kalturaClient.UploadTokenService.Add();
            kalturaClient.UploadTokenService.Upload(uploadToken.Id, fileStream);

            KalturaUploadedFileTokenResource mediaResource = new KalturaUploadedFileTokenResource();
            mediaResource.Token = uploadToken.Id;
            kalturaMediaEntry = kalturaClient.MediaService.AddContent(kalturaMediaEntry.Id, mediaResource);

Thanks in advance !!!


Solution

  • There is an example provided with the java client library (http://www.kaltura.com/api_v3/testme/client-libs.php) you can find it under src/Kaltura.java, method uploadMediaFileAndAttachToEmptyEntry

    Here's a simplified version:

    String adminSecret = "API-ADMIN-SECRET";
    Integer partnerId = PARTNER_ID;
    String filePath = "src/DemoVideo.flv";
    String uploadUserId = "TestUploader";
    
    // initialize the client
    KalturaConfiguration config = new KalturaConfiguration();
    config.setEndpoint("http://www.kaltura.com/");
    KalturaClient client = new KalturaClient(config);
    String ks = client.generateSession(adminSecret, uploadUserId, KalturaSessionType.ADMIN, partnerId);
    client.setKs(ks);
    
    // add the media entry
    KalturaMediaEntry mediaEntry = new KalturaMediaEntry();
    mediaEntry.name = "Uploaded Media";
    mediaEntry.mediaType = KalturaMediaType.VIDEO;
    mediaEntry = client.getMediaService().add(mediaEntry);
    
    // add the upload token
    KalturaUploadToken uploadToken = new KalturaUploadToken();
    uploadToken = client.getUploadTokenService().add(uploadToken);
    
    // initialize the file
    File file = new File(filePath);
    
    // upload the file
    client.getUploadTokenService().upload(uploadToken.id, file);
    
    // link between the file and the media entry
    KalturaUploadedFileTokenResource uploadedFileTokenResource = new KalturaUploadedFileTokenResource();
    uploadedFileTokenResource.token = uploadToken.id;
    client.getMediaService().addContent(mediaEntry.id, uploadedFileTokenResource);