Channels IPTV links

I tested the Channels m3u8 links of my OTA channels from Apple devices individually as well as via m3u playlist from IPTV app like Feedlix app. It works from my home network but fails from out of home network.
The m3u8 link format is https://CHANNELS_DDNS:8089/devices/ANY/channels/X.X/hls/master.m3u8

Replace CHANNELS_DDNS with your DDNS and X.X with any channel ex. 5.1

What do I need to make it work from outside home network?

2 Likes

The URLs require authentication if you try to access them from outside your network.

The easiest way would be to login to my.channelsdvr.net from a desktop browser, use the cookies view to find the session cookie, then add it to the url (like https://..../master.m3u8?session=XXXXXX)

Please share how to generate session _id. Thanks

As I mentioned, you would need to get it out of the browser after it logs you in.

~Interesting… :slight_smile:

I was able to use it with VLC (open network stream) and the following URL for a channel (702) from the prime: This opens up SO many posibiliies… (if I can figure out how to create a playlist with multiple stations… etc…) this would be REALLY useful… Of course this was from inside so no auth needed.

http://192.168.1.222:8089/devices/ANY/channels/702/hls/master.m3u8

even better would be to have one “auto-generated” playlist that has the favorites and one with all channels… (or a HD/SD/Favorites playlist that is auto-generated by the dvr) …:slight_smile:

1 Like

Although not sure if this the correct way to do it… still researching/testing/etc… (The channel names seem to show correctly EXCEPT for the first one on the list always shows “service01” 192.168.1.222 is the channels DVR.

#EXTM3U
#EXTINF:0,CBSHD
http://192.168.1.222:8089/devices/ANY/channels/702/hls/master.m3u8
#EXTINF:0,ABCHD
http://192.168.1.222:8089/devices/ANY/channels/707/hls/master.m3u8
#EXTINF:0,NBCHD
http://192.168.1.222:8089/devices/ANY/channels/704/hls/master.m3u8
1 Like

The playlist format should be like

#EXTM3U

#EXTINF:-1 tvg-logo="https://xxxxx" group-title="News",CNN
http://xxxxx.m3u8

#EXTINF:-1 tvg-logo="https://xxxxx" group-title="Drama",ABC
http://xxxxx.m3u8

#EXTINF:-1 tvg-logo="https://xxxxx" group-title="HD",ABCHD 
http://xxxxx.m3u8

#EXTINF:-1 tvg-logo="https://xxxxx" group-title="Sports",ESPN 
http://xxxxx.m3u8

I’m a lover of IPTV and watch international news channels with a IPTV app. Some apps like Feedlix provide skip next/previous channels with auto steering controls and i.e I was requesting that feature on this community. Now I don’t need it.

It would be great if Channels app incorporate a IPTV section in the menu section with all channels populated automatically and also can be edited to add other m3u8 links from online.

If that happens I would discard all other IPTV apps.:blush:

1 Like

Thank you. That helps. Now to figure out how to get the channel logos and maybe the epg data either from Channels or SD or a free (legal) third party source.

I know that the channels devs in the past have stated that the channels clients would NOT have connectivity to external IPTV sources. I believe that is because there are probably too many variables that would affect the quality and experience of the user over all experience with the quality that their product produces… variables that are NOT under their control and would be a nightmare to support.

This “feature”: on the other hand if ever officially implemented (especially the auto generated playlists) would open up channels dvr to a whole new market… It would allow channelsdvr act as a LOCAL iptv “server” allowing those that use IPTV set top to access their tv channels that work with chnanelsdvr over the network. Many international users would take advantage of this feature where TVs with IPTV are common and iptv players can be found much easier than ATV4 or AntroidTV devices.

The only issue I see is that it would “compete” with their paid clients on some of there platforms allowing iptv clients to view live tv using the channels dvr “server” content :slight_smile: [but then the DVR subscription s $8.00/month) so there is hope]…since this would definitely add value to the product.

1 Like

Thanks. What would be validity of the session cookie? Is it possible to set it not expire or a long validity?

I got it working. The session cookie is valid for 1 month which is ok.

I see this warning in my log. What is it?

WARNING: linker: /mnt/expand/b9580023-d4a5-4535-9ab3-d1273c58502f/user/0/com.getchannels.dvr/files/channels-dvr/2018.01.30.0033/ffmpeg: unsupported flags DT_FLAGS_1=0x8000000
[hls @ 0x2037c5fc00] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly
1 Like

Is there any way to specify stream quality in the URL?

The session should be valid indefinitely.

Those warnings are harmless and can be ignored.

To specify quality, you can use master.m3u8?bitrate=3000&resolution=720

2 Likes

Thanks.

I have no experience with IPTV apps, and it’s not something we plan to support officially.

That said, the latest pre-release has a simple playlist built in at /devices/ANY/channels.m3u. You can pass in session, bitrate, resolution and they will be applied to all the streams. There is also a filter=favorites (or hd or sd).

So for example: http://ip:8089/devices/ANY/channels.m3u?session=xxxx&bitrate=2000&filter=hd

1 Like

I tested on the pre-release. I’m able to download the .m3u playlist but the hostname is missing in it which is causing failure to play.

#EXTM3U

#EXTINF:-1 tvg-logo="http://fanc.tmsimg.com/h5/NowShowing/28717/s28717_h5_aa.png" tvg-name="WRC-HD" group-title="Favorites",NBC
:///devices/ANY/channels/4.1/master.m3u8?session=xxxx&bitrate=2000&filter=hd

#EXTINF:-1 tvg-logo="http://fanc.tmsimg.com/h5/NowShowing/28719/s28719_h5_aa.png" tvg-name="WTTG-DT" group-title="Favorites",FOX
:///devices/ANY/channels/5.1/master.m3u8?session=xxxx&bitrate=2000&filter=hd

the format is also incorrect. It is missing hls in the playlist url https://ip:8089/devices/ANY/channels/x.x/hls/master.m3u8

Please correct the auto-generated playlist.

2 Likes

Thanks, the URLs should be fixed in the new pre-release build.

@tmm1

Thank you for implementing this feature. You have opened up a HUGE set of possibilities that make the ChannelsDVR system a MUCH more useful item for many and have now enabled some incredible additional uses for ChannelsDVR and TV viewing in the home (or remote with some work).

We understand that it is currently experiential and not supported, but I really believe that you should expand and advertise this feature publicly as a main ChannelsDVR ability

Using this feature may require a stronger server (for multiple transcodes) and more tuners (the more tuners the better) depending on usage.

For example, in testing with the last test dvr release I was able to get to work with the following

(some required reduced bitrate/resolution; some used the direct channel and some used the filders)

  • VLC
  • QuadStrem
  • Feedlix
  • MrMC
  • Kodi

Note most importantly that since it works with Kodi and the “Simple IPTV PVR” , you have now enabled all the set top devices that have some version of Kodi on them with the simple IPTV client but are not able to use AndroidTV (and the channels android client) to have an internal TV source for their units using this as a home iptv server.

.

4 Likes

In my testing I found “tuners all in use” error when trying to change the channels one after the other. Please see if you can fix this in next release by releasing the tuner and closing the connection as soon as user change the channel.

2018/03/16 17:30:25 [TNR] Closed connection to 105686A8 for ch4.1
2018/03/16 17:30:26 [TNR] Opened connection to 105686A8 for ch4.1 [transcode=mobile]
2018/03/16 17:30:26 [ERR] Failed to start stream for ch7.1: got HDHR error: 805 All Tuners In Use
2018/03/16 17:30:27 [HLS] Probing live stream for codec/bitrate took 1.151746145s
2018/03/16 17:30:27 [HLS] Starting transcoder for channel 4.1 from 192.168.1.1 (encoder=h264_mediacodecndk, resolution=480, deinterlacer=blend, bitrate=2000)
WARNING: linker: /mnt/expand/b9580023-d4a5-4535-9ab3-d1273c58502f/user/0/com.getchannels.dvr/files/channels-dvr/2018.03.16.0555/ffmpeg: unsupported flags DT_FLAGS_1=0x8000000
2018/03/16 17:30:27 [ERR] Failed to start stream for ch7.1: got HDHR error: 805 All Tuners In Use
[hls @ 0x201c85fc00] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly
2018/03/16 17:30:29 [ERR] Failed to start stream for ch7.1: got HDHR error: 805 All Tuners In Use
2018/03/16 17:30:30 [ERR] Failed to start stream for ch7.1: got HDHR error: 805 All Tuners In Use
2018/03/16 17:30:32 [ERR] Failed to start stream for ch7.1: got HDHR error: 805 All Tuners In Use
2018/03/16 17:30:33 http: TLS handshake error from 192.168.1.1:62976: EOF
2018/03/16 17:30:33 [ERR] Failed to start stream for ch9.1: got HDHR error: 805 All Tuners In Use
2018/03/16 17:30:34 http: TLS handshake error from 192.168.1.1:62978: EOF
2018/03/16 17:30:35 [ERR] Failed to start stream for ch9.1: got HDHR error: 805 All Tuners In Use
2018/03/16 17:30:36 [ERR] Failed to start stream for ch9.1: got HDHR error: 805 All Tuners In Use
2018/03/16 17:30:38 [ERR] Failed to start stream for ch9.1: got HDHR error: 805 All Tuners In Use
2018/03/16 17:30:39 [ERR] Failed to start stream for ch9.1: got HDHR error: 805 All Tuners In Use
2018/03/16 17:30:40 [HLS] Stopping inactive session ch5.1-dANY-ip192.168.1.1 @ 1m1.192267s
2018/03/16 17:30:40 [TNR] Closed connection to 105686A8 for ch5.1
2018/03/16 17:30:41 [TNR] Opened connection to 105686A8 for ch9.1 [transcode=mobile]
2018/03/16 17:30:43 [HLS] Probing live stream for codec/bitrate took 1.778886145s
2018/03/16 17:30:43 [HLS] Starting transcoder for channel 9.1 from 192.168.1.1 (encoder=h264_mediacodecndk, resolution=480, deinterlacer=blend, bitrate=2000)
WARNING: linker: /mnt/expand/b9580023-d4a5-4535-9ab3-d1273c58502f/user/0/com.getchannels.dvr/files/channels-dvr/2018.03.16.0555/ffmpeg: unsupported flags DT_FLAGS_1=0x8000000
[hls @ 0x202905fc00] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly
2018/03/16 17:31:00 [ERR] Failed to start stream for ch7.1: got HDHR error: 805 All Tuners In Use
2018/03/16 17:31:03 [ERR] Failed to start stream for ch7.1: got HDHR error: 805 All Tuners In Use
2018/03/16 17:31:03 [ERR] Failed to start stream for ch7.1: got HDHR error: 805 All Tuners In Use
2018/03/16 17:31:05 [ERR] Failed to start stream for ch7.1: got HDHR error: 805 All Tuners In Use
2018/03/16 17:31:40 [HLS] Stopping inactive session ch9.1-dANY-ip192.168.1.1 @ 57.558566s
2018/03/16 17:31:40 [TNR] Closed connection to 105686A8 for ch9.1
2018/03/16 17:31:44 [TNR] Opened connection to 105686A8 for ch9.1 [transcode=mobile]
2018/03/16 17:31:45 [HLS] Probing live stream for codec/bitrate took 1.107750572s
2018/03/16 17:31:45 [HLS] Starting transcoder for channel 9.1 from 192.168.1.1 (encoder=h264_mediacodecndk, resolution=480, deinterlacer=blend, bitrate=2000)
WARNING: linker: /mnt/expand/b9580023-d4a5-4535-9ab3-d1273c58502f/user/0/com.getchannels.dvr/files/channels-dvr/2018.03.16.0555/ffmpeg: unsupported flags DT_FLAGS_1=0x8000000
[hls @ 0x203705fc00] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly
2018/03/16 17:31:47 [ERR] Failed to start stream for ch20.1: got HDHR error: 805 All Tuners In Use
2018/03/16 17:31:49 [ERR] Failed to start stream for ch20.1: got HDHR error: 805 All Tuners In Use
2018/03/16 17:31:50 [ERR] Failed to start stream for ch20.1: got HDHR error: 805 All Tuners In Use
2018/03/16 17:31:52 [ERR] Failed to start stream for ch20.1: got HDHR error: 805 All Tuners In Use
2018/03/16 17:31:53 [ERR] Failed to start stream for ch20.1: got HDHR error: 805 All Tuners In Use
2018/03/16 17:31:55 [ERR] Failed to start stream for ch20.1: got HDHR error: 805 All Tuners In Use
2018/03/16 17:31:56 [ERR] Failed to start stream for ch20.1: got HDHR error: 805 All Tuners In Use
2018/03/16 17:31:58 [ERR] Failed to start stream for ch20.1: got HDHR error: 805 All Tuners In Use
2018/03/16 17:31:59 http: TLS handshake error from 192.168.1.1:63017: EOF
2018/03/16 17:31:59 [ERR] Failed to start stream for ch22.1: got HDHR error: 805 All Tuners In Use
2018/03/16 17:32:01 [ERR] Failed to start stream for ch22.1: got HDHR error: 805 All Tuners In Use
2018/03/16 17:32:02 [ERR] Failed to start stream for ch22.1: got HDHR error: 805 All Tuners In Use
2018/03/16 17:32:04 [ERR] Failed to start stream for ch22.1: got HDHR error: 805 All Tuners In Use
2018/03/16 17:32:05 [ERR] Failed to start stream for ch22.1: got HDHR error: 805 All Tuners In Use
2018/03/16 17:32:07 [ERR] Failed to start stream for ch22.1: got HDHR error: 805 All Tuners In Use
2018/03/16 17:32:11 [ERR] Failed to start stream for ch26.1: got HDHR error: 805 All Tuners In Use
2018/03/16 17:32:13 [ERR] Failed to start stream for ch26.1: got HDHR error: 805 All Tuners In Use
2018/03/16 17:32:14 [ERR] Failed to start stream for ch26.1: got HDHR error: 805 All Tuners In Use
2018/03/16 17:32:16 [ERR] Failed to start stream for ch26.1: got HDHR error: 805 All Tuners In Use
2018/03/16 17:32:17 [ERR] Failed to start stream for ch26.1: got HDHR error: 805 All Tuners In Use
2018/03/16 17:32:19 [ERR] Failed to start stream for ch26.1: got HDHR error: 805 All Tuners In Use
2018/03/16 17:32:20 [ERR] Failed to start stream for ch26.1: got HDHR error: 805 All Tuners In Use
2018/03/16 17:32:22 [ERR] Failed to start stream for ch26.1: got HDHR error: 805 All Tuners In Use
2018/03/16 17:32:25 [HLS] Stopping inactive session ch9.1-dANY-ip192.168.1.1 @ 38.371666s
2018/03/16 17:32:25 [TNR] Closed connection to 105686A8 for ch9.1
2018/03/16 17:33:10 [HLS] Stopping inactive session ch4.1-dANY-ip192.168.1.1 @ 2m43.575966s
2018/03/16 17:33:10 [TNR] Closed connection to 105686A8 for ch4.1
2018/03/16 17:33:17 [TNR] Opened connection to 105686A8 for ch7.1 [transcode=mobile]
2018/03/16 17:33:18 [HLS] Probing live stream for codec/bitrate took 1.900321875s

There is no way to detect that the connection is closed, because there is no connection in HLS. Video is downloaded in segments using different HTTP requests. There is already a timeout in place to release the tuner, but without a custom client and custom stop request there’s not much else you can do.

1 Like

Another issue you may run into: if you pause the player for more than 10s, the server will think it is inactive and release the tuner.

In our clients we have special logic to continue to ping the server while paused, and to force a release when the player is stopped.

It’s hard to fix these kind of edge cases with generic IPTV apps, which is why the m3u is an unsupported hack and not an official feature.