whatisgithub

What is dash.js?

dash-industry-forum/dash.js — explained in plain English

Analysis updated 2026-06-26

5,516JavaScriptAudience · developerComplexity · 2/5LicenseSetup · easy

In one sentence

A JavaScript library that adds adaptive video streaming to any web page, it picks the best quality for each viewer's internet connection in real time, the same way Netflix and YouTube work, using only a script tag.

Mindmap

mindmap
  root((dash.js))
    What it does
      Adaptive video streaming
      Real-time quality switching
      Browser-native playback
    How it works
      MPD manifest format
      Chunked video requests
      Encrypted Media Extensions
    Setup
      Script tag include
      Point at MPD file
      Ten lines of code
    Use cases
      Reference DASH player
      DRM protected video
      Custom streaming apps
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Add adaptive video streaming to a web app so viewers always get the best quality their connection can handle.

USE CASE 2

Build a DASH-compliant video player to test or validate MPEG-DASH content before deploying to production.

USE CASE 3

Play DRM-protected video in a browser using Encrypted Media Extensions without requiring browser plugins.

USE CASE 4

Use the hosted reference player and sample streams to prototype a streaming feature without your own backend.

What is it built with?

JavaScriptMPEG-DASHEMEHTML5

How does it compare?

dash-industry-forum/dash.jschavyleung/scriptsohmjs/ohm
Stars5,5165,5115,521
LanguageJavaScriptJavaScriptJavaScript
Setup difficultyeasymoderateeasy
Complexity2/53/53/5
Audiencedevelopergeneraldeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min
Use freely for any purpose including commercial use, BSD license requires keeping the copyright notice.

So what is it?

dash.js is a JavaScript library that plays video in a web browser using a streaming format called MPEG-DASH. DASH stands for Dynamic Adaptive Streaming over HTTP, and it is a method of delivering video that adjusts quality in real time based on the viewer's internet speed. Rather than downloading an entire video file, the browser requests small chunks, and the player picks the right quality level for each chunk depending on how fast the connection is at that moment. This is the same general approach used by YouTube, Netflix, and most large streaming platforms. The library runs entirely in the browser using standard web APIs for handling media and encrypted content. It is a reference implementation, meaning the Dash Industry Forum produced it to demonstrate correct, spec-compliant behavior for developers building DASH players or testing DASH content. Using it is straightforward. You include the library in a web page with a script tag, create a player object, and point it at an MPD file, which is the manifest format DASH uses to describe the available video streams. A working example showing the minimum required code is included in the README and fits in about ten lines of HTML and JavaScript. The library also supports encrypted video through a standard called Encrypted Media Extensions, which lets browsers play content protected by digital rights management systems without browser plugins. The project is maintained by the Dash Industry Forum, the standards body that oversees the DASH specification. Full documentation, a quickstart guide, and a hosted reference player with sample streams are available on the project's documentation site. The library is released under a BSD license.

Copy-paste prompts

Prompt 1
Show me the minimal HTML and JavaScript needed to embed a dash.js player on a web page and point it at an MPD manifest file.
Prompt 2
I want to play DRM-protected video using dash.js with Widevine. Walk me through the Encrypted Media Extensions setup and what configuration dash.js needs.
Prompt 3
Help me customize the dash.js player to start at a specific quality level and disable automatic bitrate adaptation for a controlled testing environment.
Prompt 4
My DASH stream is served from a different domain than my web page. Explain the CORS configuration needed on my video server to make dash.js work.
Prompt 5
Explain to a non-technical PM what MPEG-DASH adaptive streaming is, why it matters for video quality, and how dash.js compares to just using an MP4 in an HTML video tag.

Frequently asked questions

What is dash.js?

A JavaScript library that adds adaptive video streaming to any web page, it picks the best quality for each viewer's internet connection in real time, the same way Netflix and YouTube work, using only a script tag.

What language is dash.js written in?

Mainly JavaScript. The stack also includes JavaScript, MPEG-DASH, EME.

What license does dash.js use?

Use freely for any purpose including commercial use, BSD license requires keeping the copyright notice.

How hard is dash.js to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is dash.js for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.