Is there a get for media by ReferenceID

I can see from the docs that there is a service “media” with and action “get” which requires the ENTRY_ID, is there a way of doing the same thing with the Reference ID ? I.e I want to get stream and download links of my asset but using the reference ID … is this possible ?


Yes, it is.
You need to call
using the KalturaMediaEntryFilter filter with referenceIdEqual,

Hi Jess,

Thanks , so it should be something like (For Nodejs) :

var filter = new KalturaMediaEntryFilter();
    filter.referenceIdEqual = "111111";
    var pager = null;
    var cb = function(success, results) {
    if(!success) {
    if(results.code && results.message) {
var result =, filter, pager);

Yes, that is correct.

I am getting

var filter = new KalturaMediaEntryFilter();

ReferenceError: KalturaMediaEntryFilter is not defined

I can see it’s definition in KalturaV0.js

/usr/local/lib/node_modules/kaltura/KalturaVO.js:function KalturaMediaEntryFilter(){


Yeah, for some reason the module is not being exported with my setup.

I had to use

 var Kaltura =  require('Kaltura/KalturaClient'); 

To get the client working, trying to work out why the KalturaMediaEntryFilter is not available …

There is something broken in this module, will try work it out … but just so you know …

Same result … undefined

I can see the object in the Client Object … there must be something wrong with the way the module export is being done ?
Do you need to define a module.exports = { } before populating … I am not a node expert, in the past I always have used

module.exports = {

    add: function(x, y, z) {
    remove: function(x,y,z) {


etc …

var type = require(‘kaltura/KalturaVO’);
var filter = new type.KalturaMediaEntryFilter();
var pager = new type.KalturaFilterPager();
//var filter = new Filter();
filter.referenceIdEqual = “11111”;

var res =, filter, pager)

Now getting is not a function


Where do you instantiate the client? do not see it in the code you pasted…

I can see a “listAction” defined, not a list … my client seems ok from the object dump.
When I use

var client = new Kaltura.KalturaClient(config);    client.session.start(function(ks) {
if (ks.code && ks.message) {
            console.log('Error starting session', success, ks);
        } else {
            console.log("Success: " + require('util').inspect(client, false, null));
    }, "xxxxxxxxxxxx",


Yes, this is due to:

It was done so because ‘list’ is a preserved word in PHP, in JS, it actually isn’t but that is the origin of the issue.
Please use listAction()


Thanks, I have tried using listAction, but i can’t get any response other than undefined …

  var mycb = function(success, results) {
    if(!success) {
        console.log("failed:" + results);
    } else {
        console.log("passed:" + results);

var res =, filter, pager);

The callback gets a “success” but the result is undefined , so the output reads
passed: undefined

this is the actual request being sent with some signatures changed etc …

POST //api_v3/index.php?service=media&action=list&undefined HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Content-Length: 349
Connection: close


Actually in the RAW HTTP Log I can see the data …

Please share the full code so I can help you further.

In the callback function the results are not set , but the data comes back in the first success parameter

It took a lot of reverse engineering to get this to work. Firstly the way the module exports work and then the way in which the data is handled compared to how it is documented. I think these should be fixed :wink: