This guide provides step-by-step instructions on integrating Widevine with HTML5 video players. Widevine ensures secure playback and decryption of encrypted videos through the configuration of license server URLs.
This guide walks through pointing common HTML5 video players at Bunny Stream’s Widevine license server so encrypted videos play back securely in Chrome, Edge, Firefox, and other Widevine-capable browsers.
Ensure that the Media Cage DRM Enterprise feature is enabled in your account. If you need guidance on how to enable this feature, please refer to our Media Cage DRM Enterprise quickstart guide.
To ensure the seamless playback of encrypted videos, it is crucial to configure the license server URL with your video players. The following section provides a code snippet for configuring license proxies with various widely used video players.
The license service endpoint employs referrer protection and embed token authentication to secure requests, similar to our player Embed View. That means if token authentication is enabled it should also be present in requests going to DRM license endpoint ( the same is for referrer protection and token authentication). These security rules ensure that only requests from authorized sources with valid tokens are processed if configured.For the authentication to work, it has to be enabled in dashboard:For more detailed guidance on these security mechanisms, please visit our Embed View Token Authentication page.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"bunny.net Documentation","colors":{"primary":"#EF6126","light":"#EF6126","dark":"#EF6126"},"logo":{"light":"https://mintcdn.com/bunnynet-cb9733c2/54-4KCQKoNVNuoyW/logo/bunny-logo-dark.svg?fit=max\u0026auto=format\u0026n=54-4KCQKoNVNuoyW\u0026q=85\u0026s=62c091ea1aaea93d0a981902b7783e37","dark":"https://mintcdn.com/bunnynet-cb9733c2/54-4KCQKoNVNuoyW/logo/bunny-logo-light.svg?fit=max\u0026auto=format\u0026n=54-4KCQKoNVNuoyW\u0026q=85\u0026s=3610e32d68a9fa458b0116ac58ca812a"},"favicon":"https://mintcdn.com/bunnynet-cb9733c2/1bTPx1eyQm8EK8W3/favicon.png?fit=max\u0026auto=format\u0026n=1bTPx1eyQm8EK8W3\u0026q=85\u0026s=85267b63e804fac7a4dd94599bb8c6e8","navbar":{"links":[{"href":"https://bunny.net/docs/api-reference","label":"API Reference"},{"href":"https://github.com/BunnyWay","label":"GitHub"}],"primary":{"type":"button","label":"Get Started","href":"https://dash.bunny.net/auth/register"}},"footer":{"socials":{"discord":"https://discord.gg/bunnynet","github":"https://github.com/BunnyWay","x":"https://x.com/BunnyCDN","bluesky":"https://bsky.app/profile/bunny.net","linkedin":"https://www.linkedin.com/company/bunnynet","facebook":"https://www.facebook.com/bunnycdn"}},"icons":{"library":"lucide"},"contextual":{"options":["copy","claude","chatgpt","cursor","view","vscode"],"display":"header"},"interaction":{"drilldown":false},"metadata":{"timestamp":true},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"bunnynet-cb9733c2","hasAudioNarration":false,"actualSubdomain":"bunnynet-cb9733c2","customDomains":["bunny.net"],"gitSource":{"type":"github","owner":"bunnyway","repo":"documentation","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae49f2d21d44d6b52dcfe35","collectionId":"5e262b87-ade9-45d8-9b63-06888c8d59a3","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae49f2d21d44d6b52dcfe35"},"feedback":{"thumbs":true,"contextualFeedback":{"allowEmail":true},"agentFeedback":true,"edits":true,"issues":false},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae586f29229f31e96cc51a9","clientVersion":"0.0.4043","searchFilterCounts":[{"language":"default","tag":"Documentation","count":752},{"language":"default","tag":"API Reference","count":318},{"language":"default","tag":"Core Platform API","count":109},{"language":"default","tag":"CDN","count":82},{"language":"default","tag":"Shield API","count":66},{"language":"default","tag":"Stream","count":66},{"language":"default","tag":"Magic Containers API","count":56},{"language":"default","tag":"Storage","count":54},{"language":"default","tag":"Guides","count":54},{"language":"default","tag":"Reference","count":52}],"searchSettings":{"isFiltersEnabled":true}},"assistantConfig":{"enableStarterQuestions":false,"deflection":{"enabled":true,"type":"link","email":"support@bunny.net","url":"https://bunny.net/contact","showHelpButton":true}},"basePath":"/docs","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"privacy":{"consentBanner":{"enabled":true}},"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".dark img[src*=\"/logo/frameworks/angular.svg\"],.dark img[src*=\"/logo/frameworks/eleventy.svg\"],.dark img[src*=\"/logo/frameworks/express.svg\"],.dark img[src*=\"/logo/frameworks/mariadb.svg\"],.dark img[src*=\"/logo/frameworks/nextjs.svg\"],.dark img[src*=\"/logo/frameworks/sphinx.svg\"]{filter:invert(1)}html:not(.dark) img[src*=\"/logo/frameworks/zola.svg\"]{filter:invert(1)}"}],"page":{"pagePath":"stream/players/widevine","slug":"/stream/players/widevine","pageMetadata":{"title":"Widevine HTML5 integration","description":"This guide provides step-by-step instructions on integrating Widevine with HTML5 video players. Widevine ensures secure playback and decryption of encrypted videos through the configuration of license server URLs.","href":"/stream/players/widevine"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"This guide provides step-by-step instructions on integrating Widevine with HTML5 video players. Widevine ensures secure playback and decryption of encrypted videos through the configuration of license server URLs.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,li:`li`,p:`p`,ul:`ul`,..._provideComponents(),...props.components},{Heading,OptimizedImage}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`This guide walks through pointing common HTML5 video players at Bunny Stream’s Widevine license server so encrypted videos play back securely in Chrome, Edge, Firefox, and other Widevine-capable browsers.`}),`\n`,_jsx(Heading,{level:`2`,id:`what-you’ll-need`,children:`What you’ll need`}),`\n`,_jsx(_components.p,{children:`Before you dive in, make sure you have the following prerequisites in place:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`A `,_jsx(_components.a,{href:`https://bunny.net/`,children:`bunny.net`}),` account ( `,_jsx(_components.a,{href:`https://dash.bunny.net/auth/login?pk_buttonlocation=menu`,children:`Log in`}),` or sign up for a `,_jsx(_components.a,{href:`https://dash.bunny.net/auth/register`,children:`free trial`}),`).`]}),`\n`,_jsxs(_components.li,{children:[`Ensure that the Media Cage DRM Enterprise feature is enabled in your account. If you need guidance on how to enable this feature, please refer to our `,_jsx(_components.a,{href:`/stream/quickstart-mediacage-enterprise`,children:`Media Cage DRM Enterprise quickstart guide`}),`.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`use-license-server-url-with-video-players`,children:`Use license server URL with video players`}),`\n`,_jsx(_components.p,{children:`To ensure the seamless playback of encrypted videos, it is crucial to configure the license server URL with your video players. The following section provides a code snippet for configuring license proxies with various widely used video players.`}),`\n`,_jsx(Heading,{level:`2`,id:`authentication`,children:`Authentication`}),`\n`,_jsx(_components.p,{children:`The license service endpoint employs referrer protection and embed token authentication to secure requests, similar to our player Embed View. That means if token authentication is enabled it should also be present in requests going to DRM license endpoint ( the same is for referrer protection and token authentication). These security rules ensure that only requests from authorized sources with valid tokens are processed if configured.`}),`\n`,_jsx(_components.p,{children:`For the authentication to work, it has to be enabled in dashboard:`}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/bunnynet-cb9733c2/kcU5tb-Sz5318NF5/images/docs/e6ff6bd-image.png?fit=max\u0026auto=format\u0026n=kcU5tb-Sz5318NF5\u0026q=85\u0026s=ca7366ff58c17eb7e0c5b687a15d4ea2`,alt:``,\"data-og-width\":`1232`,width:`1232`,\"data-og-height\":`392`,height:`392`,\"data-path\":`images/docs/e6ff6bd-image.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/bunnynet-cb9733c2/kcU5tb-Sz5318NF5/images/docs/e6ff6bd-image.png?w=280\u0026fit=max\u0026auto=format\u0026n=kcU5tb-Sz5318NF5\u0026q=85\u0026s=57f527f812e4e252a1485925baef65d8 280w, https://mintcdn.com/bunnynet-cb9733c2/kcU5tb-Sz5318NF5/images/docs/e6ff6bd-image.png?w=560\u0026fit=max\u0026auto=format\u0026n=kcU5tb-Sz5318NF5\u0026q=85\u0026s=5153c80e5163e55816e50413d4e3504a 560w, https://mintcdn.com/bunnynet-cb9733c2/kcU5tb-Sz5318NF5/images/docs/e6ff6bd-image.png?w=840\u0026fit=max\u0026auto=format\u0026n=kcU5tb-Sz5318NF5\u0026q=85\u0026s=0b289e8c5f32ee985c07dadb05bde3d3 840w, https://mintcdn.com/bunnynet-cb9733c2/kcU5tb-Sz5318NF5/images/docs/e6ff6bd-image.png?w=1100\u0026fit=max\u0026auto=format\u0026n=kcU5tb-Sz5318NF5\u0026q=85\u0026s=4014ddf2d0bf2ec48595096e1a045066 1100w, https://mintcdn.com/bunnynet-cb9733c2/kcU5tb-Sz5318NF5/images/docs/e6ff6bd-image.png?w=1650\u0026fit=max\u0026auto=format\u0026n=kcU5tb-Sz5318NF5\u0026q=85\u0026s=ed8fd2e392ccb76457ed9fc7f49a91b8 1650w, https://mintcdn.com/bunnynet-cb9733c2/kcU5tb-Sz5318NF5/images/docs/e6ff6bd-image.png?w=2500\u0026fit=max\u0026auto=format\u0026n=kcU5tb-Sz5318NF5\u0026q=85\u0026s=5404b8d3fa520192ab6eb529a3180155 2500w`}),`\n`,_jsxs(_components.p,{children:[`For more detailed guidance on these security mechanisms, please visit our `,_jsx(_components.a,{href:`/stream/token-authentication`,children:`Embed View Token Authentication page`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Widevine HTML5 integration","description":"This guide provides step-by-step instructions on integrating Widevine with HTML5 video players. Widevine ensures secure playback and decryption of encrypted videos through the configuration of license server URLs.","href":"/stream/players/widevine"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"What you’ll need","slug":"what-you’ll-need","depth":2,"children":[]},{"title":"Use license server URL with video players","slug":"use-license-server-url-with-video-players","depth":2,"children":[]},{"title":"Authentication","slug":"authentication","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"bunnynet-cb9733c2","siteName":"bunny.net Documentation","title":"Widevine HTML5 integration - bunny.net Documentation","relatedPagesConfig":{"enabled":false,"limit":5,"mode":"automatic"},"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-06T07:39:31.921Z","gitLastModified":"2026-08-06T07:38:48.000Z","originalFileLocation":"stream/players/widevine.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"This guide provides step-by-step instructions on integrating Widevine with HTML5 video players. Widevine ensures secure playback and decryption of encrypted videos through the configuration of license server URLs.\">\u003cmeta data-mint-head name=\"application-name\" content=\"bunny.net Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/bunnynet-cb9733c2/Zv4NOenQlgPS3TXm/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/bunnynet-cb9733c2/Zv4NOenQlgPS3TXm/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/bunnynet-cb9733c2/Zv4NOenQlgPS3TXm/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/bunnynet-cb9733c2/Zv4NOenQlgPS3TXm/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/bunnynet-cb9733c2/Zv4NOenQlgPS3TXm/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/bunnynet-cb9733c2/Zv4NOenQlgPS3TXm/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/bunnynet-cb9733c2/Zv4NOenQlgPS3TXm/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/bunnynet-cb9733c2/Zv4NOenQlgPS3TXm/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/bunnynet-cb9733c2/Zv4NOenQlgPS3TXm/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Widevine HTML5 integration - bunny.net Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"This guide provides step-by-step instructions on integrating Widevine with HTML5 video players. Widevine ensures secure playback and decryption of encrypted videos through the configuration of license server URLs.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"bunny.net Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://bunny.net/docs/stream/players/widevine\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://bunnynet-cb9733c2.mintlify.app/_mintlify/api/og/v2?division=3rd+Party+Players\u0026amp;title=Widevine+HTML5+integration\u0026amp;description=This+guide+provides+step-by-step+instructions+on+integrating+Widevine+with+HTML5+video+players.+Widevine+ensures+secure+playback+and+decryption+of+encrypted+vid\u0026amp;theme=3e3fa11ba94222b95e7f52d5\u0026amp;signature=70946606a73a52f7c5e8c0292c49425dfb8fec978256de78bc264e864d65cf35\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Widevine HTML5 integration - bunny.net Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"This guide provides step-by-step instructions on integrating Widevine with HTML5 video players. Widevine ensures secure playback and decryption of encrypted videos through the configuration of license server URLs.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://bunnynet-cb9733c2.mintlify.app/_mintlify/api/og/v2?division=3rd+Party+Players\u0026amp;title=Widevine+HTML5+integration\u0026amp;description=This+guide+provides+step-by-step+instructions+on+integrating+Widevine+with+HTML5+video+players.+Widevine+ensures+secure+playback+and+decryption+of+encrypted+vid\u0026amp;theme=3e3fa11ba94222b95e7f52d5\u0026amp;signature=70946606a73a52f7c5e8c0292c49425dfb8fec978256de78bc264e864d65cf35\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/bunnynet-cb9733c2/Zv4NOenQlgPS3TXm/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"bunny.net Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#EF6126\">\u003clink data-mint-head rel=\"canonical\" href=\"https://bunny.net/docs/stream/players/widevine\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/stream/players/widevine.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://bunny.net/#organization\",\"name\":\"bunny.net Documentation\",\"url\":\"https://bunny.net\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/bunnynet-cb9733c2/54-4KCQKoNVNuoyW/logo/bunny-logo-dark.svg?fit=max\u0026auto=format\u0026n=54-4KCQKoNVNuoyW\u0026q=85\u0026s=62c091ea1aaea93d0a981902b7783e37\"}},{\"@type\":\"WebSite\",\"@id\":\"https://bunny.net/docs#website\",\"name\":\"bunny.net Documentation\",\"url\":\"https://bunny.net/docs\",\"publisher\":{\"@id\":\"https://bunny.net/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://bunny.net/docs/stream/players/widevine#webpage\",\"url\":\"https://bunny.net/docs/stream/players/widevine\",\"name\":\"Widevine HTML5 integration\",\"description\":\"This guide provides step-by-step instructions on integrating Widevine with HTML5 video players. Widevine ensures secure playback and decryption of encrypted videos through the configuration of license server URLs.\",\"dateModified\":\"2026-08-06T07:38:48.000Z\",\"isPartOf\":{\"@id\":\"https://bunny.net/docs#website\"},\"breadcrumb\":{\"@id\":\"https://bunny.net/docs/stream/players/widevine#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://bunny.net/docs/stream/players/widevine#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Playback\",\"item\":\"https://bunny.net/docs/stream/player\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"3rd Party Players\",\"item\":\"https://bunny.net/docs/stream/players/index\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Widevine HTML5 integration\",\"item\":\"https://bunny.net/docs/stream/players/widevine\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://bunny.net/docs/stream/players/widevine#article\",\"headline\":\"Widevine HTML5 integration\",\"name\":\"Widevine HTML5 integration\",\"description\":\"This guide provides step-by-step instructions on integrating Widevine with HTML5 video players. Widevine ensures secure playback and decryption of encrypted videos through the configuration of license server URLs.\",\"url\":\"https://bunny.net/docs/stream/players/widevine\",\"mainEntityOfPage\":{\"@id\":\"https://bunny.net/docs/stream/players/widevine#webpage\"},\"dateModified\":\"2026-08-06T07:38:48.000Z\",\"publisher\":{\"@id\":\"https://bunny.net/#organization\"},\"isPartOf\":{\"@id\":\"https://bunny.net/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"bunny.net Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"bunny.net Documentation","nav":{"global":null,"products":[{"product":"Home","icon":"book-open","pages":[{"title":"Home","href":""}]},{"product":"CDN","icon":"zap","description":"Accelerate and protect your content globally","pages":[{"title":"CDN","href":"/cdn"}]},{"product":"Magic Containers","icon":"box","description":"Deploy any app anywhere with Docker","pages":[{"title":"Magic Containers","href":"/magic-containers"}]},{"product":"Edge Scripting","icon":"code","description":"Deploy serverless code at the edge","pages":[{"title":"Edge Scripting","href":"/scripting"}]},{"product":"Stream","icon":"video","description":"Video streaming and delivery platform","tabs":[{"tab":"Documentation","groups":[{"group":"Documentation","pages":[{"title":"Bunny Stream","sidebarTitle":"Introduction","mode":"wide","href":"/stream"},{"title":"Quickstart","href":"/stream/quickstart"},{"title":"Authentication","href":"/stream/authentication"},{"title":"Pricing","href":"/stream/pricing"},{"title":"Bunny Stream Changelog","sidebarTitle":"Changelog","url":"/changelog?tags=Stream","href":"/stream/changelog"}]},{"group":"Features","pages":[{"group":"Encoding","pages":[{"title":"Free Encoding","sidebarTitle":"Free Encoding","href":"/stream/encoding"},{"title":"Adaptive bitrate streaming","href":"/stream/adaptive-bitrate"},{"title":"Multi-audio","href":"/stream/multi-audio"}]},{"title":"Premium Encoding","href":"/stream/premium-encoding"},{"title":"Transcribing","href":"/stream/transcribing"},{"title":"Smart Generate","href":"/stream/smart-generate"},{"group":"MediaCage DRM","pages":[{"title":"MediaCage DRM","sidebarTitle":"Overview","href":"/stream/drm/index"},{"title":"Quickstart MediaCage Basic DRM","href":"/stream/quickstart-mediacage-basic"},{"title":"Quickstart MediaCage Enterprise DRM","href":"/stream/quickstart-mediacage-enterprise"},{"group":"Basic DRM","pages":[{"title":"MediaCage Basic DRM","href":"/stream/mediacage-basic"},{"title":"Understanding MediaCage basic DRM","href":"/stream/mediacage-basic-guide"}]},{"group":"Enterprise DRM","pages":[{"title":"MediaCage Enterprise DRM","href":"/stream/mediacage-enterprise"},{"title":"Google Widevine DRM","href":"/stream/widevine-security-levels"},{"title":"Google Widevine DRM SD only for L3","href":"/stream/widevine-l3"},{"title":"Apple FairPlay Streaming","href":"/stream/fairplay-deployment"}]}]},{"title":"Advertising VAST","href":"/stream/vast"},{"title":"Delivery Tiers","href":"/stream/delivery-tiers"},{"title":"Replication","href":"/stream/replication"},{"group":"Security","pages":[{"title":"Security","sidebarTitle":"Overview","href":"/stream/security"},{"title":"Understanding Bunny Stream security options","sidebarTitle":"Security Options","href":"/stream/security-options"},{"title":"Embedded view token authentication","sidebarTitle":"Token Authentication","href":"/stream/token-authentication"}]},{"title":"Statistics","href":"/stream/statistics"},{"title":"Webhooks","href":"/stream/webhooks"}]},{"group":"Manage Videos","pages":[{"group":"Upload","pages":[{"title":"Dashboard","href":"/stream/dashboard"},{"title":"HTTP","href":"/stream/http-api"},{"title":"URL Fetch","href":"/stream/url-fetch"},{"title":"TUS Resumable Uploads","href":"/stream/tus-resumable-uploads"},{"group":"Frameworks","pages":[{"title":"Upload videos to Bunny Stream from Laravel","sidebarTitle":"Laravel","href":"/stream/upload/laravel"},{"title":"Upload videos to Bunny Stream from Rails","sidebarTitle":"Rails","href":"/stream/upload/rails"},{"title":"Upload videos to Bunny Stream from Django","sidebarTitle":"Django","href":"/stream/upload/django"}]}]},{"title":"Collections","href":"/stream/collections"},{"title":"Tagging","href":"/stream/tagging"},{"title":"MetaTags","href":"/stream/metatags"},{"title":"Storage Structure","href":"/stream/storage-structure"}]},{"group":"Playback","pages":[{"title":"Bunny Player","sidebarTitle":"Bunny Player","href":"/stream/player"},{"title":"Overview","sidebarTitle":"Player settings","href":"/stream/player-settings"},{"title":"Embedding videos","href":"/stream/embedding"},{"title":"Playback control API","href":"/stream/playback-api"},{"title":"MP4 Fallback","href":"/stream/mp4-downloads"},{"group":"Frameworks","pages":[{"title":"Use Bunny Player with React","sidebarTitle":"React","href":"/stream/player/react"},{"title":"Use Bunny Player with Next.js","sidebarTitle":"Next.js","href":"/stream/player/nextjs"},{"title":"Use Bunny Player with Vue and Nuxt","sidebarTitle":"Vue and Nuxt","href":"/stream/player/vue"},{"title":"Use Bunny Player with Svelte and SvelteKit","sidebarTitle":"Svelte and SvelteKit","href":"/stream/player/svelte"},{"title":"Use Bunny Player with Astro","sidebarTitle":"Astro","href":"/stream/player/astro"},{"title":"Use Bunny Player with JavaScript","sidebarTitle":"JavaScript","href":"/stream/player/javascript"},{"title":"Sign Bunny Player embed URLs on the server","sidebarTitle":"Signed embed URLs","href":"/stream/player/signed-embeds"}]},{"group":"Mobile SDKs","tag":"New","expanded":true,"pages":[{"title":"Overview","sidebarTitle":"Overview","href":"/stream/mobile-sdk"},{"title":"Token authentication with Mobile SDKs","sidebarTitle":"Mobile SDK Token Authentication","href":"/stream/mobile-sdk-token-authentication"},{"title":"Expo Video guide","href":"/stream/expo-video"},{"title":"Android SDK","tag":"Kotlin","href":"/stream/android-sdk"},{"title":"iOS SDK","tag":"Swift","href":"/stream/ios-sdk"},{"title":"React Native SDK","tag":"Typescript","sidebarTitle":"React Native SDK","href":"/stream/react-native-sdk"}]},{"group":"3rd Party Players","pages":[{"title":"Introduction","href":"/stream/players/index"},{"title":"Bitmovin player integration","href":"/stream/players/bitmovin"},{"title":"Shaka Player integration","description":"This guide will help you integrate Shaka Player with bunny.net to stream video content. Shaka Player is a free, open-source media player that plays adaptive media formats such as DASH and HLS. bunny.net is a content delivery network (CDN) service that provides fast and secure video delivery.","href":"/stream/players/shaka"},{"title":"Widevine HTML5 integration","href":"/stream/players/widevine"},{"title":"Fairplay HTML5 player integration","description":"This documentation will guide you through the integration of the FairPlay DRM solution into your web application, ensuring secure and compliant playback of DRM-encrypted content.","href":"/stream/players/fairplay"}]},{"title":"Custom head HTML migration guide","href":"/stream/custom-head-html-migration-guide"}]},{"group":"Reference","pages":[{"title":"Video Specification","href":"/stream/video-specification"},{"title":"Vimeo2Bunny CLI","href":"/stream/vimeo2bunny"},{"title":"Data and Privacy","href":"/stream/data-and-privacy"},{"title":"API Reference","url":"/api-reference/stream","href":"/stream/api-reference"}]}]}]},{"product":"Storage","icon":"hard-drive","description":"Global object storage","pages":[{"title":"Storage","href":"/storage"}]},{"product":"Shield","icon":"shield","description":"Stay protected and online no matter what","pages":[{"title":"Shield","href":"/shield"}]},{"product":"Optimizer","icon":"sparkles","description":"Automatic image and web optimization.","pages":[{"title":"Optimizer","href":"/optimizer"}]},{"product":"DNS","icon":"globe","description":"Unlock the true power of DNS with an ultra-fast scriptable platform","pages":[{"title":"DNS","href":"/dns"}]},{"product":"Database","icon":"database","description":"Serverless SQLite over HTTP","pages":[{"title":"Database","href":"/database"}]},{"product":"Integrations","icon":"puzzle","description":"Official and third-party plugins and integrations","pages":[{"title":"Integrations","href":"/integrations/wordpress"}]},{"product":"CLI","icon":"terminal","description":"Manage bunny.net from your terminal","pages":[{"title":"CLI","href":"/cli"}]},{"product":"API Reference","icon":"square-terminal","description":"Build \u0026 Integrate with the Platform API","pages":[{"title":"API Reference","href":"/api-reference"}]},{"product":"Partners","icon":"handshake","description":"Manage customers, pricing, and billing as a bunny.net partner","pages":[{"title":"Partners","href":"/partners"}]}]},"basePath":"","title":"Widevine HTML5 integration - bunny.net Documentation","buildId":"dpl_4RHMRqtvdHvKgaEfTTjFqjzja3B6","deploymentId":"dpl_4RHMRqtvdHvKgaEfTTjFqjzja3B6","dynamics":["a74be98ba7"],"chunks":["zoom-image-lightbox-CZTaVDTN.js","lightbox-handle-r17bVUz3.js"]}