Wyze bridge hls m3u import

Hi - new channels user here and first of probably many questions / requests for assistance.

I've seen the wyze bridge (https://github.com/mrlt8/docker-wyze-bridge) recommended a few times and people seem to be using it with success.

I have the bridge docker setup. I can view my cam directly in a web browser from the same machine channels is running on via http://localhost:8888/garage/

The m3u link wyze bridge generates is http://localhost:8888/garage/stream.m3u8

The contents of that file are:

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-ALLOW-CACHE:NO
#EXT-X-TARGETDURATION:2
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:1.95,
1641617974.ts

When I try to import it as a custom channel I get the following error:
2022/01/07 23:29:53.535541 [ERR] Failed to request m3u for test camera: Get "http://localhost:8888/garage/stream.m3u8": context deadline exceeded (Client.Timeout exceeded while awaiting headers)

Any ideas?

m3u and m3u8 are different things. I know its confusing.

You need to create a custom channel using Text, and make a m3u that points to your m3u8 url.

Thanks - is there a template somewhere I missed that outlines the format of the m3u file I need to generate that points to the m3u8?

There are a few examples in the docs on Channels Support - Add Custom Channels with M3U Playlists

You want something like this basically. Create a new custom channel in HLS mode with Text, and paste this:

#EXTM3U
#EXTINF:-1 channel-id="Garage",Garage Cam
http://localhost:8888/garage/stream.m3u8

Is this true? I know in practice, this may be the case. But technically, I was always under the impression that both were playlists; the only differentiating factor was that .m3u playlists were either ASCII or whatever your code page was set to, while .m3u8 playlists were guaranteed to be UTF-8 encoded. Regardless of the file extension (and perhaps the encoding), the content was equivalent.

Is that not the case?

Are you running the container on the same system as Channels? If not—or even if so—you may want to replace localhost with the actual IP address of the Wyze Bridge app running on your network. Docker—and containers in general—often have problems addressing other network resources on the same machine.

Thank you! It was all right in front of my face. I found a more feature filled example at the support link (i need to rtfm better!) and now I have it running already along with a pretty sweet guide entry.

m3u8 refers to http live streaming, which is fully specified in rfc8216

there is no specification for m3u. it originated in winamp, and some of the syntax was reused in the m3u8 spec, but they are not the same thing.

2 Likes

I didn't realize that there was an RFC codifying .m3u8. Thank you for the clarification.

(I think I may have to modify a few internal projects here to better meet standards.)

2 Likes

Yes - all is working now but I'll keep the localhost bit under advisement and will probably change when I move this to a more permanent config. I'm having trouble with a different docker container (for virtual linear espn+ hockey channels) running under docker in windows so I'm building a dedicated docker photon vm and plan on moving all my docker stuff there.

If I get the espn+ thing working I'll try to write it up my experience here if someone hasn't already yet.

1 Like