Kaltura video player not displayed when using kwidget

Our internal web site uses http and plays videos using Kaltura 11.2 AIO CE running https under RHEL6.
We upgraded Kaltura to 12.10 and some videos play but others cannot be played because the player is not being displayed. google chrome console shows a syntax error because the javascript tries to communicate with kaltura using http rather than https.

We suspect the player is not being displayed because /opt/kaltura/app/cache/html5/v2.53/l/oader_https.min.2.53.js contains code that sets &protocol=http rather than &protocol=https.

To try to fix the problem, we changed the javascript code from:
+="&protocol="+location.protocol.slice(0,-1);
to
+="&protocol=https”;
and the player was displayed.

We backed out the Kaltura upgrade and went back to Kaltura 11.2

What should we do to get the latest Kaltura 12.x to work with our http web server?
We suspect that a javascript code change somewhere between kaltura-html5lib-v2.37.1-2.noarch and kaltura-html5lib-v2.53-1.noarch introduced the &protocol=xxx setting and is causing the problem. Since our http web site works with Kaltura 11.2 using https, I think it should also work with Kaltura 12.x using https.

Can you please advise.

Thanks.

Hi @stanrate,

When reporting playback issues, it is always best to provide a URL for an embedded player where we can see the problem.
That said, I’m guessing the issue is that since player version 2.48, the default playback method is HLS and that uses the Nginx VOD module to deliver the manifest and segments. Unlike before, when the default playback method was progressive download. Of course, using HLS is much better because of the adaptive bitrate capabilities. For very short videos, HLS is not used as it provides no added value, I assume the videos you are able to play are short ones.

If your site is served over HTTPs, when configuring Nginx, you must also opt for SSL, otherwise, any modern browser will block you on the grounds of an attempt at “mixed content”.
To reconfigure Nginx with SSL run:
/opt/kaltura/bin/kaltura-nginx-config.sh
And input ‘Y’ when prompted with:

Would you like to configure Nginx with SSL?

If this is not the problem, please provide a sample URL and I’ll gladly take a look.

Thanks,

Hi Jess,

As mentioned before, after we upgraded Kaltura from 11.2 to 12.10, videos can be played (when the player is displayed) but others cannot be played when the player is not displayed. Kaltura is configured to use ssl and https and our internal web server is configured to use http. People in our organization use our internal web server to get information and occasionally play videos. Since our web server uses http, the traffic between a google chrome web browser and our web server is http traffic. When someone plays a video, the web browser communicates with Kaltura using https port 443 for httpd and 8443 for nginx.

Most of our web pages do not use dynamic embed and the videos play fine using VOD, HLS-JS etc.

Some of our web pages use dynamic embed and kwidget. When someone displays one of these pages, they see a black solid rectangle instead of a player. We spent many hours investigating the cause and found the reason why the player is not displayed is because the Kaltura javascript seems to have a bug that causes it to try to make the web browser send a http request to Kaltura whereas it should be sending a https request.

In my first update, I included a code snippet showing the code in the javascript that incorrectly sent a request to Kaltura specifying &protocol=http whereas I believe it should have sent &protocol=https because we are using https ports 443 and 8443 to communicate with Kaltura’s httpd and nginx processes.

Now that I have provided this background information and clarification, can you please re-read my first post so you can better understand the root cause and what we did to prove that the problem seemed to be caused by code in the javescript.

To clarify further, when I login to Kaltura Admin Console from another google chrome tab, and use preview and embed to create a standalone page with a player and paste the url into another tab, I can play all the videos. The player works fine and can play all the videos. As mentioned before, if our WEB server page embeds a player statically, there are no problems and videos play using VOD and HLS-JS over Kaltura TCP ports 443 and 8443 using ssl and https. Pages that contain dynamic embed (via kwidget) do not display a player and therefore cannot play videos.

Sorry I can’t provide a url to our internal web server and Kaltura. It is not accessible to the public.

I think that you could probably reproduce the problem on your CentOS AIO CE host by changing code in /opt/kaltura/app/cache/html5/v2.53/l/oader_https.min.2.53.js
from:
+="&protocol="+location.protocol.slice(0,-1);
to
+="&protocol=http”;

This should result in the java script sending a http request to your kaltura system which is configured for ssl and expects https rather than http requests. This is what happens on our system and as a result, the player is not displayed when kwidget dynamic embed is used.

Thanks