Kaltura CE Serving from Cloudfront with S3 origin Not Found

I am working with an Existing Kaltura CE Developer Account and wanting to play video from Kaltura.

Faced with space issues on our Amazon EC2 Kaltura instance was tasked with using S3 to store content and serve (HTTP,RTMP) the content from Amazon Cloudfront.

What I have done:

Remote Storage
Created New S3 Bucket with kalura subfolder for content
Created Remote Storage profile on Kaltura
Configured Kaltura to use Remote Storage (Success)
Uploaded a test video on Kaltura and all flavors were transfered to S3 bucket
Modified S3 bucket permissions to allow public access to content
Added crossdomain.xml to root of S3 bucket
Played flavors as a test (success) from S3 bucket

Delivery Profiles
Created HTTP Amazon Cloudfront Instance with /kaltura path and S3 bucket origin
Created RTMP Amazon Cloudfront Instance with S3 bucket origin
Played Flavors as test (success) from Cloudfront url

Created Kaltura Delivery Profile for HTTP format delivery
Created Kaltura Delivery Profile for RTMP format delivery

Configured Publisher Specific Delivery Settings adding each of the Delivery Profiles Created

Accessed KMC > content > Manage > select video to test video.
I see Thumbnail and click play and see a black rectangle
I click > Preview and Embed and click play
I see Sorry, clip not found. Media not found.

There are additional setting that I have not set:

[ ] Enforce Delivery
[ ] Service Host Name: [ ]
[ ] CDN Host: [ ]
Thumbnail Delivery URL: [ ]
Cache Flavor Version: [ ]

[ ] Support animated (gif) thumbnails
[ ] Apply access control rule on thumbnail

Has anyone else worked through this and gotten it working?

Thank you in advance.

1 Like


Your general description of the steps is correct.
Do uploaded entries make it into the S3 bucket? if so, then step one is complete:) if not, obviously, we will need to debug that first.
Assuming they do reach the right bucket, start by opening your browser’s devtools and looking at the request made in the “Network” tab. We’re looking for a call similar to:
followed by:

The way it works is the delivery profiles are stored in the kaltura.delivery_profile MySQL table. The interesting fields are:

mysql> select partner_id,id,name,url,host_name,streamer_type from delivery_profile\G

If the partner ID is 0, then all partners will use that profile UNLESS there is another profile that matches the streamer_type requested that belongs to the specific partner.

So, for example, the playManifest request above asks for:

and so, the following format will match:
partner_id: 0
id: 1001
name: Kaltura HLS segmentation
url: http://$HOST/hls
streamer_type: applehttp

So, what I recommend you do is look at what the playManifest request looks like in your case and what the serveFlavor request look like as well as what the delivery_profile table shows in your ENV.
Feel free to also post the records in delivery_profile but be sure to mask tokens or other sensitive info. Posting an embed player entry I can reach will also be helpful.

Thank you for the reply. Kaltura is pushing content to S3 and I have confirmed that this is working correctly.
I can also access this same media via cloudfront.

Need to look into request and make sure the the request is correct as you suggest.

I will post an update once I have deternined what needs to change. Again thank you for the direction.

Most welcome. Keep me posted.

Thank you for the help. I got Remote Storage on S3 and Delivery from Cloudfront working properly.

S3 Remote Storage checked configuration
Fixed path where it was not needed
Selected Flavors that are created and transferred to S3 through standard ingestion process
Amazon CF HTTP Delivery Profile checked configuration OK
Amazon CF RTMP Delivery Profile checked configuration OK
Kaltura Configuration for Developer Publisher ID
Added Publisher Specific Delivery Profiles (HTTP,RTMP) had I created

Tested (Working)

Great @jmelnick. Glad to hear we’re good.