Hotlink protection

Stopping other sites from playing your video on your bandwidth bill — by deciding where and for whom a stream is allowed to start.

Updated: November 2026 6 min read Security
In short

Hotlinking means someone embeds or links your video file directly, so their visitors watch it and you pay for the delivery; hotlink protection — domain locks, signed expiring links, playback tokens — makes the video play only where you allow.

What is hotlinking?

Hotlinking is when another website uses your media URL directly — a video file, an HLS playlistManifestA small index file (.m3u8 or .mpd) that lists every available rendition and segment so the player knows what it can request.Open definition → or your embed code — so the video plays on their page while the delivery is served, and billed, from your account. For images it is an annoyance; for video it is expensive, because video is the heaviest thing on the web. An hour of 1080p is around 1–3 GB per viewer.

The usual symptoms: a sudden jump in delivery traffic without a matching rise in your own visitors, playback analytics showing referrers you do not recognise, and training or course videos turning up on forums and resellers’ sites.

Ways to protect video from hotlinking

MethodHow it worksStrength
Referer checkCDN refuses requests whose Referer header is not your domainWeak — headers are easy to spoof or strip
Domain-locked embedThe player only starts on approved domainsGood for embeds; stops copy-pasted players
Signed URLsSigned URLA playback link carrying an expiry and a cryptographic token — it stops working once the window closes, and a tampered link never works.Open definition →Playback links carry an expiry and a cryptographic tokenStrong — a shared link dies when the window closes
Backend playback tokensYour server approves each play for a signed-in userStrongest access rule
DRMDRMEncryption of the video file plus a licence server that issues a per-session key — so a downloaded copy stays unplayable.Open definition →Segments are encrypted; keys go only to licensed sessionsStops playable copies, not just links

The methods stack. A domain lock stops the casual copy of an embed; signed links and tokens stop direct links to the stream; DRM makes a captured file useless. See video access controlVideo access controlThe rules that decide who may start a video: approved domains, expiring signed links, geo and IP limits, passwords, one-time codes and SSO.Open definition → for the full set of rules.

How to stop hotlinking in practice

Find where traffic comes from

Compare delivery volume with your own page views, and check playback analytics for unknown domains.

Lock embeds to your domains

List the sites — your LMS, intranet, membership site — where the player may start. A copied embed elsewhere stays blank.

Expire the links

Switch public file and playlist URLs to signed links with a short lifetime, so a link posted on a forum stops working.

Tie playback to a login

For paid or internal video, let your backend approve each play, and add DRM so a recorded stream cannot be replayed elsewhere.

Further reading

Denis Konnov

Written by

Denis Konnov Verified

CMO at Kinescope

Denis leads marketing and content at Kinescope, working closely with the platform's engineers. This glossary is reviewed and kept up to date by the team building Kinescope's streaming, encoding and CDN delivery infrastructure.

FAQ

Can’t find the answer you need? Check out our Help Center.

Video hotlinking is when another site embeds or links your video file, playlist or player directly, so its visitors watch your video while the delivery traffic is billed to you. Because video files are large, hotlinking can add a large, unexplained jump to bandwidth costs.

Use a video platform or CDN that supports domain restrictions: you list the domains where the player may start, and an embed copied to any other site stays blank. For direct file or playlist links, add signed URLs with an expiry so a shared link stops working.

Not on its own. Referer headers can be spoofed or removed, and some browsers and apps send none, so a Referer rule either lets copies through or blocks real viewers. Combine it with domain-locked embeds, signed links and, for paid content, backend playback tokens and DRM.

Find the referring domains in your analytics, lock playback to your own domains, switch public links to expiring signed URLs, and require a login for paid or internal video. After that, delivery traffic should follow your own audience again.