sn0ep
sn0ep

Reputation: 3943

Chromecast support for HLS, CORS error on Amazon S3

I am trying to integrate HLS streams in my chromecast app.

The receiver part is fine because i checked it with multiple HLS Stream urls.

i just cant get the CORS bit to operate correctly.

I am using Amazon AWS S3. I have set the CORS for my bucket.

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <AllowedMethod>PUT</AllowedMethod>
        <AllowedMethod>POST</AllowedMethod>
        <AllowedMethod>DELETE</AllowedMethod>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
</CORSConfiguration>

in my assumption this should allow access from all domains to access the resources inside this bucket.

But still i am getting the following error in javascript from Chromecast.

XMLHttpRequest cannot load http://s3-eu-west-1.amazonaws.com/interactive-encoding-out/watermark-sintel-test/playlist.m3u8. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://s3-eu-west-1.amazonaws.com' is therefore not allowed access. 

Upvotes: 0

Views: 2449

Answers (3)

sn0ep
sn0ep

Reputation: 3943

Right now i have used corsproxy as a reversed proxy that adds cors headers to my request. Really recommand this solution. No need for a custom receiver app this way. just install the corsproxy somewhere on your server

run the cors proxy:

$ corsproxy <SERVER_IP> <DESIRED_PORT>

and run the request like :

http://<SERVER_IP>:<DESIRED_PORT>/<YOUR REQUEST>

install from: https://www.npmjs.org/package/corsproxy

Upvotes: 0

Les Vogel
Les Vogel

Reputation: 7132

Based on http://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html, your example looks a bit more complex than nescessary.

<CORSConfiguration>
 <CORSRule>
   <AllowedOrigin>*</AllowedOrigin>
   <AllowedMethod>GET</AllowedMethod>
 </CORSRule>
</CORSConfiguration>

Is probably all that you need. That said, do you own the bucket interactive-encoding-out? That might be the issue. You might need to copy the segments to your own bucket where you can set this header before it will work.

Upvotes: 0

vanste25
vanste25

Reputation: 1774

Try this https://github.com/TOMODOcom/TOMODOkorz. It works for me.

TOMODOkorz allows you to make cross-origin requests to any domain. It will remove any cross-origin restrictions from your site once you add it to your site. Allows easy Cross-origin resource sharing

Upvotes: 1

Related Questions