The server now detects end credits locally for movies as well as episodes (Silo-Server/silo-server#1544, best effort; on by default for existing libraries with marker detection, off for new movie libraries). Movies that never had a credits marker will start returning one through the same fields clients already read: the watch-detail and per-version credits range, marker_segments, and the realtime marker update. The server can also send a marker update mid-playback when detection finishes, for movies as well as episodes.
The Android player (PlayerViewModel credits handling and onApproachingEnd) handles credits generically, so nothing is known to be broken. This is a check that the end-of-playback path, which until now only saw credits on episodes, behaves well on a movie:
- Skip Credits appears during a movie's credits and skipping ends playback cleanly: the movie is marked watched and the player does not restart or stall at the end.
- Auto-skip credits (
playback.auto_skip_credits) on a movie ends playback the same way.
- End of playback: reaching a movie's credits start does not show a next-episode countdown. It shows the finished or On Deck state, if any.
- A credits range that arrives while a movie is already playing (a marker update) shows the button without reloading the player.
No client API change is needed. The server also added admin-only v2 operations and fields (GET /api/v2/admin/markers/capabilities, POST /api/v2/admin/items/{id}/redetect-markers, and markers.detect_intros / markers.detect_credits settings, Silo-Server/silo-server#1591 and #1593). The Android app has no admin marker actions, so these need nothing unless an admin surface is added later. The vendored contract fixtures pick them up at the next scripts/sync-apiv2-fixtures.sh run.
Related validation tasks: #321 C1, #322 C1 (Silo-Server/silo-server#1148 C1 changed with this server work).
AI disclosure: drafted by Claude Code (claude-opus-5-5) from the server changes and a read of this repository's player code; not yet reproduced on a device.
The server now detects end credits locally for movies as well as episodes (Silo-Server/silo-server#1544, best effort; on by default for existing libraries with marker detection, off for new movie libraries). Movies that never had a credits marker will start returning one through the same fields clients already read: the watch-detail and per-version
creditsrange,marker_segments, and the realtime marker update. The server can also send a marker update mid-playback when detection finishes, for movies as well as episodes.The Android player (
PlayerViewModelcredits handling andonApproachingEnd) handles credits generically, so nothing is known to be broken. This is a check that the end-of-playback path, which until now only saw credits on episodes, behaves well on a movie:playback.auto_skip_credits) on a movie ends playback the same way.No client API change is needed. The server also added admin-only v2 operations and fields (
GET /api/v2/admin/markers/capabilities,POST /api/v2/admin/items/{id}/redetect-markers, andmarkers.detect_intros/markers.detect_creditssettings, Silo-Server/silo-server#1591 and #1593). The Android app has no admin marker actions, so these need nothing unless an admin surface is added later. The vendored contract fixtures pick them up at the nextscripts/sync-apiv2-fixtures.shrun.Related validation tasks: #321 C1, #322 C1 (Silo-Server/silo-server#1148 C1 changed with this server work).
AI disclosure: drafted by Claude Code (claude-opus-5-5) from the server changes and a read of this repository's player code; not yet reproduced on a device.