github vatax3/NuvioTVOS v1.0.16
1.0.16 — a paused film lets the TV sleep

latest releases: v1.0.37, v1.0.36, v1.0.35...
one month ago

Pausing kept the Apple TV awake

The wake lock was held for the whole presentation regardless of playback state, so a film left on Pause overnight held the idle timer off all night.

The obvious fix is wrong, and the code already said why: releasing the lock whenever playback is not running does not survive contact with a stream, because every buffer stall and every track change passes through a non-playing state. Re-arming the idle timer on each of those is what used to put the device to sleep mid-film.

So the two are told apart by how long the pause lasts rather than by the fact of it. A stall is seconds; somebody walking away is not.

After two minutes paused, the idle timer is re-armed and the television sleeps on its own schedule. The system's Sleep After starts counting from there, so even its shortest setting still gives you seventeen minutes. The hold itself is kept, so resuming re-asserts immediately.

Two details that would have broken it quietly: a paused player emits no further events, so the pause arms its own timer — nothing else would re-evaluate the rule; and the minute heartbeat that re-asserts the lock now goes through the same rule instead of forcing the flag back on, or it would have undone the release two minutes later.

Episode scores

Episode air dates were already shown; scores were not. Reading the Android source shows why they could not simply be added: the per-episode IMDb figure comes from two services whose base URLs are build secrets resolving to placeholder.nuvio.tv in the public source — a private contract, like the discovery endpoint.

TMDB's own score is not. It arrives in the same season response the titles, overviews, stills and air dates already come from; the field was being decoded away one line from where it was needed. So the row shows a score, and it is TMDB's rather than IMDb's. A zero from TMDB means nobody has scored the episode, so it is dropped rather than shown as zero.

Verification

217 unit tests, 8 UI tests, 0 failures. The wake-lock rule is a pure function with the buffer-stall case pinned as its own test.

The sleep behaviour needs a real Apple TV and a real wait to confirm — reported as fixed, not observed.

Unsigned IPA — sideload with your usual signer.

Don't miss a new NuvioTVOS release

NewReleases is sending notifications on new releases.