Using OliveTin to Host YouTube Live Channel URLs Based on the Kister Method

What version of Channels DVR are you running? 2025.01.03.0234

What version of OliveTin for Channels are you running? 3.9

What is the name of the Channels source you created? YouTubeLive

What is the name of your m3u file? YouTubeLive.m3u

More explanation about the "non-YouTube Internet stream": I tested adding code with a stream "not hosted on YouTube" (but from another website) to the "YouTubeLive.m3u". This stream works fine with ChannelsDVR accessing it through OliveTin. The only streams not working are the ones hosted on YouTube.

You are either looking in the wrong place for it (compose?) or are running the wrong OliveTin.

What does your m3u file look like right now, after OliveTin for Channels has processed it?
For the lines that begin with this, paste only the part I'm showing and delete everything after what I'm showing when you paste it here (your Internet IP address is in there further to the right)
https://manifest.googlevideo.com/api/manifest/hls_variant/expire/1735962591/

1 Like

Sorry, I was looking at the Docker compose file Version.

OliveTin version: 2025.01.02

And your m3u file now looks like what

Just copy your Source URL


and paste it in your browser, which should prompt you to download the file YouTubeLive.m3u.
Then open that file in a text editor and copy/paste it here.

1 Like

When I run the URL updater now, I am seeing some errors. I think I am going to reinstall OliveTin. I will keep you updated. Thanks for the quick replies!

If you're running it on a Synology, make sure you're using HOST_DIR=/volume1/docker in your OliveTin for Channels Portainer stack. See this topic OliveTin for Channels - cannot access static file server - #29 by cyoungers

All 4 YouTube channels work now! Recreating OliveTin Portainer stack fixed the issue.

One tip for others using Synology NAS: Paths are case sensitive! It took me a while to figure out I had typed "docker" as "Docker". It should be exactly as chDVRuser says: HOST_DIR=/volume1/docker

Thanks @chDVRuser and @bnhf for the great tool, and for creating a way to integrate YouTube channels again!!

2 Likes

Anybody running into problems with the m3u expiring in channels? For the last couple of days I’ve been getting error 503 in channels when trying to tune. The solution appears to be to reload the m3u in channels source and it will work for awhile. Sometimes one of the streams will work and the other will get an error 503 but both will eventually stop working with a 503. Here is some info on setup.

Ubuntu desktop running docker/portainer/olivetin on one machine and channels dvr on different Ubuntu desktop machine.

Olivetin version 03Jan25_23:04
Channels dvr version 2024.12.27.0121
Channels log:


2025/01/04 20:57:24.412149 [ERR] Could not start stream for M3U-YouTubeLive ch6401 Starship Live: M3U: Could not fetch playlist from manifest.googlevideo.com: GET: https://manifest.googlevideo.com/api/manifest/hls_variant/expire/1736024699/ei/G055Z-C1HIuDy_sPmoPxwQg/ip/redacted/id/mhJRzQsLZGg.11/source/yt_live_broadcast/requiressl/yes/xpc/EgVo2aDSNQ%3D%3D/hfr/1/playlist_duration/30/manifest_duration/30/maudio/1/spc/x-caUJEb0eHPeTaK-KUlBqPPd_mAKtL-KGQ6GzaLdPUmeBDeJ3dMJUbguSq82oUm_jIedjk/vprv/1/go/1/rqh/5/pacing/0/nvgoi/1/keepalive/yes/fexp/51326932%2C51335594%2C51355912%2C51371294/dover/11/itag/0/playlist_type/DVR/sparams/expire%2Cei%2Cip%2Cid%2Csource%2Crequiressl%2Cxpc%2Chfr%2Cplaylist_duration%2Cmanifest_duration%2Cmaudio%2Cspc%2Cvprv%2Cgo%2Crqh%2Citag%2Cplaylist_type/sig/AJfQdSswRAIgX9MJo7dEVONIvgWv6fvWfFUb0bYatAbN-BQHcIFAqU8CIB5lBmqPNVHnaYSC86Xg5-Q8ucJKvXMGlJ1qX8Zd7N2k/file/index.m3u8: 403 Forbidden 
2025/01/04 20:57:37.399009 [ERR] Could not start stream for M3U-YouTubeLive ch6402 Sky News: M3U: Could not fetch playlist from manifest.googlevideo.com: GET: https://manifest.googlevideo.com/api/manifest/hls_variant/expire/1736024700/ei/HE55Z4_bC-7Cy_sPiq-p2A8/ip/redacted/id/I5d_iiiXXgk.1/source/yt_live_broadcast/requiressl/yes/xpc/EgVo2aDSNQ%3D%3D/hfr/1/playlist_duration/30/manifest_duration/30/maudio/1/gcr/us/spc/x-caUE316XbnNQQ4lLIWzt2mzd0X3iz3fwbDEa283rDznEPbZt1kqIyRAGhQPGqY2crKWf4/vprv/1/go/1/rqh/5/pacing/0/nvgoi/1/keepalive/yes/fexp/51326932%2C51335594%2C51355912%2C51371294/dover/11/itag/0/playlist_type/DVR/sparams/expire%2Cei%2Cip%2Cid%2Csource%2Crequiressl%2Cxpc%2Chfr%2Cplaylist_duration%2Cmanifest_duration%2Cmaudio%2Cgcr%2Cspc%2Cvprv%2Cgo%2Crqh%2Citag%2Cplaylist_type/sig/AJfQdSswRgIhAPxkxg5X4youUgDhNI1sIC62JfgJFr4Ify6XdD6ic-kyAiEA5sqa_vHGrDaMA2_uQbds71SlAbHjpdyxhCBRVR5gzC4%3D/file/index.m3u8: 403 Forbidden 
2025/01/04 21:01:15.238461 [M3U] Refreshed lineup for YouTubeLive with 2 channels
2025/01/04 21:01:50.545478 [M3U] stream timestamps: space6401: start_at=2025-01-04T21:01:16-06:00 end_at=2025-01-04T21:01:44-06:00 live_delay=4.539478198s
2025/01/04 21:01:50.545508 [TNR] Opened connection to M3U-YouTubeLive for ch6401 Starship Live
2025/01/04 21:01:56.263127 [SNR] Rewriter statistics for 192.168.1.149 (Upstairs Apple TV) for ch6401 Starship Live: discontinuity_detected=0 transport_errors=0 saw_pcr=false saw_pmt=true highest_pts=10.000000
2025/01/04 21:01:56.263208 [SNR] Buffer statistics for 192.168.1.149 (Upstairs Apple TV) for ch6401 Starship Live: buf=0% drop=0%
2025/01/04 21:01:56.263275 [SNR] Streaming statistics for 192.168.1.149 (Upstairs Apple TV) for ch6401 Starship Live: timeouts=0 segment_timeouts=0 playlist_timeouts=0
2025/01/04 21:01:56.270362 [TNR] Closed connection to M3U-YouTubeLive for ch6401 Starship Live
2025/01/04 21:01:57.572784 [M3U] stream timestamps: yt2m3u8-@SkyNews: start_at=2025-01-04T21:01:25-06:00 end_at=2025-01-04T21:01:50-06:00 live_delay=2.526783101s
2025/01/04 21:01:57.572834 [TNR] Opened connection to M3U-YouTubeLive for ch6402 Sky News
2025/01/04 21:02:07.239935 [SNR] Rewriter statistics for 192.168.1.149 (Upstairs Apple TV) for ch6402 Sky News: discontinuity_detected=0 transport_errors=0 saw_pcr=false saw_pmt=true highest_pts=20.000000

As you can see both started working after a simple reload m3u from within channels.

m3u file:


#EXTM3U
#EXTINF:-1 channel-id="space6401" channel-number="6401" tvc-guide-art="https://ih1.redbubble.net/image.2847364920.7154/bg,f8f8f8-flat,750x,075,f-pad,750x1000,f8f8f8.jpg" tvg-logo="https://ih1.redbubble.net/image.2980715224.0769/flat,750x,075,f-pad,750x1000,f8f8f8.jpg" tvc-guide-description="Starship is SpaceX's fully reusable launch system which is being developed at Starbase in Cameron County, Texas. Starbase LIVE provides 24/7 coverage of the exciting developments and testing progress." tvc-guide-placeholders="7200" tvc-guide-title="Starship Development from SpaceX.” tvc-guide-art="https://ih1.redbubble.net/image.2847364920.7154/bg,f8f8f8-flat,750x,075,f-pad,750x1000,f8f8f8.jpg" tvg-name="Starship Development from SpaceX’s Boca Chica Facility in Texas.",Starship Live
# yt-source=https://www.youtube.com/watch?v=mhJRzQsLZGg
https://manifest.googlevideo.com/api/manifest/hls_variant/expire/1736060703/ei/v9p5Z_-CEu200_wP2Kuq6QM/ip/redacted/id/mhJRzQsLZGg.11/source/yt_live_broadcast/requiressl/yes/xpc/EgVo2aDSNQ%3D%3D/hfr/1/playlist_duration/30/manifest_duration/30/maudio/1/spc/x-caUCf_hCrIxi706lbgZAMa4iL9YN0wrIktrvD7lXf1eEQeeyoEeoa7bSf3XM4zUduQMlM/vprv/1/go/1/rqh/5/pacing/0/nvgoi/1/keepalive/yes/fexp/51326932%2C51335594%2C51355912%2C51371294/dover/11/itag/0/playlist_type/DVR/sparams/expire%2Cei%2Cip%2Cid%2Csource%2Crequiressl%2Cxpc%2Chfr%2Cplaylist_duration%2Cmanifest_duration%2Cmaudio%2Cspc%2Cvprv%2Cgo%2Crqh%2Citag%2Cplaylist_type/sig/AJfQdSswRQIgYPQyH0CP8p8xsQ7uBIOoo4E81vSK3dWBmHCXd4dRon0CIQD6Gv8_GlZfqEcg4k-2rzGUuWhTz5_U6kndsT1gR8FJ0A%3D%3D/file/index.m3u8

#EXTINF:-1 channel-id="yt2m3u8-@SkyNews" channel-number="6402" tvc-guide-art="https://i.ytimg.com/vi/YDvsBbKfLPA/maxresdefault.jpg?v=67582ebf" tvc-guide-description="Watch Sky News live: Santa Tracker began with a child's accidental phone call to a secret US air force number ahe rest is Christmas history; The UK's oldest man has celebrated his 110th birthday with a special performance from opera singer Alfie Boe at his care home in Derbyshire; and good (and bad)" tvc-guide-placeholders="7200" tvc-guide-title="Watch Sky News" tvg-logo="https://i.ytimg.com/vi/YDvsBbKfLPA/maxresdefault.jpg?v=67582ebf" tvg-name="Sky News",Sky News
# yt-source=https://www.youtube.com/@SkyNews/live
https://manifest.googlevideo.com/api/manifest/hls_variant/expire/1736060703/ei/v9p5Z_uRO_2Fy_sP1vbq6Ak/ip/redacted/id/YDvsBbKfLPA.1/source/yt_live_broadcast/requiressl/yes/xpc/EgVo2aDSNQ%3D%3D/hfr/1/playlist_duration/30/manifest_duration/30/maudio/1/gcr/us/spc/x-caUIqQdmCpQOAaux75A9IHzJbe0O34FrQcH-BKFtMwv67OIBBbxb7XCHnlLm5813NvC60/vprv/1/go/1/rqh/5/pacing/0/nvgoi/1/keepalive/yes/fexp/51326932%2C51335594%2C51353497%2C51355912%2C51371294/dover/11/itag/0/playlist_type/DVR/sparams/expire%2Cei%2Cip%2Cid%2Csource%2Crequiressl%2Cxpc%2Chfr%2Cplaylist_duration%2Cmanifest_duration%2Cmaudio%2Cgcr%2Cspc%2Cvprv%2Cgo%2Crqh%2Citag%2Cplaylist_type/sig/AJfQdSswRQIhAKiOi-bSsNrbJpj0jYMx8S1aFJCZ6pI7MAFuwWTutshBAiB6Y-cv5woZXA5yjVeIa9cq5-6zNPunbJH4l3XvI1tk-w%3D%3D/file/index.m3u8

@chDVRuser any ideas?

It appears that Channels DVR isn't refreshing the source playlist URL.
What Manifest URL update interval frequency did you set for the background action?

Check the Channel DVR log for this
[M3U] Refreshed lineup for YouTubeLive
Should be happening every 5 hours if that's what you set.

Where can I set it to 5 hours?
This is what I’m seeing

In the OliveTin for Channels Action

Within the Olivetin action Manifest URL update interval (followed by m for minutes or h for hours). 0 to kill existing background process.
that is set to 5 hours.

What do you see in the DVR log?

OliveTin should be sending the command every 5 hours to the Channels DVR server you selected for the action to refresh the source playlist URL.

It appears it is only happening once a day at 9:00ish on the machine that runs channels on a different machine. There are others in the logs but I think those are refreshes I initiated to get the channels to work.

I also have a dvr server on the same machine as Olivetin and that dvr is showing the proper m3u refresh every 5 hours.

I was unaware it was calling the dvr to update the playlist. I’m wondering if I accidentally have 2 actions running in Olivetin for the two different servers. I’ll run kill on both dvr’s ip’s in the Olivetin action and restart the action on the dvr im having issues with. I’ll update tomorrow after it has some refresh’s.

I definitely had the action running for both dvr servers. I had to kill the action for both ip’s. It seems Olivetin can’t do two at once.

@bnhf said he only supports one of these per server.
If you have two actions running, one for each server, and it's not working, he'll have to check his code.
It's 4:30 AM bnhf time, so he should see this in a few hours.
I would think if you set the server ip:port for one server and then do the action again with the server ip:port for the other server, that it should work.

That would be the daily refresh Channels does during the morning guide refresh.

You can set the frequency to 2m (two minutes) to see if it's working, then kill it and redo it with 5h

It seems to be working now with the 2min update on the separate machine. I’ll switch back to 5h and I think I’m good to go. Thanks for the help.

1 Like

Does it work on two servers, or are you just using it on one?
I just ran the action for my second server and it's running on both of them.

I'm pretty sure what @bnhf meant, was that it only supports one YouTubeLive source per server. But will support multiple servers.