Compare commits
2 commits
41fb1e5b55
...
5106ae1a9a
| Author | SHA1 | Date | |
|---|---|---|---|
| 5106ae1a9a | |||
| b94ae0ed2f |
1 changed files with 31 additions and 32 deletions
63
goals.md
63
goals.md
|
|
@ -5,42 +5,36 @@
|
||||||
- Use cached segments for seamless seeking and fast resume.
|
- 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.
|
- If another user starts playback with the same parameters, reuse existing cached data to minimize transcoding and bandwidth usage.
|
||||||
- **CDN Capabilities and P2P Federation**
|
- **CDN Capabilities and P2P Federation**
|
||||||
- **Lightweight CDN Node:**
|
- **Lightweight CDN Node:**
|
||||||
- Each CDN node runs as a standalone executable binary that can be easily deployed by both technical and non-technical users.
|
- Each CDN node runs as a standalone executable binary that can be easily deployed by both technical and non-technical users.
|
||||||
- Minimal configuration required:
|
- Minimal configuration required:
|
||||||
- **Data Directory:** Defines where cached media files are stored.
|
- **Data Directory:** Defines where cached media files are stored.
|
||||||
- **Optional Name:** Human-readable CDN identifier (used for UI labeling and dynamic DNS registration).
|
- **Optional Name:** Human-readable CDN identifier (used for UI labeling and dynamic DNS registration).
|
||||||
- **Mode:** Can operate as a **shared CDN** (available to multiple users) or a **local-only CDN**.
|
- **Mode:** Can operate as a **shared CDN** (available to multiple users) or a **local-only CDN**.
|
||||||
|
|
||||||
- **Secure Connectivity:**
|
- **Secure Connectivity:**
|
||||||
- Each CDN connects to the **main metadata server** using a **pre-shared key** for authentication and trust establishment.
|
- Each CDN connects to the **main metadata server** using a **pre-shared key** for authentication and trust establishment.
|
||||||
- This ensures only authorized CDNs can register and exchange data with the main network.
|
- This ensures only authorized CDNs can register and exchange data with the main network.
|
||||||
|
|
||||||
- **Dynamic Registration & Discovery:**
|
- **Dynamic Registration & Discovery:**
|
||||||
- Upon startup, the CDN connects to the **main metadata server** and automatically registers itself.
|
- Upon startup, the CDN connects to the **main metadata server** and automatically registers itself.
|
||||||
- The main server assigns a **dynamic DNS name** to each CDN for seamless connectivity.
|
- The main server assigns a **dynamic DNS name** to each CDN for seamless connectivity.
|
||||||
- CDNs periodically update their metadata to report available content, storage capacity, and health status.
|
- CDNs periodically update their metadata to report available content, storage capacity, and health status.
|
||||||
|
|
||||||
- **Content Awareness & Distribution:**
|
- **Content Awareness & Distribution:**
|
||||||
- The main server maintains a global index of all available CDNs and the content cached on each.
|
- The main server maintains a global index of all available CDNs and the content cached on each.
|
||||||
- Users can choose which CDN should serve their content in the client UI.
|
- Users can choose which CDN should serve their content in the client UI.
|
||||||
- If a requested content is missing from the selected CDN, users have two options:
|
- If a requested content is missing from the selected CDN, users have two options:
|
||||||
1. **Request content replication:** Copy or prefetch the content from another CDN or the main server.
|
1. **Request content replication:** Copy or prefetch the content from another CDN or the main server.
|
||||||
2. **Stream fallback:** Stream the content directly from the main server or the nearest available CDN.
|
2. **Stream fallback:** Stream the content directly from the main server or the nearest available CDN.
|
||||||
|
|
||||||
- **Peer-to-Peer (P2P) Sharing:**
|
- **Peer-to-Peer (P2P) Sharing:**
|
||||||
- CDNs and the main server interconnect via **P2P protocols** to simplify file transfer and reduce reliance on centralized infrastructure.
|
- CDNs and the main server interconnect via **P2P protocols** to simplify file transfer and reduce reliance on centralized infrastructure.
|
||||||
- This enables faster, bandwidth-efficient distribution of popular content between geographically distributed CDNs.
|
- This enables faster, bandwidth-efficient distribution of popular content between geographically distributed CDNs.
|
||||||
|
|
||||||
- **Federation & Collaboration:**
|
- **Federation & Collaboration:**
|
||||||
- Multiple CDNs can share content and metadata within a trusted federation network.
|
- Multiple CDNs can share content and metadata within a trusted federation network.
|
||||||
- The system can automatically balance or replicate popular content across CDNs to optimize bandwidth usage and ensure availability.
|
- The system can automatically balance or replicate popular content across CDNs to optimize bandwidth usage and ensure availability.
|
||||||
|
|
||||||
- **Future Idea - Predictive Caching:**
|
|
||||||
- CDNs may automatically pre-cache upcoming content based on user activity patterns.
|
|
||||||
- If a user watches the first movie in a series, the CDN pre-fetches sequels (e.g., parts 2, 3, etc.).
|
|
||||||
- If a user starts a new TV show, the CDN preloads subsequent episodes or seasons.
|
|
||||||
- This predictive caching minimizes latency and improves the user experience by ensuring likely-next content is available instantly.
|
|
||||||
|
|
||||||
- **Metadata Management:**
|
- **Metadata Management:**
|
||||||
- Automatically identify and fetch metadata from databases like IMDb, TVDB, etc.
|
- Automatically identify and fetch metadata from databases like IMDb, TVDB, etc.
|
||||||
|
|
@ -59,7 +53,7 @@
|
||||||
- **User Management:**
|
- **User Management:**
|
||||||
- Authentication, profiles, access control, and session tracking.
|
- Authentication, profiles, access control, and session tracking.
|
||||||
- **Library & Personalization:**
|
- **Library & Personalization:**
|
||||||
- Organize and manage libraries by media type (movies, shows, etc.).
|
- Organize and manage libraries by media type (movies,TV shows, etc.).
|
||||||
- Create and manage playlists and collections.
|
- Create and manage playlists and collections.
|
||||||
- Track user history, progress, and play counts.
|
- Track user history, progress, and play counts.
|
||||||
- Allow users to group media into watchlists, favorites, or custom categories.
|
- Allow users to group media into watchlists, favorites, or custom categories.
|
||||||
|
|
@ -69,18 +63,23 @@
|
||||||
|
|
||||||
## Nice to Have / Later
|
## Nice to Have / Later
|
||||||
|
|
||||||
- **Sync Play:** Watch movies or shows together in real time across multiple clients.
|
- **Sync Play:** Watch movies or TV shows together in real time across multiple clients.
|
||||||
- **Integration with ARR Stack:** Compatibility with Radarr, Sonarr, Lidarr, and similar automation tools.
|
- **Integration with ARR Stack:** Compatibility with Radarr, Sonarr, Lidarr, and similar automation tools.
|
||||||
- **Parental controls**
|
- **Parental controls**
|
||||||
- **Jellyfin-Compatible API** and **Plex-Compatible API**
|
- **Jellyfin-Compatible API** and **Plex-Compatible API**
|
||||||
- **Plugin Support:** Extend functionality with custom or third-party plugins.
|
- **Plugin Support:** Extend functionality with custom or third-party plugins.
|
||||||
- **Smart Playback Features:**
|
- **Smart Playback Features:**
|
||||||
- Intro, outro, recap skipper.
|
- Intro, outro, recap skipper.
|
||||||
- **Recommendations:** Personalized movie and series suggestions based on user history and preferences.
|
- **Recommendations:** Personalized movie and TV show suggestions based on user history and preferences.
|
||||||
- **External Sync:** Sync watch history, ratings, and metadata with services like Trakt.tv.
|
- **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.
|
- **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.
|
- **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.
|
- **IPTV / Live TV:** Stream and manage live channels alongside on-demand content.
|
||||||
|
- **CDN - Predictive Caching:**
|
||||||
|
- CDNs may automatically pre-cache upcoming content based on user activity patterns.
|
||||||
|
- If a user watches the first movie in a movie series, the CDN pre-fetches sequels (e.g., parts 2, 3, etc.).
|
||||||
|
- If a user starts a new TV show, the CDN preloads subsequent episodes or seasons.
|
||||||
|
- This predictive caching minimizes latency and improves the user experience by ensuring likely-next content is available instantly.
|
||||||
|
|
||||||
## Architecture
|
## Architecture
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue