FastChannels - FAST Channels aggregator/manager

Hmm, I wonder what I'm doing wrong, then. I'm home now, and testing. Using FastChannels 3.5.1. Other channels are playing fine, but this first attempt at a YouTube livestream does not.

These are my settings:

The FastChannels log says:
2026-05-05 21:48:14,753 INFO app.routes.play: [play] request ip=192.168.65.1 source=custom channel_id=108ec551-bf4d-49aa-a6dc-5a1ec8ebd380 channel_name=Lofi Girl: Relaxing Piano Radio Calm Music to Focus To

But on AppleTV Channels client I get this error:

Streaming to the tuner failed. Press play to try again.
M3U: Could not parse playlist from 10.0.1.21:5523: Can't detect playlist type

Am I missing something obvious?

I don't think you did anything wrong. Looks like the detector didn't pickup the right URL after detection (notice it's still the webpage url). I tested the URL you put in there and got a really long one (what I've noticed with other YouTube live streams). Try detect again?

yep - bug in Plex detector. fixing.

also, i'll look more into the channels report. like I mentioned, I did very little with it to start. Basically, its looking at the data it has - which is last scrape. so, if one of your scrapes failed for some reason (most likely 403, the upstream API just had a hiccup), it would count that scrape as valid still (for this report). I'd probably need to re-think the logic there, but honestly not sure how deep I'll go on that report since it's pretty niche.

2 Likes

Thanks, that did the trick, it works. I'lll be using this feature a lot and will be adding lots of live streams now. Awesome!

I'm pleased to report that sometimes... triple stamping works! :slight_smile: I just tested remotely again (over cellular) and the same livestream is playing fine via Channels my usual way, without requiring a VPN or Tailscale. Turns out the error I was getting this weekend when traveling wasn't because of the stamps, it was because the correct URL hadn't been detected by FastChannels in the first place and I didn't notice. Thanks for the solution!

Here's more new channels I'm happy to add to the ambiance category:

Also happy to see these channels work brilliantly as Multiview ingredients:

I imagine this coming in handy for next year’s Coachella with multiple live streams, or F1 races where they have multiple streams with different camera angles playing at once.

I've been gone for a bit, but I would have given you a warning about YouTube: for non-logged in users (and sometimes logged in ones) it can respond with a "check if you are a human" request. More so, it's something they are increasing the use of, so there is no guarantee how long this approach will work, or how consistently. yt-dlp, and thus PLM Streaming Stations has a built-in workaround to handle this, so if you want to continue supporting YouTube, Twitch, and other similar streaming sites, it's something you'd probably want to look into!

This ?

I keep getting this in the logs of channels

2026/05/06 14:39:12.751636 [M3U] Refreshed lineup for FAST with 750 channels
2026/05/06 14:39:17.426754 [DVR] Fetched guide data for XMLTV-FAST in 132ms
2026/05/06 14:39:18.356403 [ERR] No stations available in lineup XMLTV-FAST after guide data download: XML syntax error on line 75240: illegal character code U+0008
2026/05/06 14:39:19.279963 [ERR] Failed to get placeholder channels for lineup XMLTV-FAST: XML syntax error on line 75240: illegal character code U+0008
2026/05/06 14:39:19.287111 [IDX] Pruned 0 expired groups from XMLTV-FAST in 7ms.
2026/05/06 14:39:19.751421 [DVR] Waiting 1h17m40s until next job 1778101020-147 Mexico
2026/05/06 14:39:55.904549 [DVR] Fetched guide data for XMLTV-FAST in 136ms
2026/05/06 14:39:56.805162 [ERR] No stations available in lineup XMLTV-FAST after guide data download: XML syntax error on line 75240: illegal character code U+0008
2026/05/06 14:39:57.718108 [ERR] Failed to get placeholder channels for lineup XMLTV-FAST: XML syntax error on line 75240: illegal character code U+0008
2026/05/06 14:39:57.718200 [IDX] Pruned 0 expired groups from XMLTV-FAST in 38µs.

Also it caused my channels to crash

2026/05/06 06:30:07 [Recovery] 2026/05/06 - 06:30:07 panic recovered:
runtime error: invalid memory address or nil pointer dereference
runtime/panic.go:336 (0x4936b7)
runtime/signal_unix.go:931 (0x493685)
sync/atomic/type.go:94 (0x209b087)
sync/rwmutex.go:72 (0x209b072)
github.com/fancybits/channels-server/dvr/recorder.go:639 (0x209b081)
github.com/fancybits/channels-server/dvr/recorder.go:711 (0x209bed0)
github.com/fancybits/channels-server/http_dvr_guide.go:283 (0x27d2038)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:420 (0x276eef3)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:397 (0x276ebaf)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:372 (0x276e887)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:334 (0x276dc28)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-gonic/[email protected]/recovery.go:101 (0x1867bf0)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-gonic/[email protected]/logger.go:249 (0x1866d09)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-contrib/[email protected]/sessions.go:54 (0x2771ee4)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-contrib/[email protected]/handler.go:99 (0x2133e73)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:596 (0x280d2ae)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-gonic/[email protected]/gin.go:689 (0x1865d3d)
github.com/gin-gonic/[email protected]/gin.go:643 (0x18656ec)
net/http/server.go:3311 (0x77f4ed)
net/http/server.go:2073 (0x75de6f)
runtime/asm_amd64.s:1771 (0x498de0)



2026/05/06 06:30:07 [Recovery] 2026/05/06 - 06:30:07 panic recovered:
runtime error: invalid memory address or nil pointer dereference
runtime/panic.go:336 (0x4936b7)
runtime/signal_unix.go:931 (0x493685)
sync/atomic/type.go:94 (0x209b087)
sync/rwmutex.go:72 (0x209b072)
github.com/fancybits/channels-server/dvr/recorder.go:639 (0x209b081)
github.com/fancybits/channels-server/dvr/recorder.go:711 (0x209bed0)
github.com/fancybits/channels-server/http_dvr_guide.go:283 (0x27d2038)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:420 (0x276eef3)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:397 (0x276ebaf)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:372 (0x276e887)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:334 (0x276dc28)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-gonic/[email protected]/recovery.go:101 (0x1867bf0)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-gonic/[email protected]/logger.go:249 (0x1866d09)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-contrib/[email protected]/sessions.go:54 (0x2771ee4)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-contrib/[email protected]/handler.go:99 (0x2133e73)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:596 (0x280d2ae)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-gonic/[email protected]/gin.go:689 (0x1865d3d)
github.com/gin-gonic/[email protected]/gin.go:643 (0x18656ec)
net/http/server.go:3311 (0x77f4ed)
net/http/server.go:2073 (0x75de6f)
runtime/asm_amd64.s:1771 (0x498de0)



2026/05/06 06:30:07 [Recovery] 2026/05/06 - 06:30:07 panic recovered:
runtime error: invalid memory address or nil pointer dereference
runtime/panic.go:336 (0x4936b7)
runtime/signal_unix.go:931 (0x493685)
sync/atomic/type.go:94 (0x209b087)
sync/rwmutex.go:72 (0x209b072)
github.com/fancybits/channels-server/dvr/recorder.go:639 (0x209b081)
github.com/fancybits/channels-server/dvr/recorder.go:711 (0x209bed0)
github.com/fancybits/channels-server/http_dvr_guide.go:283 (0x27d2038)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:420 (0x276eef3)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:397 (0x276ebaf)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:372 (0x276e887)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:334 (0x276dc28)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-gonic/[email protected]/recovery.go:101 (0x1867bf0)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-gonic/[email protected]/logger.go:249 (0x1866d09)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-contrib/[email protected]/sessions.go:54 (0x2771ee4)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-contrib/[email protected]/handler.go:99 (0x2133e73)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:596 (0x280d2ae)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-gonic/[email protected]/gin.go:689 (0x1865d3d)
github.com/gin-gonic/[email protected]/gin.go:643 (0x18656ec)
net/http/server.go:3311 (0x77f4ed)
net/http/server.go:2073 (0x75de6f)
runtime/asm_amd64.s:1771 (0x498de0)



2026/05/06 06:30:07 [Recovery] 2026/05/06 - 06:30:07 panic recovered:
runtime error: invalid memory address or nil pointer dereference
runtime/panic.go:336 (0x4936b7)
runtime/signal_unix.go:931 (0x493685)
sync/atomic/type.go:94 (0x209b087)
sync/rwmutex.go:72 (0x209b072)
github.com/fancybits/channels-server/dvr/recorder.go:639 (0x209b081)
github.com/fancybits/channels-server/dvr/recorder.go:711 (0x209bed0)
github.com/fancybits/channels-server/http_dvr_guide.go:283 (0x27d2038)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:420 (0x276eef3)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:397 (0x276ebaf)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:372 (0x276e887)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:334 (0x276dc28)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-gonic/[email protected]/recovery.go:101 (0x1867bf0)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-gonic/[email protected]/logger.go:249 (0x1866d09)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-contrib/[email protected]/sessions.go:54 (0x2771ee4)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-contrib/[email protected]/handler.go:99 (0x2133e73)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:596 (0x280d2ae)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-gonic/[email protected]/gin.go:689 (0x1865d3d)
github.com/gin-gonic/[email protected]/gin.go:643 (0x18656ec)
net/http/server.go:3311 (0x77f4ed)
net/http/server.go:2073 (0x75de6f)
runtime/asm_amd64.s:1771 (0x498de0)



2026/05/06 06:30:07 [Recovery] 2026/05/06 - 06:30:07 panic recovered:
runtime error: invalid memory address or nil pointer dereference
runtime/panic.go:336 (0x4936b7)
runtime/signal_unix.go:931 (0x493685)
sync/atomic/type.go:94 (0x209b087)
sync/rwmutex.go:72 (0x209b072)
github.com/fancybits/channels-server/dvr/recorder.go:639 (0x209b081)
github.com/fancybits/channels-server/dvr/recorder.go:711 (0x209bed0)
github.com/fancybits/channels-server/http_dvr_guide.go:283 (0x27d2038)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:420 (0x276eef3)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:397 (0x276ebaf)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:372 (0x276e887)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:334 (0x276dc28)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-gonic/[email protected]/recovery.go:101 (0x1867bf0)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-gonic/[email protected]/logger.go:249 (0x1866d09)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-contrib/[email protected]/sessions.go:54 (0x2771ee4)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-contrib/[email protected]/handler.go:99 (0x2133e73)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:596 (0x280d2ae)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-gonic/[email protected]/gin.go:689 (0x1865d3d)
github.com/gin-gonic/[email protected]/gin.go:643 (0x18656ec)
net/http/server.go:3311 (0x77f4ed)
net/http/server.go:2073 (0x75de6f)
runtime/asm_amd64.s:1771 (0x498de0)



2026/05/06 06:30:07 [Recovery] 2026/05/06 - 06:30:07 panic recovered:
runtime error: invalid memory address or nil pointer dereference
runtime/panic.go:336 (0x4936b7)
runtime/signal_unix.go:931 (0x493685)
sync/atomic/type.go:94 (0x209b087)
sync/rwmutex.go:72 (0x209b072)
github.com/fancybits/channels-server/dvr/recorder.go:639 (0x209b081)
github.com/fancybits/channels-server/dvr/recorder.go:711 (0x209bed0)
github.com/fancybits/channels-server/http_dvr_guide.go:283 (0x27d2038)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:420 (0x276eef3)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:397 (0x276ebaf)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:372 (0x276e887)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:334 (0x276dc28)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-gonic/[email protected]/recovery.go:101 (0x1867bf0)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-gonic/[email protected]/logger.go:249 (0x1866d09)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-contrib/[email protected]/sessions.go:54 (0x2771ee4)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-contrib/[email protected]/handler.go:99 (0x2133e73)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:596 (0x280d2ae)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-gonic/[email protected]/gin.go:689 (0x1865d3d)
github.com/gin-gonic/[email protected]/gin.go:643 (0x18656ec)
net/http/server.go:3311 (0x77f4ed)
net/http/server.go:2073 (0x75de6f)
runtime/asm_amd64.s:1771 (0x498de0)



2026/05/06 06:30:07 [Recovery] 2026/05/06 - 06:30:07 panic recovered:
runtime error: invalid memory address or nil pointer dereference
runtime/panic.go:336 (0x4936b7)
runtime/signal_unix.go:931 (0x493685)
sync/atomic/type.go:94 (0x209b087)
sync/rwmutex.go:72 (0x209b072)
github.com/fancybits/channels-server/dvr/recorder.go:639 (0x209b081)
github.com/fancybits/channels-server/dvr/recorder.go:711 (0x209bed0)
github.com/fancybits/channels-server/http_dvr_guide.go:283 (0x27d2038)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:420 (0x276eef3)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:397 (0x276ebaf)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:372 (0x276e887)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:334 (0x276dc28)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-gonic/[email protected]/recovery.go:101 (0x1867bf0)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-gonic/[email protected]/logger.go:249 (0x1866d09)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-contrib/[email protected]/sessions.go:54 (0x2771ee4)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-contrib/[email protected]/handler.go:99 (0x2133e73)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:596 (0x280d2ae)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-gonic/[email protected]/gin.go:689 (0x1865d3d)
github.com/gin-gonic/[email protected]/gin.go:643 (0x18656ec)
net/http/server.go:3311 (0x77f4ed)
net/http/server.go:2073 (0x75de6f)
runtime/asm_amd64.s:1771 (0x498de0)



2026/05/06 06:30:08 [Recovery] 2026/05/06 - 06:30:08 panic recovered:
runtime error: invalid memory address or nil pointer dereference
runtime/panic.go:336 (0x4936b7)
runtime/signal_unix.go:931 (0x493685)
sync/atomic/type.go:94 (0x209b087)
sync/rwmutex.go:72 (0x209b072)
github.com/fancybits/channels-server/dvr/recorder.go:639 (0x209b081)
github.com/fancybits/channels-server/dvr/recorder.go:711 (0x209bed0)
github.com/fancybits/channels-server/http_dvr_guide.go:283 (0x27d2038)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:420 (0x276eef3)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:397 (0x276ebaf)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:372 (0x276e887)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:334 (0x276dc28)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-gonic/[email protected]/recovery.go:101 (0x1867bf0)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-gonic/[email protected]/logger.go:249 (0x1866d09)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-contrib/[email protected]/sessions.go:54 (0x2771ee4)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-contrib/[email protected]/handler.go:99 (0x2133e73)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:596 (0x280d2ae)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-gonic/[email protected]/gin.go:689 (0x1865d3d)
github.com/gin-gonic/[email protected]/gin.go:643 (0x18656ec)
net/http/server.go:3311 (0x77f4ed)
net/http/server.go:2073 (0x75de6f)
runtime/asm_amd64.s:1771 (0x498de0)



2026/05/06 06:30:08 [Recovery] 2026/05/06 - 06:30:08 panic recovered:
runtime error: invalid memory address or nil pointer dereference
runtime/panic.go:336 (0x4936b7)
runtime/signal_unix.go:931 (0x493685)
sync/atomic/type.go:94 (0x209b087)
sync/rwmutex.go:72 (0x209b072)
github.com/fancybits/channels-server/dvr/recorder.go:639 (0x209b081)
github.com/fancybits/channels-server/dvr/recorder.go:711 (0x209bed0)
github.com/fancybits/channels-server/http_dvr_guide.go:283 (0x27d2038)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:420 (0x276eef3)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:397 (0x276ebaf)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:372 (0x276e887)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:334 (0x276dc28)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-gonic/[email protected]/recovery.go:101 (0x1867bf0)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-gonic/[email protected]/logger.go:249 (0x1866d09)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-contrib/[email protected]/sessions.go:54 (0x2771ee4)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-contrib/[email protected]/handler.go:99 (0x2133e73)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:596 (0x280d2ae)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-gonic/[email protected]/gin.go:689 (0x1865d3d)
github.com/gin-gonic/[email protected]/gin.go:643 (0x18656ec)
net/http/server.go:3311 (0x77f4ed)
net/http/server.go:2073 (0x75de6f)
runtime/asm_amd64.s:1771 (0x498de0)



2026/05/06 06:30:08 [Recovery] 2026/05/06 - 06:30:08 panic recovered:
runtime error: invalid memory address or nil pointer dereference
runtime/panic.go:336 (0x4936b7)
runtime/signal_unix.go:931 (0x493685)
sync/atomic/type.go:94 (0x209b087)
sync/rwmutex.go:72 (0x209b072)
github.com/fancybits/channels-server/dvr/recorder.go:639 (0x209b081)
github.com/fancybits/channels-server/dvr/recorder.go:711 (0x209bed0)
github.com/fancybits/channels-server/http_dvr_guide.go:283 (0x27d2038)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:420 (0x276eef3)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:397 (0x276ebaf)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:372 (0x276e887)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:334 (0x276dc28)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-gonic/[email protected]/recovery.go:101 (0x1867bf0)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-gonic/[email protected]/logger.go:249 (0x1866d09)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-contrib/[email protected]/sessions.go:54 (0x2771ee4)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-contrib/[email protected]/handler.go:99 (0x2133e73)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/fancybits/channels-server/http.go:596 (0x280d2ae)
github.com/gin-gonic/[email protected]/context.go:192 (0x1858f4d)
github.com/gin-gonic/[email protected]/gin.go:689 (0x1865d3d)
github.com/gin-gonic/[email protected]/gin.go:643 (0x18656ec)
net/http/server.go:3311 (0x77f4ed)
net/http/server.go:2073 (0x75de6f)
runtime/asm_amd64.s:1771 (0x498de0)

2026/05/06 06:30:08.347008 [SYS] Goodbye.
2026/05/06 06:30:24.331959 [SYS] Starting Channels DVR v2026.04.29.0232 (linux-x86_64 pid:7) in /channels-dvr/data
2026/05/06 06:30:24.356315 [SYS] Started HTTP Server on 8089
2026/05/06 06:30:24.806876 [HDR] Found 1 devices
2026/05/06 06:30:24.836678 [M3U] Refreshed lineup for FastChannelsDefaultGracenote with 14 channels
2026/05/06 06:30:25.102730 [M3U] Refreshed lineup for FDTV with 59 channels
2026/05/06 06:30:25.265464 [M3U] Refreshed lineup for FDTV2 with 2 channels
2026/05/06 06:30:25.309933 [M3U] Refreshed lineup for FastChannelsDefault with 750 channels
2026/05/06 06:30:25.777796 [DVR] Recording engine started in /data/media/DVR
2026/05/06 06:30:25.778138 [DVR] Waiting 5h26m34s until next job 1778086620-144 KSAT 12 News at Noon
2026/05/06 06:30:26.016401 [SYS] Bonjour service running for dvr-tower.local. [192.168.8.102]
2026/05/06 06:30:35.801694 [IDX] Pruned 89 expired airings from X-M3U in 10ms.
2026/05/06 06:30:35.801732 [DVR] No listings for XMLTV-FastChannelsDefault (10436 airings, 0 groups); starting indexer..
2026/05/06 06:30:35.813126 [IDX] Pruned 3 expired airings from XMLTV-FDTV2 in 11ms.
2026/05/06 06:30:35.827022 [IDX] Pruned 80 expired airings from USA-OTA78253 in 14ms.
2026/05/06 06:30:35.959190 [DVR] Fetched guide data for XMLTV-FastChannelsDefault in 132ms
2026/05/06 06:30:36.732518 [ERR] No stations available in lineup XMLTV-FastChannelsDefault after guide data download: XML syntax error on line 53108: illegal character code U+0008
2026/05/06 06:30:37.554053 [ERR] Failed to get placeholder channels for lineup XMLTV-FastChannelsDefault: XML syntax error on line 53108: illegal character code U+0008
2026/05/06 06:30:37.554144 [IDX] Pruned 0 expired groups from XMLTV-FastChannelsDefault in 35µs.
2026/05/06 06:30:38.881988 [SYS] Created database snapshot: backup-20260506.113037
2026/05/06 06:30:38.914547 [SYS] Removing old backup backup-20260427.142018

Are you running the latest version of FastChannels?
He supposedly fixed the code to filter out control characters like that backspace.

I may have some leaking through it appears.

Your DVR panics don't appear to be related to the guide data issue.
I would create a new post if they still happen.

No it hasn't happened since.

Version 3.6.0 pushed

Features

  • Synthesized EPG for Custom Channels — placeholder programme blocks (30 min–4 hr, configurable per channel) fill the guide so custom channels show up in client guide grids instead of being blank

Improvements

  • Improvement to Plex scraper behind the scene
  • XMLTV and M3U output sanitization — control characters in scraped EPG data no longer break client XML parsers; M3U EXTINF labels also sanitized
  • YouTube extraction reliability — switched to Node.js yt-dlp invocation with --player-skip webpage to reduce failures on bot-protected pages
  • Referer-aware iframe detection — stream detector passes the parent page URL as Referer when chasing iframes, fixing detection failures on same-origin-gated pages
  • Bot-protection and data-attribute stream detection — detector now handles Cloudflare-gated pages and streams embedded in HTML data- attributes
  • Improved audit error detail — audit report shows richer, better-categorized failure descriptions
  • Per-channel delete for missed-scrape channels — channels absent from 3+ consecutive scrapes now show a Delete button alongside "not in output," permanently removing them from the DB
3 Likes

Pulling :latest isn't working.
Is it available?

Looks all clear here?

Hmm, using Portainer and it's not pulling the new version using tag latest
Strange, I selected to recreate the container and it worked. Wasn't updating from the Stack.

I remember my first beer, too

1 Like

How about a put back in output cuz it's working button (plays in built-in player)

already in there- i think click "not in output"

2 Likes

Thanks, that worked.

1 Like

Not quite sure what will happen after next scrape - like will it start getting flagged to not in output after 3 missed scrapes.. keep an eye on it.