What is an M3U8 Playlist?

M3U is a computer file format for a multimedia playlist. One common use of the M3U file format is creating a single-entry playlist file pointing to a stream on the Internet. The created file provides easy access to that stream and is often used in downloads from a website, for emailing, and for listening to Internet radio.

Although originally designed for audio files, such as MP3, it is commonly used to point media players to audio and video sources, including online sources. M3U was originally developed by Fraunhofer for use with their Winplay3 software,[4] but numerous media players and software applications now support the format.

Quote source https://en.wikipedia.org/wiki/M3U

Enabling the TV Channels API for your Monitor

For optimal results use an H.264 based Stream Type (blue section in Shinobi's Monitor Settings) like HLS, MP4, or FLV.

1. Open the Monitor Settings for the desired monitor and scroll down to the Stream section (blue section).

2. Set TV Channel to yes.

3. Set a TV Channel ID. If you choose not to set one a random one will be generated when requesting the playlist.

Optionally you may set the Group but that is only used if you choose to use M3U8 Plus. This will be explained more below.

4. Create an API key from the menu in the top left of the dashboard. Keep note of the API key and your Group Key (found in the header of the API key creation window). These will be used for accessing the playlist.

Accessing the Playlist

Open the API endpoint for a TV Channel in your web browser to test the result. The structure is as follows.

http://[YOUR_SHINOBI_HOST]/[API_KEY]/tvChannels/[GROUP_KEY]
  • [YOUR_SHINOBI_HOST] : The IP Address and port of your Shinobi installation.
  • [API_KEY] : The API key you created in Step 4 of the "Enabling the TV Channels API for your Monitor" section.
  • [GROUP_KEY] : The unique ID for the group that contains the monitors.

You'll probably notice that what you're looking at is not an M3U8 playlist. It is a JSON. To render it into a M3U8 add the query string ?type=m3u8.

http://[YOUR_SHINOBI_HOST]/[API_KEY]/tvChannels/[GROUP_KEY]?type=m3u8

Here is an example of what it looks like one my machine at home.

#EXTM3U
#EXTINF:-1,home (HLS) 
http://10.1.103.44:8080/d125c598d79380cba888cfeb7364670c/hls/2qVsW6mk2U/Reolink1/s.m3u8
#EXTINF:-1,home (HLS) 
http://10.1.103.44:8080/d125c598d79380cba888cfeb7364670c/hls/2qVsW6mk2U/Reolink2/s.m3u8
#EXTINF:-1,cars (HLS) 
http://10.1.103.44:8080/d125c598d79380cba888cfeb7364670c/hls/2qVsW6mk2U/cars/s.m3u8

Now it was mentioned you could get an M3U8 Plus. Just change the type query value to m3u8_plus.

http://[YOUR_SHINOBI_HOST]/[API_KEY]/tvChannels/[GROUP_KEY]?type=m3u8_plus

Now use that playlist URL in VLC (or any other compatible application) and you can select which stream to watch.

Enjoy!