# Vesper design preview — catalog and image credits

Snapshot prepared November 1, 2026. This is a locally bundled demonstration catalog, not a live availability feed. Playback versions, provider connections, live channels/schedules, Trakt and cloud sync are simulated. No movie video files or provider credentials are included.

## Metadata

- Film titles, release years, genres, directors and cast: [movies-list dataset](https://github.com/erik-sytnyk/movies-list), with runtimes checked against the [TMDB movie dataset snapshot](https://huggingface.co/datasets/eka416/movies). Film descriptions are short summaries written for this prototype. Film classification labels are editorial prototype metadata, not a regional parental-control system.
- TV series, real season/episode names, runtimes and cast: [TVmaze API](https://www.tvmaze.com/api). TVmaze metadata is available under [CC BY-SA](https://creativecommons.org/licenses/by-sa/4.0/); this derived catalog metadata retains that license. It has been adapted into Vesper's catalog structure, genres normalized, and descriptions written for the preview.
- Series sources: [Severance](https://www.tvmaze.com/shows/44933/severance), with canonical source links for every series stored in `metadataUrl` in the catalog. All seasons returned by the snapshot are included, with episode artwork where supplied.
- IMDb ratings and vote counts are restored from the official [IMDb title.ratings dataset](https://data.imdb.com/non-commercial-datasets/), joined by IMDb title ID. The local snapshot is dated November 1, 2026; exact counts and IDs are retained alongside compact display labels. These are IMDb scores, not TMDB scores relabeled as IMDb. The source is IMDb’s personal/non-commercial dataset; production use needs appropriate terms. Missing ratings are omitted. Trakt connection, watchlist, scrobbling and personal-rating controls are retained from the original prototype.

## Artwork

- Film poster/backdrop images: [The Movie Database](https://www.themoviedb.org/), image.tmdb.org. Film source pages and, for matched backdrops, exact image URLs are recorded in the catalog. TMDB image-path metadata was verified against the movie dataset snapshot and downloaded from TMDB's image service.
- Ex Machina's fallback poster: IMDb image linked by the movies-list dataset.
- TV posters/backdrops, episode stills and cast portraits: static.tvmaze.com, from TVmaze's series/images, episodes, cast and people API responses. Film cast portraits are matched by exact person name, with initials retained when no match exists.
- `live-guide.svg` and `vesper.svg` are original graphics created for this preview.
- Fonts: Instrument Serif, Hanken Grotesk, JetBrains Mono, loaded through Google Fonts.

Image rights remain with their owners; bundling preview assets does not grant redistribution rights for a released service. This product uses TMDB-sourced artwork but is not endorsed or certified by TMDB. A production integration needs the metadata provider's required attribution and appropriate image-use terms.

## Real and demonstrated behavior

Real: local catalog browsing, text search, history-based content ranking, version-selection rules, watchlist and progress persistence between reloads and same-origin browser tabs, keyboard navigation, responsive layout.

Demonstrated: streamed video, Xtream authentication/import, quality/audio availability, live schedules, cloud/device sync, account/profile authorization, parental controls, Trakt and notifications. iOS and Android TV are HTML interaction previews, not installed native applications.

## Live interests artwork and identities

The Live interests refinement uses real team names and locally bundled club crests from ESPN's public team metadata (Premier League, La Liga and Bundesliga), with national flags from FlagCDN. Assets are under `assets/live/`. Team and competition records retain source URLs when supplied. These images identify the teams; they do not establish broadcast availability or endorsement. The guide events, times and notifications in this prototype are illustrative, not a live sports fixture feed.

Team follows use sport-qualified identities so, for example, England cricket and England football are independent preferences. Existing fictional preview follows are migrated to the corresponding demonstration identities; previously ambiguous national-team follows retain both matching sports.

## Home sections catalog additions

The Home editor includes Pather Panchali, Charulata, 3 Idiots, War (2019), and Taqdeer so Bengali/Hindi category rules can be tried with real titles. Film metadata and poster references come from the corresponding Wikipedia REST summaries: [Pather Panchali](https://en.wikipedia.org/wiki/Pather_Panchali), [Charulata](https://en.wikipedia.org/wiki/Charulata), [3 Idiots](https://en.wikipedia.org/wiki/3_Idiots), and [War](https://en.wikipedia.org/wiki/War_(2019_film)). Locally bundled film posters retain the rights and restrictions of their source images; they are not licensed for production redistribution by this prototype. Taqdeer metadata, episodes and poster come from TVmaze, retaining the catalog’s existing CC BY-SA attribution. IMDb scores and vote counts use the same official snapshot as the rest of the catalog.

Provider category assignments and relative “added” dates are **sample fixtures**, not imported Xtream categories or provider timestamps. The engine accepts source-qualified category IDs and absolute import dates; production ingestion must supply these. Recently added sorts by library import date, whereas Newest release sorts by release date/year. Home rules and order are saved per profile in this browser; this does not establish cloud or cross-device synchronization. The Web settings editor drives the shared Web, TV and iOS Home previews.

## Commercial account and content ownership design

Vesper is intended to be sold as an individual consumer app for Android/Android TV, iOS and Web. The Vesper account, future app-access entitlement and each user-added content-provider subscription are separate concepts. Vesper does not include, sell or renew films, channels or provider subscriptions. Users add their own Xtream Codes server address and provider credentials. No price, billing frequency or checkout provider has been selected. The welcome illustration is original CSS artwork showing an abstract library; it makes no title-availability promise.

Clerk is the selected future identity provider. The design follows its [email verification options](https://clerk.com/docs/guides/configure/auth-strategies/sign-up-sign-in-options) and [device authorization pattern](https://clerk.com/docs/guides/configure/auth-strategies/oauth/device-authorization-grant). Production must use actual Clerk session completion/tasks and server verification; these preview screens do not authenticate anyone. Watching profiles, Home rules and provider connections belong to application data, not to a fake local authentication identity. Provider secrets must not be placed in public Clerk user metadata. Paid app access requires its own verified entitlement contract; a Clerk session or provider subscription alone is not an app purchase.

The preview keeps account/library labels and provider connection names/addresses in a separate local design store. No provider username/password, real token or payment data is persisted. No email, provider or payment request is made. Email code 246810 and local TV approval records are demonstrations only; companion approval, denial and expiry work between same-origin browser tabs, not real devices. Library import opens the explicitly labeled sample catalog. Existing IMDb/Trakt behavior and Home customization are retained. Native apps, real account/profile isolation, secure credential storage, production device authorization, purchases and cross-device synchronization remain future implementation work.

Apple and Google are included on both account modes. Buttons use decorative vector brand marks with accessible text labels. Their Vesper-owned continuation screen explicitly uses sample accounts and never imitates provider credential collection or sends a provider request. Production setup must enable both [Apple](https://clerk.com/docs/guides/configure/auth-strategies/social-connections/apple) and [Google](https://clerk.com/docs/guides/configure/auth-strategies/social-connections/google) in Clerk, configure the applicable web/native credentials and redirects, and handle account completion and callback recovery. Native Google authentication must use the supported native/system-browser flow rather than an embedded WebView. Social sign-in and sign-up converge to the same account continuation; users still need to add their own content connection.

## Discovery and search revision — November 2, 2026

Home, Movies and Series now begin with Continue Watching when progress exists, then Watchlist, Trending Now, Popular Right Now, Latest Releases and Most Watched This Month. Home's per-row All/Movies/Series filters and custom section settings remain local preview preferences. Movies/Series restrict progress and shelves to their type. A shelf previews ten canonical titles; See all retains its ordering and includes the complete matching collection. Different versions remain choices on one title.

Trending/Popular/Most Watched contain **illustrative chart order**, explicitly labeled as chart previews. These are not downloaded current rankings or real audience counts. Production discovery must fetch licensed/authorized TMDB or Trakt feeds, join their stable metadata IDs to the user's available canonical catalog, preserve provider ranking, and handle missing matches, loading, stale data and API failures. Vesper does not supply the underlying films/series. The monthly preview explicitly means the past30 days; implementation must preserve that period or change the label when using a calendar-month feed. Latest Releases sorts the sample metadata's release year, with stable title ties; production should use known release dates, preserving unknown dates rather than inventing them. It is distinct from provider import date.

Watchlist uses the retained Vesper list, with simulated Trakt import/sync when connected and enabled. Disconnect retains local saves. No real Trakt OAuth or watchlist network call is made by these previews. IMDb labels continue to use the credited IMDb snapshot, not TMDB/Trakt ratings. Search suggests canonical titles, people, genres, languages and channels, including conservative typo recovery and explicit runtime/year/IMDb discovery intents. Source/version labels do not create duplicate results. Kids suggestion filtering demonstrates the same sample rating rules as search; real profile authorization/PIN enforcement remains an implementation requirement.
