Releases: EndlessMelody/Nyrima
Releases · EndlessMelody/Nyrima
v0.1.0-beta — Personal Video Cinema on Google Drive (Social Hub & Advanced Player Beta)
Pre-release
Overview
Nyrima is a client-only Chrome Manifest V3 extension that turns a Google Drive folder into a private, cinematic media center. With a focus on privacy, Nyrima streams media bytes directly from Google Drive APIs to the browser, with no hosted backend, transcoding servers, or advertising networks.
This v0.1.0-beta release marks the stabilization of our advanced media engine (MSE remuxing, dynamic audio track switching, WASM AC-3 decoding, and libass/JASSUB styled subtitles) and the introduction of a decentralized, drive-to-drive sharing system that includes social feeds, comments, and direct server-side imports.
Key Features in v0.1.0-beta
1. Advanced Media Player & Engine
- Native-First with MSE Fallback: Prefer browser-native playback. For MKVs, Nyrima fetches bytes using HTTP Range requests, remuxing supported streams into fragmented MP4 on the fly.
- Dynamic Audio-Track Selector: Swap audio tracks in MKV containers without screen blinking by maintaining separate video and audio SourceBuffers and backfilling segments seamlessly.
- WASM AC-3 Decoder Fallback: Supports playback of Dolby Digital (AC-3) audio streams even on platforms where the browser lacks native codec support.
- WASM Subtitle Rendering (JASSUB): Renders advanced styled subtitles (
.ass/.ssa) with full typesetting accuracy using JASSUB/libass. Supports external subtitle files (SRT, VTT) and embedded MKV text tracks. - VLC-flavored Player Interface: Full keyboard shortcut controls, custom player HUD, next-up autoplay, theatre mode (dims header and collapses sidebar via
:has()), and precise pointer scrubbing.
2. Cinematic Library Management
- Local & Online Metadata Resolution: Browse movies and series grouped by season using smart folder and filename parsing. Renders artwork from local files (
Poster.jpg,Backdrop.webp) or resolves titles via MyAnimeList (MAL/Jikan API) with a 30-day client cache. - Native Grid Virtualization: Uses
content-visibility: autoto allow fluid scrolling of thousands of media assets without heavy React virtualization overhead. - Library Stats & Dashboard: Persistent tracking of video counts, runtimes, and watched-progress indicators at both folder and aggregate levels.
3. Decentralized Sharing & Social Hub
- Bring-Your-Own-Drive Social Model: Share items without a backend database. Social profiles, shares (
Shared/index.jsonschema v=2), and comments (Shared/comments.jsonl) are stored as flat files inside user-managed public Google Drive folders. - The Social Hub Page:
/socialdashboard containing:- Inbox: Unified inbox to see and play followed friends' shared items.
- My Shares: Manage and compose new shares directly from the active player or library view.
- People: Manage followed profiles and discover new ones via the Discover Rail.
- Activity Feed: Aggregates incoming comments on your shares and logs sent comments.
- Privacy: Toggle your public share state and configure directory opt-ins.
- Discover Directory: Opt into a community list hosted on GitHub (
raw.githubusercontent.com/nyrima/directory/main/users.json) with an interactive Discover rail and one-click GitHub-issue listing request. - Server-Side Import: Copy shared files or folder structures directly into your own Drive (
Nyrima/Imports/) using server-side Google Drive copy operations, preserving companion subtitles and posters without downloading/re-uploading files.
4. Security & Hardening (Beta Ready)
- Bring-Your-Own-Key (BYOK) OAuth: Decoupled auth manifest configuration allows users to input their own Google Cloud OAuth client ID at runtime.
- Silent Auth Token Cache: Background service worker caches custom tokens to prevent silent auth flow failures when loading subtitles during non-interactive media loads.
- Locked-Down CSP: Stricter Content Security Policy (
script-src 'self' 'wasm-unsafe-eval'), zero inline scripts, and sandboxed fetch logic. - Declarative Net Request (DNR): Safely injects the Google Drive
Authorization: Bearerheaders only for extension-initiated queries targetinggoogleapis.com/drive/v3/files/.
Installation & Setup
- Download the release asset:
nyrima-v0.1.0-beta.zip. - Extract the ZIP file to a local directory.
- Open Google Chrome and go to
chrome://extensions. - Enable Developer mode (top right toggle).
- Click Load unpacked (top left button) and select the extracted
distfolder. - Open Nyrima from the toolbar popup or the new tab, configure your Google API credentials, and pair your root Drive folder.
(Seedocs/getting-started.mdanddocs/oauth-setup.mdin the project documentation for step-by-step guidance).
Release Artifacts
- Filename:
nyrima-v0.1.0-beta.zip - SHA-256 Checksum:
b376928fb55cd0b99d9b60da8a7ce4a80caf4a4fde6166444cdc300eb2c0ad0f