Problem when integrate Sight engine with api.video Livestream

Hello,

I’m trying to implement the Sight Engine to detect the bad video/livestream content with this service https://sightengine.com/

The problem is that it works with the video on demand but not for the Livestream, could you have a look at this? below are the comments from our developer, we have already sent this via email

I’m trying to use your API with my live stream app, I have a problem when I start a live stream with api.video library API (http://api.video/), they return m3u8 link and also RMTP link, but the problem is when I use your Continuous Moderation for the live stream, it always said that “Could not fetch stream from the streaming server. Server returned 404 Not Found” even though I can play these URL on https://www.hlsplayer.net/. Can you check it?

Thanks,
Dai

Dai,

This is a neat idea - to moderate live video content.

When do you initiate the call to sight engine? There is ~15s delay from when your stream starts streaming until the m3u8 is available for viewing. Before that time, the m3u8 file will throw a 404.

My suggestion: in your app logic - first verify that the m3u8 is not throwing a 404. This means that your livestream has:

  1. started
  2. been submitted to api.video
  3. been processed and
    4, is streaming out to users.

Only at this point can sight engine see the stream for moderation.

If streamengine can accept the RTMP stream - you can send that to 2 locations: streamengine and api.video. I looked (very briefly) at their docs, and I could not tell if this was possible. You’ll want to do this via a proxy server - sending 2x the data from a user’s device might not work due to their internet connection (and if they are on cellular-you’ll double their data usage…)

Doug

Hi,

Thank you to answer. The problem is I create a live stream on https://livestream.a.video/, then I tested it on hlsplayer and It works, but the sightengine API tells me that “Could not fetch stream from the streaming server. Server error”. When I use that API to check a video with the link start by https://cdn.api.video/vod… It work.
Do you need my example code and sightengine API key to check it?

Phuc

Before we do too much troubleshooting - we should wait to hear back from the sightengine team.

If you can see the video playing, but Sightengine cannot - it does not sound like the issue is on our end. You are using their continuous mode, correct?

Doug

Yes, I’m using the continuous mode.

Phuc

Hi Doug,

This is the reply from sightengine team:

It seems that the RTMP url provided by api.video is not a RTMP URL meant to be used to view/download a video, but instead to send/upload a video to API.video.
This is the RTMP url you use to send the live stream to api.video. This live stream is then made available through the https embed players provided by API.video.
This is why you are getting an error message when providing this RTMP url to our moderation engine. Our engine is unable to view or retrieve a stream with this URL.

Phuc

Phuc,

It appears that Sightengine does not support RTMP video. There’s not a whole lot we at api.video can do to remedy that.

It sounds like you were submitting the RTMP input video stream to them, and not the m3u8 url output stream (which was my assumption). Try submitting with the HLS that comes out of api.video (using my suggestions above - wait until it no longer fires a 404)

Doug

Hi Doug,
Like I mentioned in the first post, I already use the m3u8 link provided from your API but it still said that couldn’t fetch. Yesterday I already tested by creating a live stream from your API and run it on our app, both hls player online and our app can watch the live stream but sightengine. I will try it again today. Can I have your email, I will send you my test videos. Thank you.

Phuc

if you are submitting the m3u8 url to sightengine, why is sightengine saying that you are providing them with the RTMP url? I’m not understanding your architecture here.

Can you please verify which URL are you providing to sightengine?

Please send me a Private message with the urls. I’d also like a schematic of how you are sending the data to sightengine (at which part of the live streaming process), just to be sure I have a clear understanding of the architecture in play.

Doug