Skip to content

Releases: EndlessMelody/Nyrima

v0.1.0-beta — Personal Video Cinema on Google Drive (Social Hub & Advanced Player Beta)

22 May 10:50

Choose a tag to compare

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: auto to 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.json schema v=2), and comments (Shared/comments.jsonl) are stored as flat files inside user-managed public Google Drive folders.
  • The Social Hub Page: /social dashboard 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: Bearer headers only for extension-initiated queries targeting googleapis.com/drive/v3/files/.

Installation & Setup

  1. Download the release asset: nyrima-v0.1.0-beta.zip.
  2. Extract the ZIP file to a local directory.
  3. Open Google Chrome and go to chrome://extensions.
  4. Enable Developer mode (top right toggle).
  5. Click Load unpacked (top left button) and select the extracted dist folder.
  6. Open Nyrima from the toolbar popup or the new tab, configure your Google API credentials, and pair your root Drive folder.
    (See docs/getting-started.md and docs/oauth-setup.md in the project documentation for step-by-step guidance).

Release Artifacts

  • Filename: nyrima-v0.1.0-beta.zip
  • SHA-256 Checksum: b376928fb55cd0b99d9b60da8a7ce4a80caf4a4fde6166444cdc300eb2c0ad0f