bishaldahal
M3U8-HLS-Player-with-Custom-Controls
JavaScript

This extension features Youtube-like keyboard shortcuts for playing HLS or m3u8 content.

Last updated Jun 13, 2026
27
Stars
1
Forks
2
Issues
0
Stars/day
Attention Score
30
Language breakdown
JavaScript 73.4%
HTML 22.7%
CSS 3.9%
โ–ธ Files click to expand
README

M3U8/HLS/DASH Player with Custom Controls

Advanced M3U8/HLS/DASH player with customizable controls. Supports keyboard shortcuts, Picture-in-Picture (PiP), frame navigation, and live streams.

๐Ÿ“ฆ Store Downloads

Chrome Web Store Microsoft Edge Firefox

โœจ Features

  • Customizable controls
  • Keyboard shortcuts
  • Picture in Picture (PiP) mode
  • Frame navigation
  • Support for live streams
  • Chromium DASH Widevine license URL support

๐Ÿ” DASH DRM (Chromium)

For encrypted .mpd streams on Chromium browsers, the player now opens an in-player DRM popup when playback detects a DRM/key-system error.

In the popup, enter:

  • Widevine license URL
  • Optional request headers as key/value rows
  • Add more headers as needed using the Add header button
  • Optional robustness string (for example SWSECUREDECODE)
Quality-of-life behavior:
  • Last entered DRM values are auto-populated on next prompt
  • You can remember DRM values per stream host
Typical header examples:
  • Authorization = Bearer <token>
  • X-Custom-Auth = <value>

๐Ÿ”ง Installation

From Store (Recommended)

  • Chrome Web Store: https://chromewebstore.google.com/detail/gcefmpmkobjndjglciibnendclkahgma?utm_source=github-readme
  • Microsoft Edge Add-ons: https://microsoftedge.microsoft.com/addons/detail/m3u8hls-player-with-cust/bmlnobfgkikeejhbbdlhjinbmdcfgaef?utm_source=github-readme
  • Firefox Add-ons: https://addons.mozilla.org/en-US/firefox/addon/m3u8-hls-player-with-shortcuts?utm_source=github-readme

From Source

git clone https://github.com/bishaldahal/M3U8-HLS-Player-with-Custom-Controls.git
cd M3U8-HLS-Player-with-Custom-Controls
npm install
npm run build:chrome    # for Chrome/Edge

or

npm run build:firefox # for Firefox

Load Unpacked / Temporary Add-on

  • Chrome: chrome://extensions โ†’ Enable Developer mode โ†’ Load unpacked โ†’ select the extension folder
  • Edge: edge://extensions โ†’ Enable Developer mode โ†’ Load unpacked โ†’ select the extension folder
  • Firefox: about:debugging โ†’ This Firefox โ†’ Load Temporary Add-on โ†’ select manifest.json

๐Ÿง‘โ€๐Ÿ’ป Development

npm run build              # Build source files
npm run build:chrome       # Build + package for Chrome/Edge
npm run build:firefox      # Build + package for Firefox
npm run build:all          # Build both platforms

โŒจ๏ธ Keyboard Shortcuts

| Key | Action | Key | Action | | --- | --- | --- | --- | | < | Decrease playback speed by 0.1 | - | Decrease playback speed by 0.5 | | > | Increase playback speed by 0.1 | + | Increase playback speed by 0.5 | | ArrowDown (โ†“) | Decrease volume by 0.1 | ArrowLeft (โ†) | Seek backward 10 seconds | | ArrowUp (โ†‘) | Increase volume by 0.1 | ArrowRight (โ†’) | Seek forward 10 seconds | | p | Request Picture in Picture | j | Seek backward 5 seconds | | P | Exit Picture in Picture | Space / k | Toggle play/pause | | , | Previous frame | l | Seek forward 5 seconds | | . | Next frame | Home | Seek to the beginning of the video | | 0-9 | Seek to a percentage of the video | End | Seek to the end of the video | | Esc | Close keyboard shortcuts | ? | Toggle keyboard shortcuts | | f | Toggle fullscreen | m | Toggle mute |

๐Ÿค Contributing

We welcome contributions from everyone. Whether you're an experienced developer or just getting started, there's a place for you to contribute.

Ways to Contribute

  • Bug Fixes: Fork the repo, fix the issue, and open a PR with details.
  • New Features: Open an issue to discuss the feature before implementing.
  • Improve Documentation: Fix typos, add examples, or clarify usage.
  • Testing: Add tests to ensure stability and prevent regressions.
  • Code Reviews: Review PRs and help improve code quality.
Before you start, please read:

Getting Started

  • Fork the repository:
git clone https://github.com/{yourusername}/M3U8-HLS-Player-with-Custom-Controls.git
  • Navigate to the project directory:
cd M3U8-HLS-Player-with-Custom-Controls
  • Install the dependencies:
npm install
  • Create a new branch:
git checkout -b your-branch-name
  • Make your changes.
  • Commit your changes:
git commit -m "Your commit message"
  • Push your changes:
git push origin your-branch-name
  • Open a Pull Request.

๐Ÿ”— Links

  • Chrome Web Store: https://chromewebstore.google.com/detail/gcefmpmkobjndjglciibnendclkahgma?utm_source=github-readme
  • Edge Add-ons: https://microsoftedge.microsoft.com/addons/detail/m3u8hls-player-with-cust/bmlnobfgkikeejhbbdlhjinbmdcfgaef?utm_source=github-readme
  • Firefox Add-ons: https://addons.mozilla.org/en-US/firefox/addon/m3u8-hls-player-with-shortcuts?utmsource=githubreadme)utm_source=github-readme
๐Ÿ”— More in this category

ยฉ 2026 GitRepoTrend ยท bishaldahal/M3U8-HLS-Player-with-Custom-Controls ยท Updated daily from GitHub