AI summary
Native Jellyfin client built with Kotlin and Jetpack Compose. Supports multi-server auth, adaptive home screen with drag-to-reorder rows, offline downloads with quality selection, and a full-featured video player with audio/subtitle tracks, skip intro, and Picture-in-Picture. Deep links and comprehensive playback settings included.
Generated by AI. May contain inaccuracies.
About this app
A native Kotlin / Jetpack Compose (Material 3) client for Jellyfin
Features Auth / multi-server: two-step connect (URL → credentials), servers list with switch / remove / add, per-server tokens, prefilled re-auth on expiry, 401-only-on-active-server session handling, and a "your session has expired" banner on the connect screen. Home: configurable rows (Continue Watching + per-library Recently Added; order + visibility persisted, editable in Settings with drag-to-reorder). Continue Watching cards show remaining time, progress, and S#:E#; Recently Added rows dedupe by series, show "X new" / watched / quality badges, a See All grid past 6 items, and circular YouTube-channel styling. Pull-to-refresh. Libraries: adaptive poster grid with sort (Name / Date Added / Release Date / Rating / Runtime ± direction), filter (All / Unwatched / Watched / Favorites), shuffle, and in-library search. Search: poster-grid results with a count and year/type captions, debounced query, and recent-search chips (last 10, Clear). Detail: one adaptive screen (compact = stacked, expanded = tablet two-column) with Play / Resume / Start Over, next-up logic for series, Shuffle, local-first Trailer, optimistic watched toggle, favorite + admin menu (File Info / Refresh Metadata / Delete — hidden when offline), season tabs + episode list, cast, ratings, media badges, and single + bulk-season downloads with a quality picker. Player (Media3/ExoPlayer): PlaybackInfo negotiation (direct play → direct stream → HLS transcode) with an Android DeviceProfile, OSD stream-info chip, quality menu (re-negotiates preserving position), audio + subtitle track selection (external VTT side-loaded and app-rendered), speed 0.5–2×, skip intro/credits with auto-skip, auto-play next with season rollover, resume threshold, progress reporting, and Picture-in-Picture. Downloads / offline: WorkManager queue with a foreground-service progress notification, quality tiers (Original / High / Medium / Low), Original fail-closed on device compatibility, a downloads screen (active / completed / failed / retry / delete-all + storage bar), subtitle downloads (side-loaded on offline playback), an offline Home + offline detail/playback drawn from a Room store, with local position save and sync-on-reconnect. Settings: servers, Home row order editor, quality-badge toggle, playback toggles, max bitrate, resume threshold, audio/subtitle languages, downloads storage + delete-all, about (version/build), and sign out with confirmation. Deep links: sashimi://item/{id} → detail and sashimi://play/{id} → player, with cold-start stash-until-authenticated (a launch link opens after sign-in).
About this version
- Version
- 0.6.1 (10)
- Size
- 3.44 MB
- Requires Android
- 8.0
- Target SDK
- 26
- Architecture
- arm64-v8a, armeabi-v7a, x86, x86_64
- Downloads
- 35
- Updated
- Aug 8, 2026
- Package
- dev.bitstorm.sashimi
Similar apps
Ratings & reviews
- 50
- 40
- 30
- 20
- 10