Skip to content

Check Skip Credits and end-of-playback on movies now that the server detects movie credits #404

Description

@Quick104

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions