[{"data":1,"prerenderedAt":808},["ShallowReactive",2],{"navigation_docs_en":3,"-en-settings-integrations-drm-workflow":408,"-en-settings-integrations-drm-workflow-surround":803},[4,25,74,124,238,253,313,342,388],{"title":5,"path":6,"stem":7,"children":8,"page":24},"Getting Started","\u002Fen\u002Fgetting-started","en\u002F1.getting-started",[9,14,19],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","\u002Fen\u002Fgetting-started\u002Fintroduction","en\u002F1.getting-started\u002F1.introduction","i-lucide-house",{"title":15,"path":16,"stem":17,"icon":18},"Quickstart","\u002Fen\u002Fgetting-started\u002Fquickstart","en\u002F1.getting-started\u002F2.quickstart","i-lucide-rocket",{"title":20,"path":21,"stem":22,"icon":23},"Concepts","\u002Fen\u002Fgetting-started\u002Fconcepts","en\u002F1.getting-started\u002F3.concepts","i-lucide-book-open",false,{"title":26,"path":27,"stem":28,"children":29,"page":24},"Live Production","\u002Fen\u002Flive-production","en\u002F2.live-production",[30,35,55,60],{"title":31,"path":32,"stem":33,"icon":34},"On air","\u002Fen\u002Flive-production\u002Fon-air","en\u002F2.live-production\u002F1.on-air","i-lucide-radio",{"title":36,"path":37,"stem":38,"children":39,"page":24},"Live Streams","\u002Fen\u002Flive-production\u002Flive-streams","en\u002F2.live-production\u002F2.live-streams",[40,45,50],{"title":41,"path":42,"stem":43,"icon":44},"Overview","\u002Fen\u002Flive-production\u002Flive-streams\u002Foverview","en\u002F2.live-production\u002F2.live-streams\u002F1.overview","i-lucide-list",{"title":46,"path":47,"stem":48,"icon":49},"Options","\u002Fen\u002Flive-production\u002Flive-streams\u002Flive-stream-options","en\u002F2.live-production\u002F2.live-streams\u002F2.live-stream-options","i-lucide-file-text",{"title":51,"path":52,"stem":53,"icon":54},"Start and stop","\u002Fen\u002Flive-production\u002Flive-streams\u002Fstart-stop","en\u002F2.live-production\u002F2.live-streams\u002F3.start-stop","i-lucide-play-circle",{"title":56,"path":57,"stem":58,"icon":59},"Scheduler","\u002Fen\u002Flive-production\u002Fscheduler","en\u002F2.live-production\u002F3.scheduler","i-lucide-calendar-clock",{"title":61,"path":62,"stem":63,"children":64,"page":24},"Recordings","\u002Fen\u002Flive-production\u002Frecordings","en\u002F2.live-production\u002F4.recordings",[65,69],{"title":41,"path":66,"stem":67,"icon":68},"\u002Fen\u002Flive-production\u002Frecordings\u002Foverview","en\u002F2.live-production\u002F4.recordings\u002F1.overview","i-lucide-circle-dot",{"title":70,"path":71,"stem":72,"icon":73},"Editor","\u002Fen\u002Flive-production\u002Frecordings\u002Feditor","en\u002F2.live-production\u002F4.recordings\u002F2.editor","i-lucide-scissors",{"title":75,"path":76,"stem":77,"children":78,"page":24},"Configuration","\u002Fen\u002Fconfiguration","en\u002F3.configuration",[79,93,98,111],{"title":80,"path":81,"stem":82,"children":83,"page":24},"Devices","\u002Fen\u002Fconfiguration\u002Fdevices","en\u002F3.configuration\u002F1.devices",[84,88],{"title":80,"path":85,"stem":86,"icon":87},"\u002Fen\u002Fconfiguration\u002Fdevices\u002Fdevices","en\u002F3.configuration\u002F1.devices\u002F1.devices","i-lucide-server",{"title":89,"path":90,"stem":91,"icon":92},"Groups","\u002Fen\u002Fconfiguration\u002Fdevices\u002Fgroups","en\u002F3.configuration\u002F1.devices\u002F2.groups","i-lucide-network",{"title":94,"path":95,"stem":96,"icon":97},"Sources","\u002Fen\u002Fconfiguration\u002Fsources","en\u002F3.configuration\u002F2.sources","i-lucide-cable",{"title":99,"path":100,"stem":101,"children":102,"page":24},"Encodings","\u002Fen\u002Fconfiguration\u002Fencodings","en\u002F3.configuration\u002F3.encodings",[103,107],{"title":99,"path":104,"stem":105,"icon":106},"\u002Fen\u002Fconfiguration\u002Fencodings\u002Fprofiles","en\u002F3.configuration\u002F3.encodings\u002F1.profiles","i-lucide-sliders-horizontal",{"title":89,"path":108,"stem":109,"icon":110},"\u002Fen\u002Fconfiguration\u002Fencodings\u002Fgroups","en\u002F3.configuration\u002F3.encodings\u002F2.groups","i-lucide-layers",{"title":112,"path":113,"stem":114,"children":115,"page":24},"Destinations","\u002Fen\u002Fconfiguration\u002Fdestinations","en\u002F3.configuration\u002F4.destinations",[116,120],{"title":112,"path":117,"stem":118,"icon":119},"\u002Fen\u002Fconfiguration\u002Fdestinations\u002Fdestinations","en\u002F3.configuration\u002F4.destinations\u002F1.destinations","i-lucide-send",{"title":89,"path":121,"stem":122,"icon":123},"\u002Fen\u002Fconfiguration\u002Fdestinations\u002Fpublishing-groups","en\u002F3.configuration\u002F4.destinations\u002F2.publishing-groups","i-lucide-share-2",{"title":125,"path":126,"stem":127,"children":128,"page":24},"Settings","\u002Fen\u002Fsettings","en\u002F4.settings",[129,142,147,163,179],{"title":130,"path":131,"stem":132,"children":133,"page":24},"Users","\u002Fen\u002Fsettings\u002Fusers","en\u002F4.settings\u002F1.users",[134,138],{"title":130,"path":135,"stem":136,"icon":137},"\u002Fen\u002Fsettings\u002Fusers\u002Fusers","en\u002F4.settings\u002F1.users\u002F1.users","i-lucide-user",{"title":89,"path":139,"stem":140,"icon":141},"\u002Fen\u002Fsettings\u002Fusers\u002Fuser-groups","en\u002F4.settings\u002F1.users\u002F2.user-groups","i-lucide-users",{"title":143,"path":144,"stem":145,"icon":146},"Security","\u002Fen\u002Fsettings\u002Fsecurity","en\u002F4.settings\u002F2.security","i-lucide-shield",{"title":148,"icon":149,"path":150,"stem":151,"children":152,"page":24},"Assets","i-lucide-image","\u002Fen\u002Fsettings\u002Fassets","en\u002F4.settings\u002F3.assets",[153,158],{"title":154,"path":155,"stem":156,"icon":157},"Logos","\u002Fen\u002Fsettings\u002Fassets\u002Flogos","en\u002F4.settings\u002F3.assets\u002F1.logos","i-lucide-images",{"title":159,"path":160,"stem":161,"icon":162},"Files","\u002Fen\u002Fsettings\u002Fassets\u002Ffiles","en\u002F4.settings\u002F3.assets\u002F2.files","i-lucide-clapperboard",{"title":164,"icon":165,"path":166,"stem":167,"children":168,"page":24},"External Storage","i-lucide-folder-cog","\u002Fen\u002Fsettings\u002Fexternal-storage","en\u002F4.settings\u002F4.external-storage",[169,174],{"title":170,"path":171,"stem":172,"icon":173},"Remote Folders","\u002Fen\u002Fsettings\u002Fexternal-storage\u002Fremote-folders","en\u002F4.settings\u002F4.external-storage\u002F1.remote-folders","i-lucide-folder-archive",{"title":175,"path":176,"stem":177,"icon":178},"Target Folders","\u002Fen\u002Fsettings\u002Fexternal-storage\u002Ftarget-folders","en\u002F4.settings\u002F4.external-storage\u002F2.target-folders","i-lucide-folder-up",{"title":180,"path":181,"stem":182,"children":183,"page":24},"Integrations","\u002Fen\u002Fsettings\u002Fintegrations","en\u002F4.settings\u002F5.integrations",[184,188,193,207],{"title":41,"path":185,"stem":186,"icon":187},"\u002Fen\u002Fsettings\u002Fintegrations\u002Foverview","en\u002F4.settings\u002F5.integrations\u002F1.overview","i-lucide-plug",{"title":189,"path":190,"stem":191,"icon":192},"MediaCopilot","\u002Fen\u002Fsettings\u002Fintegrations\u002Fmediacopilot","en\u002F4.settings\u002F5.integrations\u002F2.mediacopilot","i-lucide-sparkles",{"title":194,"icon":195,"path":196,"stem":197,"children":198,"page":24},"C21 Live Cloud","i-lucide-cloud","\u002Fen\u002Fsettings\u002Fintegrations\u002Fc21livecloud","en\u002F4.settings\u002F5.integrations\u002F3.c21livecloud",[199,202],{"title":41,"path":200,"stem":201,"icon":195},"\u002Fen\u002Fsettings\u002Fintegrations\u002Fc21livecloud\u002Foverview","en\u002F4.settings\u002F5.integrations\u002F3.c21livecloud\u002F1.overview",{"title":203,"path":204,"stem":205,"icon":206},"Accounts","\u002Fen\u002Fsettings\u002Fintegrations\u002Fc21livecloud\u002Faccounts","en\u002F4.settings\u002F5.integrations\u002F3.c21livecloud\u002F2.accounts","i-lucide-key-round",{"title":208,"icon":146,"path":209,"stem":210,"children":211,"page":24},"DRM Providers","\u002Fen\u002Fsettings\u002Fintegrations\u002Fdrm","en\u002F4.settings\u002F5.integrations\u002F4.drm",[212,216,220,224,228,233],{"title":41,"path":213,"stem":214,"icon":215},"\u002Fen\u002Fsettings\u002Fintegrations\u002Fdrm\u002Foverview","en\u002F4.settings\u002F5.integrations\u002F4.drm\u002F1.overview","i-lucide-shield-check",{"title":217,"path":218,"stem":219,"icon":146},"Widevine","\u002Fen\u002Fsettings\u002Fintegrations\u002Fdrm\u002Fwidevine","en\u002F4.settings\u002F5.integrations\u002F4.drm\u002F2.widevine",{"title":221,"path":222,"stem":223,"icon":146},"PlayReady","\u002Fen\u002Fsettings\u002Fintegrations\u002Fdrm\u002Fplayready","en\u002F4.settings\u002F5.integrations\u002F4.drm\u002F3.playready",{"title":225,"path":226,"stem":227,"icon":146},"FairPlay","\u002Fen\u002Fsettings\u002Fintegrations\u002Fdrm\u002Ffairplay","en\u002F4.settings\u002F5.integrations\u002F4.drm\u002F4.fairplay",{"title":229,"path":230,"stem":231,"icon":232},"Providers","\u002Fen\u002Fsettings\u002Fintegrations\u002Fdrm\u002Fproviders","en\u002F4.settings\u002F5.integrations\u002F4.drm\u002F5.providers","i-lucide-shield-half",{"title":234,"path":235,"stem":236,"icon":237},"Workflow","\u002Fen\u002Fsettings\u002Fintegrations\u002Fdrm\u002Fworkflow","en\u002F4.settings\u002F5.integrations\u002F4.drm\u002F6.workflow","i-lucide-workflow",{"title":239,"path":240,"stem":241,"children":242,"page":24},"System Status","\u002Fen\u002Fsystem-status","en\u002F5.system-status",[243,248],{"title":244,"path":245,"stem":246,"icon":247},"Commands","\u002Fen\u002Fsystem-status\u002Fcommands","en\u002F5.system-status\u002F1.commands","i-lucide-square-terminal",{"title":249,"path":250,"stem":251,"icon":252},"Logs","\u002Fen\u002Fsystem-status\u002Flogs","en\u002F5.system-status\u002F2.logs","i-lucide-scroll-text",{"title":254,"path":255,"stem":256,"children":257,"page":24},"How Tos","\u002Fen\u002Fhow-tos","en\u002F6.how-tos",[258,263,268,273,277,281,285,290,294,299,304,309],{"title":259,"path":260,"stem":261,"icon":262},"Start and stop a Live stream","\u002Fen\u002Fhow-tos\u002Fstart-stream-via-api","en\u002F6.how-tos\u002F1.start-stream-via-api","i-lucide-terminal",{"title":264,"path":265,"stem":266,"icon":267},"Ingest a YouTube Live broadcast","\u002Fen\u002Fhow-tos\u002Fingest-youtube-live","en\u002F6.how-tos\u002F10.ingest-youtube-live","i-lucide-youtube",{"title":269,"path":270,"stem":271,"icon":272},"Source Synchronized Encoding (SSE) — bit-identical redundancy","\u002Fen\u002Fhow-tos\u002Fsource-synchronized-encoding","en\u002F6.how-tos\u002F11.source-synchronized-encoding","i-lucide-copy-check",{"title":274,"path":275,"stem":276,"icon":34},"Broadcast radio as video","\u002Fen\u002Fhow-tos\u002Fbroadcast-radio-as-video","en\u002F6.how-tos\u002F12.broadcast-radio-as-video",{"title":278,"path":279,"stem":280,"icon":215},"Protect a Live stream with multi-DRM","\u002Fen\u002Fhow-tos\u002Fmulti-drm-destination","en\u002F6.how-tos\u002F2.multi-drm-destination",{"title":282,"path":283,"stem":284,"icon":59},"Schedule a weekly recurring broadcast","\u002Fen\u002Fhow-tos\u002Fweekly-recurring-broadcast","en\u002F6.how-tos\u002F3.weekly-recurring-broadcast",{"title":286,"path":287,"stem":288,"icon":289},"Cut a clip in the Editor and send it to MediaCopilot","\u002Fen\u002Fhow-tos\u002Fexport-recording-to-mediacopilot","en\u002F6.how-tos\u002F4.export-recording-to-mediacopilot","i-lucide-upload-cloud",{"title":291,"path":292,"stem":293,"icon":149},"Apply a logo overlay to a running Live stream","\u002Fen\u002Fhow-tos\u002Fapply-logo-overlay","en\u002F6.how-tos\u002F5.apply-logo-overlay",{"title":295,"path":296,"stem":297,"icon":298},"Black out or replace the program on a running Live stream","\u002Fen\u002Fhow-tos\u002Fbroadcast-blackout","en\u002F6.how-tos\u002F6.broadcast-blackout","i-lucide-square",{"title":300,"path":301,"stem":302,"icon":303},"Switch the source of a running Live stream","\u002Fen\u002Fhow-tos\u002Fruntime-source-switch","en\u002F6.how-tos\u002F7.runtime-source-switch","i-lucide-repeat-2",{"title":305,"path":306,"stem":307,"icon":308},"Toggle a Publishing mid-broadcast","\u002Fen\u002Fhow-tos\u002Ftoggle-publishing-mid-broadcast","en\u002F6.how-tos\u002F8.toggle-publishing-mid-broadcast","i-lucide-toggle-right",{"title":310,"path":311,"stem":312,"icon":34},"Contribute a live signal to MediaCopilot Live","\u002Fen\u002Fhow-tos\u002Fcontribute-to-mediacopilot-live","en\u002F6.how-tos\u002F9.contribute-to-mediacopilot-live",{"title":314,"path":315,"stem":316,"children":317,"page":24},"Installation","\u002Fen\u002Finstallation","en\u002F7.installation",[318,323,328,333,338],{"title":319,"path":320,"stem":321,"icon":322},"Prepare the host","\u002Fen\u002Finstallation\u002Fprepare-host","en\u002F7.installation\u002F1.prepare-host","i-lucide-server-cog",{"title":324,"path":325,"stem":326,"icon":327},"Install C21 Live Control","\u002Fen\u002Finstallation\u002Fcontrol","en\u002F7.installation\u002F2.control","i-lucide-cloud-download",{"title":329,"path":330,"stem":331,"icon":332},"Install C21 Live Encoder","\u002Fen\u002Finstallation\u002Fencoder","en\u002F7.installation\u002F3.encoder","i-lucide-cpu",{"title":334,"path":335,"stem":336,"icon":337},"Updates","\u002Fen\u002Finstallation\u002Fupdates","en\u002F7.installation\u002F4.updates","i-lucide-refresh-cw",{"title":339,"path":340,"stem":341,"icon":206},"Licenses","\u002Fen\u002Finstallation\u002Flicenses","en\u002F7.installation\u002F5.licenses",{"title":343,"path":344,"stem":345,"children":346,"page":24},"Developers","\u002Fen\u002Fdevelopers","en\u002F8.developers",[347,351,369],{"title":41,"path":348,"stem":349,"icon":350},"\u002Fen\u002Fdevelopers\u002Foverview","en\u002F8.developers\u002F1.overview","i-lucide-code",{"title":352,"icon":350,"path":353,"stem":354,"children":355,"page":24},"API","\u002Fen\u002Fdevelopers\u002Fapi","en\u002F8.developers\u002F2.api",[356,359,364],{"title":41,"path":357,"stem":358,"icon":350},"\u002Fen\u002Fdevelopers\u002Fapi\u002Foverview","en\u002F8.developers\u002F2.api\u002F1.overview",{"title":360,"path":361,"stem":362,"icon":363},"Authentication","\u002Fen\u002Fdevelopers\u002Fapi\u002Fauthentication","en\u002F8.developers\u002F2.api\u002F2.authentication","i-lucide-key",{"title":365,"path":366,"stem":367,"icon":368},"Pagination and Errors","\u002Fen\u002Fdevelopers\u002Fapi\u002Fpagination-errors","en\u002F8.developers\u002F2.api\u002F3.pagination-errors","i-lucide-list-ordered",{"title":370,"icon":371,"path":372,"stem":373,"children":374,"page":24},"MCP Server","i-lucide-bot","\u002Fen\u002Fdevelopers\u002Fmcp-server","en\u002F8.developers\u002F3.mcp-server",[375,378,383],{"title":41,"path":376,"stem":377,"icon":371},"\u002Fen\u002Fdevelopers\u002Fmcp-server\u002Foverview","en\u002F8.developers\u002F3.mcp-server\u002F1.overview",{"title":379,"path":380,"stem":381,"icon":382},"Tools","\u002Fen\u002Fdevelopers\u002Fmcp-server\u002Ftools","en\u002F8.developers\u002F3.mcp-server\u002F2.tools","i-lucide-wrench",{"title":384,"path":385,"stem":386,"icon":387},"Examples","\u002Fen\u002Fdevelopers\u002Fmcp-server\u002Fexamples","en\u002F8.developers\u002F3.mcp-server\u002F3.examples","i-lucide-play",{"title":389,"path":390,"stem":391,"children":392,"page":24},"Resources","\u002Fen\u002Fresources","en\u002F9.resources",[393,398,403],{"title":394,"path":395,"stem":396,"icon":397},"Links","\u002Fen\u002Fresources\u002Flinks","en\u002F9.resources\u002F1.links","i-lucide-link",{"title":399,"path":400,"stem":401,"icon":402},"Release Notes","\u002Fen\u002Fresources\u002Frelease-notes","en\u002F9.resources\u002F2.release-notes","i-lucide-clipboard-list",{"title":404,"path":405,"stem":406,"icon":407},"Glossary","\u002Fen\u002Fresources\u002Fglossary","en\u002F9.resources\u002F3.glossary","i-lucide-book-a",{"id":409,"title":234,"body":410,"description":796,"extension":797,"links":798,"meta":799,"navigation":800,"path":235,"seo":801,"stem":236,"__hash__":802},"docs_en\u002Fen\u002F4.settings\u002F5.integrations\u002F4.drm\u002F6.workflow.md",{"type":411,"value":412,"toc":785},"minimark",[413,417,436,441,454,500,507,511,545,549,567,662,669,699,702,706,713,717,720,737,740,744,765,769,778],[414,415,416],"p",{},"This page walks the operator-facing DRM workflow end to end:",[418,419,420,424,427,430,433],"ol",{},[421,422,423],"li",{},"Register a DRM provider (the credentials catalogue entry).",[421,425,426],{},"Validate the provider against the upstream SPEKE service.",[421,428,429],{},"Attach the provider to a Destination.",[421,431,432],{},"Bind the Destination to a Live stream and start the broadcast.",[421,434,435],{},"Verify playback on each target ecosystem.",[437,438,440],"h2",{"id":439},"step-1-register-a-drm-provider","Step 1 — Register a DRM provider",[414,442,443,444,448,449,453],{},"Open ",[445,446,447],"strong",{},"Integrations → DRM → Providers"," and choose ",[450,451,452],"em",{},"Add provider",". Fill in:",[455,456,457,463,478,484,494],"ul",{},[421,458,459,462],{},[445,460,461],{},"Name"," — display name.",[421,464,465,468,469,473,474,477],{},[445,466,467],{},"Provider type"," — ",[470,471,472],"code",{},"AXINOM",", ",[470,475,476],{},"EZDRM"," (today's catalogue).",[421,479,480,483],{},[445,481,482],{},"SPEKE URL"," — primary SPEKE endpoint.",[421,485,486,489,490,493],{},[445,487,488],{},"Tenant ID"," — required by brands that declare ",[470,491,492],{},"requires_tenant_id = true"," (for example AXINOM).",[421,495,496,499],{},[445,497,498],{},"Credentials"," — provider-type-specific envelope.",[414,501,502,503,506],{},"See ",[504,505,229],"a",{"href":230}," for the field-by-field reference.",[437,508,510],{"id":509},"step-2-validate-the-provider","Step 2 — Validate the provider",[414,512,513,514,517,518,521,522,525,526,529,530,529,533,536,537,540,541,544],{},"Run ",[445,515,516],{},"Validate"," (calls ",[470,519,520],{},"validateDrmProvider","). The handler round-trips the stored credentials against the upstream SPEKE service and updates ",[470,523,524],{},"validation_status"," (",[470,527,528],{},"UNKNOWN"," \u002F ",[470,531,532],{},"VALID",[470,534,535],{},"INVALID","). A failed validation surfaces a sanitised error in ",[470,538,539],{},"validation_error"," — fix the credentials with ",[445,542,543],{},"Edit"," and re-validate.",[437,546,548],{"id":547},"step-3-attach-the-provider-to-a-destination","Step 3 — Attach the provider to a Destination",[414,550,551,552,473,555,558,559,562,563,566],{},"Open the Destination that should carry DRM (",[470,553,554],{},"DASH",[470,556,557],{},"CMAF"," or ",[470,560,561],{},"HLS \u002F TS",") and fill its ",[470,564,565],{},"drm"," block:",[568,569,570,583],"table",{},[571,572,573],"thead",{},[574,575,576,580],"tr",{},[577,578,579],"th",{},"Field",[577,581,582],{},"Value",[584,585,586,599,609,619,639],"tbody",{},[574,587,588,594],{},[589,590,591],"td",{},[470,592,593],{},"active",[589,595,596],{},[470,597,598],{},"true",[574,600,601,606],{},[589,602,603],{},[470,604,605],{},"provider_id",[589,607,608],{},"The id of the validated provider.",[574,610,611,616],{},[589,612,613],{},[470,614,615],{},"contentid",[589,617,618],{},"The content identifier the upstream vendor expects on key requests.",[574,620,621,626],{},[589,622,623],{},[470,624,625],{},"systems",[589,627,628,629,473,631,473,633,635,636,638],{},"Subset of ",[470,630,217],{},[470,632,221],{},[470,634,225],{},". ",[470,637,225],{}," cannot be combined with the others on the same Destination — use separate Destinations instead.",[574,640,641,646],{},[589,642,643],{},[470,644,645],{},"encryption_mode",[589,647,648,649,652,653,655,656,473,658,661],{},"Server-derived: ",[470,650,651],{},"cbcs"," when ",[470,654,625],{}," includes ",[470,657,225],{},[470,659,660],{},"cenc"," otherwise. Optional in the request body — the server recomputes the value either way.",[414,663,664,665,668],{},"A Destination without ",[470,666,667],{},"drm.active"," publishes clear. Different Destinations inside the same Destination group can carry different DRM blocks — common pattern for universal coverage:",[455,670,671,686],{},[421,672,673,674,677,678,681,682,685],{},"A ",[445,675,676],{},"DASH \u002F CMAF"," Destination with ",[470,679,680],{},"systems = [\"Widevine\", \"PlayReady\"]"," (server sets ",[470,683,684],{},"encryption_mode = cenc",") for Chrome \u002F Android \u002F Windows \u002F Edge.",[421,687,688,689,677,692,681,695,698],{},"A separate ",[445,690,691],{},"HLS \u002F CMAF",[470,693,694],{},"systems = [\"FairPlay\"]",[470,696,697],{},"encryption_mode = cbcs",") for Safari \u002F iOS \u002F macOS.",[414,700,701],{},"Bundle them in a Destination group to bind both to a Live stream through one reference.",[437,703,705],{"id":704},"step-4-bind-to-a-live-stream","Step 4 — Bind to a Live stream",[414,707,708,709,712],{},"Bind the Destination (or the Destination group containing it) to a Live stream from the ",[504,710,711],{"href":37},"Live streams editor"," and start the broadcast. The encoder requests keys from the configured SPEKE endpoint, encrypts the segments and writes the license URLs into the manifest.",[437,714,716],{"id":715},"step-5-verify-playback","Step 5 — Verify playback",[414,718,719],{},"Validate that each target ecosystem can play the protected output:",[455,721,722,727,732],{},[421,723,724,726],{},[445,725,217],{}," — Chrome or Edge on desktop, playing the DASH or CMAF manifest.",[421,728,729,731],{},[445,730,221],{}," — Edge on Windows, playing the DASH or CMAF manifest. Confirm the player negotiates PlayReady, not Widevine.",[421,733,734,736],{},[445,735,225],{}," — Safari on iOS or macOS, playing the HLS \u002F CMAF manifest.",[414,738,739],{},"The upstream provider's dashboard should log one license issuance per session per ecosystem.",[437,741,743],{"id":742},"related-surfaces","Related surfaces",[455,745,746,751,756],{},[421,747,748,750],{},[504,749,112],{"href":113}," — Where the DRM block lives on a Destination.",[421,752,753,755],{},[504,754,229],{"href":230}," — DRM provider CRUD reference.",[421,757,758,473,760,473,762,764],{},[504,759,217],{"href":218},[504,761,221],{"href":222},[504,763,225],{"href":226}," — Per-system notes.",[437,766,768],{"id":767},"faq","FAQ",[770,771,773,774,777],"collapsible",{"name":772},"Can I add DRM to an already-running Live stream?","No. The Live stream editor is locked while the broadcast is on air (the alert ",[450,775,776],{},"\"Live stream is running. Stop it to make changes.\""," surfaces). Stop the Live stream, attach DRM to the bound Destination, then start the Live stream again.",[770,779,781,782,784],{"name":780},"What if the provider's license server is unreachable mid-broadcast?","The Live stream itself does not stop. New sessions that need to acquire a license fail until the provider recovers; existing sessions keep playing under the licenses they already hold. Use ",[445,783,516],{}," on the provider to confirm connectivity has returned.",{"title":786,"searchDepth":787,"depth":787,"links":788},"",2,[789,790,791,792,793,794,795],{"id":439,"depth":787,"text":440},{"id":509,"depth":787,"text":510},{"id":547,"depth":787,"text":548},{"id":704,"depth":787,"text":705},{"id":715,"depth":787,"text":716},{"id":742,"depth":787,"text":743},{"id":767,"depth":787,"text":768},"End-to-end workflow for protecting a Live stream with DRM in C21 Live Control.","md",null,{},{"icon":237},{"title":234,"description":796},"PCeKft0FIJNvgGl7gzEz_Br6hkc2KhbF9rRZSNOOCuM",[804,806],{"title":229,"path":230,"stem":231,"description":805,"icon":232,"children":-1},"Register, validate and manage DRM providers in C21 Live Control.",{"title":244,"path":245,"stem":246,"description":807,"icon":247,"children":-1},"Run maintenance commands — version, licenses, system ID, software restart, database backup, license upload — on any Device this C21 Live Control instance manages.",1782916494969]