v1.7.0 (2026-09-22)
A sources release, and a playback one. DaddyLive's 24/7 channels arrive — about 530 channels of their own, and a second row on about 300 that other sources already carry — reached through a route to a home connection, because DaddyLive signs every link for the address and the browser that asked for it and refuses datacenters outright. Streamed.pk now plays on Mac, PC and iPhone, where it would not load at all, and the setup page gains a "Where you watch" choice for a player that is not recognised on its own. And TotalSportek is gone: the site rebuilt itself into a list of links to other sites, and the provider had not found a stream on it since. No reinstall is needed.
Features
- providers: add DaddyLive's 24/7 channels. Its playlists are signed for the IP address and the User-Agent that fetched the page embedding its player, and refused from any datacenter — this server got 403 even on links it had minted itself — so the requests that mint and read those links go out through a WireGuard tunnel to a home connection, and nothing else does. The video is fetched by the player straight from DaddyLive, with the Referer its host requires, so the home connection carries a few pages and a few kilobytes of playlist per poll and none of the video. The route is its own stack, in deploy/egress/: a WireGuard client joined to a home network's WireGuard server, and a proxy that will reach only DaddyLive's domains. Without it the source lists nothing, rather than rows that can only fail. Its signed addresses are masked in the log. Channels only for now; its events can follow (ef0f119, b2f277e, beb4cb0, 1de474d)
- providers: open DaddyLive's channels only when a viewer does. The site refuses, at the connection, an address that opens its pages in bulk: the warm-up and channel health check of a test server opened 125 of its channels in thirteen minutes, and this server was refused outright for twenty minutes while the home connection and a Mac were still served. DaddyLive is now never warmed ahead of a click and never opened by the health check, and a channel that has it is never hidden on the other sources' say-so. The provider itself opens at most 30 channels an hour, one at a time (daddylive_resolves_per_hour), fetches its channel list every six hours instead of on every sync, and keeps the last list through a failure. The home connection is the one address whose DaddyLive links play; it must never be the next one refused (b2f277e, 947b484)
- streams: play Streamed.pk on Mac, PC and iPhone. Its video arrives in chunks dressed up as images — a 42-byte fake WebP header in front of an ordinary transport stream. ExoPlayer on the TV scans past it; libmpv, which NuvioDesktop and the iPhone app play through, reads the head, finds an image and stops. For those players the relay now hands over the stream inside, with the disguise found rather than assumed, so a clean chunk passes untouched and a disguise that changes size still comes off. The TV's playlist is byte-identical to before, which a test holds (a310c15)
- configure: add "Where you watch": Automatic, TV & Android, or Mac, PC & iPhone. Automatic recognises libmpv by its own requests and carries nothing on the link, so every existing install behaves exactly as it did; the other two settle it for a player that is not recognised, or is recognised wrongly (a310c15)
- streams: log what happens during playback, not only hard failures. A stream limping along on stale playlists, a source answering with something that is not a playlist, and the relay being refused a chunk all passed silently, so "streams kept dropping" could not be answered from the log at all. Each now logs, once per stream per minute (a310c15)
- providers: remove TotalSportek, which had stopped finding streams. The site rebuilt itself: a game page no longer embeds its own player but lists links out to other people's sites, most games with none until close to kickoff, and the provider — still looking for the old player — returned nothing for any game. Of the sites it now links to, two refuse this server, one is gone, one has a broken certificate, and two wrap their players on further domains, one of them apparently DaddyLive's own channels. A saved configuration that names it is harmless, and its few games that no other source listed leave the catalog (b291ca3)