add initial goals documentation
Signed-off-by: Patrik Fodor <fodor.patrik.2000@gmail.com>
This commit is contained in:
parent
7b6561555e
commit
f8173aec61
1 changed files with 62 additions and 0 deletions
62
goals.md
Normal file
62
goals.md
Normal file
|
|
@ -0,0 +1,62 @@
|
||||||
|
## Core Features
|
||||||
|
|
||||||
|
- **Media Playback:** Support on-demand playback for media files in various formats.
|
||||||
|
- **Caching & Performance:**
|
||||||
|
- Use cached segments for seamless seeking and fast resume.
|
||||||
|
- If another user starts playback with the same parameters, reuse existing cached data to minimize transcoding and bandwidth usage.
|
||||||
|
- Includes CDN capabilities and P2P federation by Blint.
|
||||||
|
- **Metadata Management:**
|
||||||
|
- Automatically identify and fetch metadata from databases like IMDb, TVDB, etc.
|
||||||
|
- Allow users to edit and correct metadata manually.
|
||||||
|
- **Transcoding Options:**
|
||||||
|
- Pre-encode media into multiple formats for reduced compute load (at the expense of storage).
|
||||||
|
- Or use dynamic, on-the-fly transcoding for flexibility and storage efficiency.
|
||||||
|
- **Clients**
|
||||||
|
- Web Client
|
||||||
|
- Native Clients: Desktop (Windows, Linux, MacOS), Mobile (Android, iOS), TV (Android TV, Apple TV, WebOS, Roku, Someone could create one for Xbox)
|
||||||
|
- Multiuser Support in clients: You are able to login with multiple users and change between them.
|
||||||
|
- **Offline Access:**
|
||||||
|
- Clients can batch-download content for offline playback, respecting user permissions and device limits.
|
||||||
|
- **Scalability:**
|
||||||
|
- Support distributed and remote ffmpeg-based transcoding pipelines for high availability and load balancing.
|
||||||
|
- **User Management:**
|
||||||
|
- Authentication, profiles, access control, and session tracking.
|
||||||
|
- **Library & Personalization:**
|
||||||
|
- Organize and manage libraries by media type (movies, shows, etc.).
|
||||||
|
- Create and manage playlists and collections.
|
||||||
|
- Track user history, progress, and play counts.
|
||||||
|
- Allow users to group media into watchlists, favorites, or custom categories.
|
||||||
|
- Provide statistics and usage insights (e.g., most watched, time spent, active users).
|
||||||
|
- Show statics for users about themselves
|
||||||
|
- Resume from last position across devices.
|
||||||
|
|
||||||
|
## Nice to Have / Later
|
||||||
|
|
||||||
|
- **Sync Play:** Watch movies or shows together in real time across multiple clients.
|
||||||
|
- **Integration with ARR Stack:** Compatibility with Radarr, Sonarr, Lidarr, and similar automation tools.
|
||||||
|
- **Parental controls**
|
||||||
|
- **Jellyfin-Compatible API** and **Plex-Compatible API**
|
||||||
|
- **Plugin Support:** Extend functionality with custom or third-party plugins.
|
||||||
|
- **Smart Playback Features:**
|
||||||
|
- Intro, outro, recap skipper.
|
||||||
|
- **Recommendations:** Personalized movie and series suggestions based on user history and preferences.
|
||||||
|
- **External Sync:** Sync watch history, ratings, and metadata with services like Trakt.tv.
|
||||||
|
- **Subtitle Management:** Automatic subtitle fetching, editing, and syncing with playback. - Probably bazarr is enough for that.
|
||||||
|
- **Multi-Format Detection:** Detect multiple versions (e.g., 1080p, 4K, HDR) of the same media and show them in a unified view.
|
||||||
|
- **IPTV / Live TV:** Stream and manage live channels alongside on-demand content.
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
|
||||||
|
- **Frontend/Backend Separation:** Clearly separated user interface and backend services.
|
||||||
|
- **Microservice-Ready:** Modular, loosely coupled components that can scale independently.
|
||||||
|
- **Extensible Protocol Support:** Easily add or replace streaming and media delivery protocols.
|
||||||
|
- **Telemetry & Observability:** Built-in tracing, logging, and metrics collection.
|
||||||
|
- **Plugin System:** Enable community and custom extensions.
|
||||||
|
- **Robust API Design:** Clean, well-documented REST and gRPC interfaces for interoperability.
|
||||||
|
|
||||||
|
## Patrik's Dreams (Not Necessarily Realistic Goals)
|
||||||
|
|
||||||
|
- On-demand streaming over QUIC. *(WebRTC was suggested but may not fit our use case.)*
|
||||||
|
- **Segmented Formats:** Support CMAF alongside traditional MPEG-TS for more efficient adaptive streaming.
|
||||||
|
- **Streaming Standards:** Full compatibility with both HLS and MPEG-DASH.
|
||||||
|
- **Processing Backends:** Flexible support for ffmpeg, GStreamer, or alternative media frameworks.
|
||||||
Loading…
Add table
Add a link
Reference in a new issue