How to Tell Whether a Web Video Is DRM Protected

This is the question with the shortest honest answer: if it is protected, the workflow that works for everything else is the one that does not work — and that is the intended behaviour, not a bug in your tool.

What this page is: a download encrypted video stream explanation and a way to tell, from your own browser, whether a stream is DRM protected. What it is not: a method for getting around it. Recognising protection is useful because it saves you from hours of troubleshooting a case that has no download-side answer, and because it stops you from blaming a tool that is behaving correctly.

The three delivery states you can observe

StateWhat the network tab showsDownloadable in clear?
ProgressiveOne media file requestYes — it is just a file
Adaptive, unencryptedManifest + fragments; fragments begin with recognisable box headersYes — fetch and remux
ProtectedManifest + fragments whose samples are encrypted, plus a license/key exchange with a separate endpointNo. This is the boundary

Signals that a stream is protected

  • Key-system traffic. Requests to a licence endpoint, often on a different domain, with payloads mentioning key systems such as Widevine, PlayReady or FairPlay. The browser is negotiating decryption, not fetching video.
  • EME in the page. The Encrypted Media Extensions API is what gives web code access to those systems; its presence in script or in an encrypted event on the media element is a clear sign. MDN documents the Encrypted Media Extensions API.
  • Encrypted markers in the manifest. HLS playlists carry an EXT-X-KEY line when samples are AES-encrypted (RFC 8216); DASH manifests describe ContentProtection elements (DASH-IF guidelines).
  • Sample entropy. A fragment that begins with a clean ftyp/moof box structure is ordinary fMP4; one that begins with unparseable bytes and has no key URI nearby is not something your tools can open.
  • The obvious tells. Subscription video services, studio-licensed catalogues and anything whose page mentions “protected playback” in its help text.

Why “it plays but I can’t save it” is the correct outcome

In a protected stream, decryption happens inside the playback path — the decoder receives clear samples that never exist as a file on disk. There is no complete unencrypted file to fetch, so a downloader’s failure is not a compatibility gap. Treating it as one is the mistake this page exists to prevent: the boundary is the product working as designed, and VidBrowser’s stated function covers browser-session download of media in the clear, not defeating access controls.

What to do instead

1

Confirm you are looking at protection, not a bug

Run the checks above. If key-system traffic or an EXT-X-KEY/ContentProtection declaration is present, stop troubleshooting — the problem is the class of delivery.

2

Use the platform’s own offline option

If a service offers downloads in its official app, that is the sanctioned route and usually the only legitimate one.

3

Look for a free version of the same thing

Lectures, conference talks, public briefings and creator uploads are frequently mirrored openly — and public pages are ordinary files. Public video for research and team libraries covers that hunt.

4

Ask for a copy

For institutional and enterprise content, an access or export request to the owner beats any technical route. It is also the one that leaves you with usable rights, not just a file.

What this page will not help with

No DRM circumvention: no key extraction, no decrypting recorded streams, no tools that claim to convert protected playback into a file. That is a deliberate limit of every method in this blog, and a legal one in most jurisdictions — anti-circumvention rules exist independently of copyright in the content. If a page or product tells you otherwise, that claim is the thing to be suspicious about.

FAQ

How can I tell if a web video is DRM protected?

Look for key-system traffic to a licence endpoint, an Encrypted Media Extensions call in the page, EXT-X-KEY in an HLS playlist, or ContentProtection in a DASH manifest. Any of those is a yes.

Why does my downloader fail on a video I can play?

Because in protected streams the clear samples never exist as a file. It is not a missing feature; there is nothing to fetch.

Can you explain how encrypted streams work?

Yes — the player negotiates a licence, decrypts samples in the playback path, and the media is never assembled in the clear on disk. The manifest and segments stay encrypted.

Is downloading protected video legal?

This blog does not assist with it. Anti-circumvention rules apply separately from copyright in many jurisdictions, and bypassing a service's controls also breaches its terms.

What if I only want it offline on a plane?

Use the service’s own offline mode, or ask the rights holder. A legitimate personal-need reason does not change the technical or contractual position.

Does HLS always mean DRM?

No — most HLS is unencrypted and downloadable. Encryption is an option declared in the manifest, not a property of the format.