I’ve been playing around with Peacock’s sports schedule and ended up building a little side project I wanted to share: PeacockDeepLinks. It’s a small Dockerized service that scrapes Peacock’s API and turns it into virtual channels (XMLTV + M3U) you can plug into Channels DVR and friends. Under the hood it writes a SQLite DB, then exports XMLTV + M3U that you can point at Streamlink, Chrome Capture / CH4C, ADBTuner, etc. It’s very much BETA – I wanted to get it out early so people can start experimenting and tell me what’s useful vs garbage.
I’ve pre-wired a couple of different “styles” so you don’t have to overthink it on day one. There’s a “one channel per event” style M3U that’s great for Streamlink (each event is its own short-lived channel, perfect for SLM-style setups), and there’s also a lane-based layout that looks a lot like ESPN4CC4C: a fixed set of numbered lanes with placeholders, which works nicely for Chrome Capture / CH4C and other virtual-channel workflows. You can control lane counts, days ahead, starting channel number, padding, refresh schedule, and even the Peacock slug (default /sports/live-and-upcoming) via env vars.
If you try it, I’d love feedback on lane count, how aggressive the padding should be, and whether the “one channel per event” vs “lanes” split actually matches how you want to wire this into Channels/Streamlink/CH4C. Repo (with README + Portainer guide) is here:
Happy to tweak schemas, envs, or output formats while this is still in beta.
For Chrome Capture (Lane-based with deeplinks)
M3U Playlist (peacock_lanes_chrome.m3u)