Skip to content

Repository files navigation

Doggy Player 🐢

License: Non-Commercial Platform: Windows Language: TypeScript Framework: React Open Source Love


⚠️ COMMERCIAL USE & LICENSING NOTICE

This project is licensed under the nRn World Non-Commercial License.

  • Individuals & Students: Free to download, use, and modify for personal education and private use. You are PROHIBITED from generating any income or profit from this software or its code.
  • Companies & Organizations: Professional use requires prior written consent.
  • Monetization: Any commercial use, sale, or redistribution for profit requires a paid license.

To purchase commercial rights, contact: bynrnworld@gmail.com


Doggy Player is a next-generation, high-performance video player built for modern users. Designed with a sleek, dark-themed interface, it offers unparalleled control over your viewing experience with unique features like intuitive mouse-wheel zooming, custom area selection, on-the-fly rotation, and seamless playlist management.


Key Features

  • Smart Remux Seeking (v1.1.68): Detects MPEG-TS (and similar) files mislabeled as .mp4 and remuxes them once to real seekable MP4 β€” fixes the ~1s freeze on certain large files.
  • Advanced Zooming & Panning: Smooth mouse-wheel zoom and click-to-pan.
  • Area Selection Zoom: Hold Shift and draw a rectangle to zoom into details.
  • Video Rotation Controls: Rotate with Alt + Arrow keys and reset to the original orientation at any time.
  • Per-Video Rotation Lock: Save a manual rotation for a specific video and automatically restore it whenever that video is opened again.
  • Clean Rotation UI: The rotation lock appears only after the user manually rotates the video in Doggy Player, not because of a video's built-in orientation metadata.
  • Video Brightness Control: Adjust the active video from 50% to 150% brightness without modifying the original media file.
  • Per-Video Brightness Lock: Lock a brightness level for a specific video and automatically restore it the next time that video is opened.
  • Brightness Shortcuts: Press Ctrl + Arrow Up or Ctrl + Arrow Down to adjust brightness in 5% steps with an on-video percentage indicator.
  • Precision Playback Control: Play, pause, 5s / 15s (Shift) / 20s (Ctrl) seek with hold-to-seek, adjustable volume and press-and-hold slow motion (0.25x).
  • Smart Playlist: Drag-and-drop support with optional automatic removal of finished videos.
  • IPTV Support: Xtream Codes, M3U, and EPG support built in.
  • Subtitle Engine: Support for .srt, .vtt, .ass, and additional subtitle formats with synchronization offset.
  • Screenshot Capture: Capture frames instantly with Alt + S.
  • Equalizer: Professional audio control with +/-12 dB adjustment.

πŸ“₯ Getting Started

For Users (Windows)

  1. Download the latest installer from the Releases page.
  2. Run Doggy-Player-Setup.exe.
  3. Enjoy your media!

For Developers (Setup)

We welcome community contributions! Please read our Contributing Guidelines before starting.

  1. Clone the repo:
    git clone https://github.com/nRn-World/Doggy-Player.git
  2. Install dependencies:
    npm install
  3. Run in Development Mode:
    npm run dev:electron
  4. Build your own version:
    npm run build:electron

πŸ›‘οΈ Security

We take security seriously. Please review our Security Policy to report any vulnerabilities.


πŸ“Έ Screenshots

Main Interface Playback Controls Playlist & Settings

IPTV Interface Live TV Movies


πŸ› οΈ Tech Stack


🀝 Community & Support



Release Notes v1.1.68

Fixes seek freezes on large files that are MPEG-TS (or similar) despite a .mp4 extension:

  • Root cause: Some β€œ.mp4” files are actually MPEG-TS β€” Chromium freezes about 1 second on every seek.
  • Fix: Detect real container, remux once with stream-copy to a real MP4 + faststart (quality preserved), then play that file.
  • Cached: Next open of the same file skips remux and seeks immediately.
  • Automatic update: Installed apps receive v1.1.68 via the built-in updater after release assets are published.

Release Notes v1.1.67

Hotfix for a regression in v1.1.66:

  • Frozen picture / working audio: Removed the FFmpeg scrub-preview overlay that could stay on top of the video after seeking.
  • Reliable resume: Video playback is forced to continue after seek so picture and sound stay together.
  • Automatic update: Installed apps receive v1.1.67 via the built-in updater after release assets are published.

Release Notes v1.1.66

Doggy Player v1.1.66 fixes the remaining freeze when seeking large/HQ videos with arrow keys or the timeline:

  • Live scrub preview: Holding ←/β†’ or dragging the timeline shows FFmpeg JPEG frames on top of the video so the picture keeps updating.
  • Seek once on release: The real <video> seek runs only when you release keys/mouse β€” no stacked freezes on big files.
  • fastSeek, no pause-first: Single seeks use keyframe seeking without pausing first (which made freezes worse in v1.1.65).
  • Automatic update: Installed apps receive v1.1.66 via the built-in updater after release assets are published.

Release Notes v1.1.65

Doggy Player v1.1.65 fixes freeze-on-seek for large and high-quality videos:

  • No more freeze when seeking: Playback pauses briefly during seek, then resumes so the decoder is not overloaded on big/HQ files.
  • Direct disk playback: Common local formats (mp4, mkv, mov, webm, …) use file:// instead of HTTP Range for much faster seeks.
  • Smarter seek queue: Rapid scrubbing and hold-to-seek coalesce into one in-flight seek (last-wins) instead of stacking decode jobs.
  • Smoother timeline & arrows: UI time updates immediately; media seeks less often while you drag or hold ←/β†’.
  • Transcoded formats: Debounced FFmpeg restarts for avi/ts and similar so seeks no longer pile up.
  • Automatic update: Installed apps on Windows, macOS and Linux receive v1.1.65 automatically via the built-in updater (latest.yml / latest-mac.yml / latest-linux.yml).

Release Notes v1.1.64

Doggy Player v1.1.64 delivers buttery-smooth seeking for large/long videos and pro-grade hold-to-seek controls:

  • Fixed lag on large files: Timeline scrubbing is now debounced (75ms), uses fastSeek to the nearest keyframe and a subtle spinner instead of black flash β€” no more freeze on 4K/long .mp4/.mkv.
  • Faster local streaming: Electron stream server now serves 32 MB chunks with 512 KB highWaterMark, proper Content-Range handling and MIME detection for instant seeks.
  • New seek steps: Single tap Arrow Left/Right is now 5s (was 10s), Shift + arrow = 15s, Ctrl + arrow = 20s.
  • Hold to seek: Hold Arrow Left/Right (or Ctrl/Shift + arrow) to continuously seek until you release β€” perfect for long videos.
  • Smarter UI: Seeking state is tracked separately from buffering, so onTimeUpdate stays smooth and the timeline stays responsive while the video decodes.
  • Automatic update: Installed apps on Windows, macOS and Linux receive v1.1.64 automatically via the built-in updater (latest.yml / latest-mac.yml / latest-linux.yml).

Release Notes v1.1.63

Doggy Player v1.1.63 adds flexible video brightness controls with per-video persistence:

  • Brightness adjustment: Make the active video darker or brighter from 50% to 150%.
  • Visible percentage: The current brightness percentage is displayed in the player controls and as an on-video indicator while adjusting.
  • Keyboard control: Use Ctrl + Arrow Up and Ctrl + Arrow Down to change brightness in 5% steps.
  • Per-video lock: Lock a brightness value for one video and automatically restore it whenever that video is opened again.
  • Non-destructive processing: Brightness affects playback only and never modifies the original video file.
  • Automatic update: Existing installations receive v1.1.63 through Doggy Player's built-in updater after the release assets are published.

Created by ❀️ © nRn World

About

Video Player

Resources

Code of conduct

Contributing

Security policy

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages