A free hls.js plugin to offload bandwidth from expensive traditional CDNs,while also maximizing a user’s viewing experience.
Switch branches/tags
Nothing to show
Clone or download
Latest commit 06be155 Nov 12, 2018
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Update issue templates Jun 12, 2018
demo fix bug when destroy hls Nov 11, 2018
dist fix bug when destroy hls Nov 11, 2018
figs update readme Nov 6, 2018
src fix bug when destroy hls Nov 11, 2018
.babelrc first commit May 21, 2018
.gitignore fix bug when destroy hls Nov 11, 2018
LICENSE Create LICENSE Jun 12, 2018
README.md update readme Nov 12, 2018
Readme_zh.md update readme Nov 12, 2018
package.json update readme Nov 12, 2018
webpack.config.js release v0.3 Sep 8, 2018


English | 简体中文

cdnbye logo

Save Your Bandwidth using WebRTC.

npm jsdelivr size License

This JS library implements WebRTC datachannel to scale live/vod video streaming by peer-to-peer network using bittorrent-like protocol. The forming peer network can be layed over other CDNs or on top of the origin server. Powered by hls.js, it can play HLS on any platform with many popular HTML5 players such as video.js, JWPlayer and Flowplayer. BTW, if you need a p2p engine for dash.js, tell me!


  • WebRTC data channels for lightweight peer-to-peer communication with no plugins
  • Support live and VOD streams over HLS protocol(m3u8)
  • Very easy to integrate with an existing hls.js project
  • Seamlessly fallback to normal server usage if a browser doesn't support WebRTC
  • Highly configurable for users
  • Support most popular HTML5 players such as video.js、Clappr、Flowplayer
  • Efficient scheduling policies to enhance the performance of P2P streaming
  • Use IP database to group up peers by ISP and regions


Click me!

Getting Started

Quick Start Demo

Put the quick-start.html in your web page, run it. Wait for a few seconds,then open the same page from another browser. Now you have a direct P2P connection between two browsers without plugin! The first web peer will serve as a seed, if no one else in the same channel.

Integrate to Your Hls.js Project

Simply replace the hls.js script tag like:

<script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>


<script src="https://cdn.jsdelivr.net/npm/cdnbye@latest"></script>

That's it!

Integrate to HTML5 Players

See demos.

Browser Support

WebRTC has already been incorporated into the HTML5 standard and it is broadly deployed in modern browsers. The compatibility of CDNBye depends on the browser support of WebRTC and Hls.js. Please note that iOS Safari "Mobile" does not support the MediaSource API.

Compatibility Chrome Firefox Mac Safari iOS Safari Opera IE Edge
WebRTC Yes Yes Yes Yes Yes No No
Hls.js Yes Yes Yes No Yes Yes Yes
CDNBye Yes Yes Yes No Yes No No


Include the pre-built script of latest version bundled with hls.js(recommended):

<script src="https://cdn.jsdelivr.net/npm/cdnbye@latest"></script>

Or include the latest version without hls.js:

<script src="https://cdn.jsdelivr.net/npm/cdnbye@latest/dist/hlsjs-p2p-engine.min.js"></script>


See Usage

Player Integration

API and Configuration

See API.md


We have collected some frequently asked questions. Before reporting an issue, please search if the FAQ has the answer to your problem.

Contact Us

Email: service@cdnbye.com