PekoPlayer plays video files from your own device, in the browser or as a portable Windows app. It has no backend: nothing is uploaded, and there are no accounts, analytics or error reports.
- Playback. Files, folders and drag and drop (MP4, WebM, OGG, MOV, MKV, 3GP, as far as your browser can decode them). Speed control, frame stepping, A-B loop, silence skipping, sleep timer, Picture-in-Picture, resume position, bookmarks.
- Transcript search.
.srtand.vttsubtitles become a searchable transcript. Every match links to that moment, and small typos still match. Chapters from yt-dlp.info.jsonfiles or detected from pauses in the dialogue. - Picture. WebGL2 effects with 7 presets and sliders for exposure, contrast, saturation, temperature, tint, sharpness and vignette. Brightness, fit and aspect ratio, rotate, zoom, screenshots that include the effects.
- Sound. Equalizer with presets, skip silence, volume and speed control.
- Playlists. Sidebar or carousel, shuffle, sorting, loop modes, thumbnail previews.
- Multi-view. Local files and YouTube links side by side in a grid, split or free canvas layout.
- Interface. Three control bar layouts, three looks, eight accent colors plus a custom one, elapsed or remaining time.
![]() Empty state |
![]() Main Player |
![]() Playlist sidebar |
![]() Playlist carousel |
![]() Transcript search |
![]() Video effects |
![]() Playback settings |
![]() Interface settings |
![]() Time display. Click it to switch between elapsed and remaining time. |
|
Pick a layout and a look under Settings → Interface.
| Classic | Compact | Capsule |
|---|---|---|
![]() |
![]() |
![]() |
| Frost | Glass | Solid |
|---|---|---|
![]() |
![]() |
![]() |
| Web app | Open the site and use your browser's install button, or Install web app in the shortcuts panel (?). After the first visit it works offline. |
| Windows | Download PekoPlayer-<version>-portable.exe from the latest release and run it. No installer, no administrator rights. The file is unsigned, so SmartScreen may warn: choose More info → Run anyway. |
| Source | See Run from source. |
The installed web app and the Windows app both appear in Open with for video files.
Requires Node.js 22.
npm ci
npm run build
npm run serve # http://localhost:8080Use the served URL rather than opening dist/index.html; offline mode and the install prompt need localhost or HTTPS.
npm run desktop:start # run the desktop app
npm run desktop:dist # build release/PekoPlayer-<version>-portable.exeDeveloped and tested in Chromium. Effects use WebGL2 in a worker (OffscreenCanvas); browsers without it hide the feature. Firefox and WebKit get a startup check in CI. Playable formats depend on your browser's codecs.
npm test # lint, format check, static checks, unit tests, build, smoke tests
npm run test:unit # fast tests for the pure logicsrc/ App source: HTML, CSS, scripts, workers, icons
public/ Files copied to the build unchanged
desktop/ Electron shell for the Windows build
tools/ Build, check and dev-server scripts
tests/ Unit and smoke tests
docs/ Guides and screenshots
- No analytics, telemetry, cookies or accounts.
npm run checkfails the build if a telemetry API or an unapproved host appears in the source, and a smoke test confirms startup makes no third-party request. - Fonts, icons and code are served from the same origin. Nothing loads from a CDN.
- Settings, resume positions, bookmarks and thumbnails stay in your browser's
localStorageand IndexedDB. The Windows app keeps them in aPekoPlayer-datafolder next to the executable. - Two features contact third parties, only when you use them: YouTube tiles in multi-view (
youtube-nocookie.com) and the subtitle search (opensubtitles.org).
Architecture · Multi-view · Desktop build · Deployment · Publishing · Testing · Debug panel
Contributing · Security · Disclaimer
GPL-3.0. Bundled Lucide icons are ISC (license); bundled fonts use the SIL Open Font License (license).

















