No description
  • JavaScript 68.1%
  • HTML 16.8%
  • CSS 15.1%
Find a file
2026-04-03 16:26:46 +01:00
assets feat: improve subtitle auto attach flow 2026-04-03 16:26:46 +01:00
.DS_Store refactor: simplify player stage layout logic 2026-03-29 11:44:42 +01:00
.gitignore refactor: simplify player stage layout logic 2026-03-29 11:44:42 +01:00
android-chrome-192x192.png first commit 2026-03-22 23:37:05 +00:00
android-chrome-512x512.png first commit 2026-03-22 23:37:05 +00:00
apple-touch-icon.png first commit 2026-03-22 23:37:05 +00:00
BUILD_VERSION.txt README.md updated 2026-03-23 21:21:54 +00:00
DEVELOPMENT.md docs: README.md, DEVELOPMENT.md updated 2026-03-23 21:50:42 +00:00
favicon-16x16.png first commit 2026-03-22 23:37:05 +00:00
favicon-32x32.png first commit 2026-03-22 23:37:05 +00:00
favicon.ico first commit 2026-03-22 23:37:05 +00:00
index.html refactor: simplify player stage layout logic 2026-03-29 11:44:42 +01:00
pwa-screenshot-narrow.png feat: improve subtitle auto attach flow 2026-04-03 16:26:46 +01:00
pwa-screenshot-wide.png feat: improve subtitle auto attach flow 2026-04-03 16:26:46 +01:00
README.md README.md, DEVELOPMENT.md updated 2026-03-23 21:38:13 +00:00
site.webmanifest refactor: simplify player stage layout logic 2026-03-29 11:44:42 +01:00
sw.js refactor: simplify player stage layout logic 2026-03-29 11:44:42 +01:00

JoyPlayer

JoyPlayer is a local-first media player built for the web.

It lets you open media directly from your device, manage a temporary playlist in the browser, attach subtitles, and keep playback smooth across desktop and mobile. It is designed to feel like an app, not just a demo player.

What it does

JoyPlayer focuses on playing your own media without forcing an upload step or a server-side library.

You can:

  • open local video, audio, image, and subtitle files
  • drag and drop files directly into the player
  • open an entire folder in supported browsers
  • keep a temporary playlist in the current browser
  • search, sort, reorder, and remove playlist items
  • resume playback from where you left off
  • auto-match subtitle files for videos
  • control subtitle track, delay, size, and theme
  • switch a video into audio-only mode
  • use cinema mode, fullscreen, and Picture-in-Picture
  • view cover art or a JoyPlayer fallback visual for audio playback
  • use media keys and lock-screen / system media controls where supported
  • install it as a PWA for an app-like experience

Main features

Local-first playback

Open files from your own device and play them instantly in the browser.

Playlist management

Build a working playlist without needing an account. Reorder items, sort AZ, search the playlist, and remove individual entries.

Subtitle controls

Load .srt and .vtt subtitles, let the player auto-detect matching subtitle files, and adjust subtitle delay, size, and theme.

Audio-friendly experience

Audio files show cover art when available. When art is missing, JoyPlayer shows a branded fallback visual instead of leaving the stage empty.

Resume memory

JoyPlayer remembers playback progress in the browser so you can continue from the last saved point.

Folder mode

In supported browsers, you can open a folder and re-open that saved library later without rebuilding the list manually.

App-like controls

The player supports media session integration, install prompt handling, keyboard shortcuts, and a focused viewing mode for larger screens.

Supported media

JoyPlayer is built around common browser-playable formats.

Typical use cases:

  • Video: common browser-supported formats such as MP4/WebM
  • Audio: browser-supported audio files such as MP3 and similar formats
  • Images: standard web-friendly image formats
  • Subtitles: .srt and .vtt

Actual playback support still depends on the browser and codec availability.

How to use

1. Open media

Use Open Files to choose one or more media files from your device.

2. Add subtitles

Use Open Subtitle to add subtitle files. Matching subtitle files can also be detected automatically.

3. Play from a folder

Use Open Folder in a supported Chromium-based browser to load a media folder.

4. Manage the playlist

Use the playlist panel to:

  • search items
  • move them up or down
  • remove entries
  • sort the list alphabetically
  • clear the playlist

5. Control playback

Use the player controls for:

  • play / pause
  • previous / next
  • volume
  • speed
  • shuffle
  • repeat
  • fullscreen
  • Picture-in-Picture
  • audio-only mode
  • cinema mode

6. Continue later

JoyPlayer stores resume position and preferences in the browser, so the next visit feels continuous.

Browser support

JoyPlayer works best in modern browsers.

For the best experience, use a Chromium-based browser if you want:

  • folder access
  • reconnecting a saved library
  • persistent folder handle behavior

Other modern browsers can still use regular local file playback, but some advanced file-system features may be unavailable.

Who it is for

JoyPlayer is a good fit for people who want:

  • a clean local media player in the browser
  • subtitle support without extra setup
  • an installable PWA experience
  • a local playlist without uploading files anywhere
  • a lightweight personal media app for desktop and mobile

Current direction

Right now, JoyPlayer is documented as a local-first player.

Future directions such as saved remote playlists, user accounts, and server-backed libraries can be added later, but they are intentionally out of scope for this version of the README.

Notes

  • Your media stays on your device during normal local playback.
  • Saved preferences and progress are stored in the browser.
  • Some features depend on browser APIs and permissions.

License

Add your preferred license here.