{"id":87239,"date":"2025-10-26T02:03:00","date_gmt":"2025-10-26T01:03:00","guid":{"rendered":"https:\/\/playdeck.tv\/?p=87239"},"modified":"2025-10-26T19:52:41","modified_gmt":"2025-10-26T18:52:41","slug":"playdeck-api","status":"publish","type":"post","link":"https:\/\/playdeck.tv\/en\/howto\/playdeck-api\/","title":{"rendered":"PLAYDECK API"},"content":{"rendered":"\n<p>The PLAYDECK API is a construct to allow anyone to interface with PLAYDECK. This article will show how to get started developing with the API:<\/p>\n\n\n\n<p>In this article:<br>\u2192 <a href=\"#introduction\" data-type=\"internal\" data-id=\"#install\">Introduction<\/a><br>\u2192 <a href=\"#examples\">Examples<\/a><br>\u2192 <a href=\"#implement\">Implement the API<\/a><br><\/p>\n\n\n<style>.wp-block-kadence-spacer.kt-block-spacer-87239_47e442-b1 .kt-block-spacer{height:60px;}.wp-block-kadence-spacer.kt-block-spacer-87239_47e442-b1 .kt-divider{border-top-width:1px;height:1px;border-top-color:#eee;width:100%;border-top-style:solid;}<\/style>\n<div class=\"wp-block-kadence-spacer aligncenter kt-block-spacer-87239_47e442-b1\" id=\"introduction\"><div class=\"kt-block-spacer kt-block-spacer-halign-center\"><hr class=\"kt-divider\"\/><\/div><\/div>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Introduction<\/strong><\/p>\n\n\n\n<p>The PLAYDECK API is bi-directional: You receive the Playout Status, but you can also send Commands to PLAYDECK.<\/p>\n\n\n\n<p>The API is based on WebSockets: They are a part of JavaScript, so you can develop in JavaScript, or NodeJS, or TypeScript. The WebSocket Port is fixed to 11411 and is always enabled in PLAYDECK.<\/p>\n\n\n\n<p><strong>We decided to go with WebSockets, because:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>It supports both directions: From and To PLAYDECK<\/li>\n\n\n\n<li>No Installation required: Use any Text-Editor<\/li>\n\n\n\n<li>No specific Network Security required<\/li>\n\n\n\n<li>Easy to build own User Interface or Animation with HTML<\/li>\n<\/ul>\n\n\n\n<p><br><strong>What can be send to PLAYDECK?<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>CUE or play Blocks or Clips, Overlays or Actions<\/li>\n\n\n\n<li>Start\/Stop video assets like Streams<\/li>\n<\/ul>\n\n\n\n<p><br><strong>What can be received from PLAYDECK?<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Events (e.g. a Block or Clip has started)<\/li>\n\n\n\n<li>Playout Status (e.g. What is playing and the remaining Block Time)<\/li>\n\n\n\n<li>Content (e.g. complete Playlist with Blocks and Clips)<\/li>\n<\/ul>\n\n\n\n<p class=\"has-medium-font-size\"><\/p>\n\n\n<style>.wp-block-kadence-spacer.kt-block-spacer-87239_a53f8c-61 .kt-block-spacer{height:60px;}.wp-block-kadence-spacer.kt-block-spacer-87239_a53f8c-61 .kt-divider{border-top-width:1px;height:1px;border-top-color:#eee;width:100%;border-top-style:solid;}<\/style>\n<div class=\"wp-block-kadence-spacer aligncenter kt-block-spacer-87239_a53f8c-61\" id=\"examples\"><div class=\"kt-block-spacer kt-block-spacer-halign-center\"><hr class=\"kt-divider\"\/><\/div><\/div>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Examples<\/strong><\/p>\n\n\n\n<p><strong>1) Companion <\/strong><\/p>\n\n\n\n<p>PLAYDECK API is being used by bitfocus Companion in the PLAYDECK module. This gives you a quick touch+feel about what the API is capable of:<br><a href=\"https:\/\/playdeck.tv\/howto\/companion\/\">https:\/\/playdeck.tv\/howto\/companion\/<\/a><\/p>\n\n\n\n<p><br><strong>2) Director View<\/strong><\/p>\n\n\n\n<p>The API is also used by the Director View, which is part of PLAYDECK. You can find the HTML Templates here:<br>c:\\Users\\Public\\Documents\\JoyEventMedia\\Playdeck\\HTML-Templates\\Director-View<\/p>\n\n\n\n<p><br><strong>3) HTML Overlays<\/strong><\/p>\n\n\n\n<p>The API is also used by some HTML Overview Examples, which you can find here:<br>c:\\Users\\Public\\Documents\\JoyEventMedia\\Playdeck\\HTML-Templates\\Overlay-Templates<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><\/p>\n\n\n<style>.wp-block-kadence-spacer.kt-block-spacer-87239_8bdea8-c0 .kt-block-spacer{height:60px;}.wp-block-kadence-spacer.kt-block-spacer-87239_8bdea8-c0 .kt-divider{border-top-width:1px;height:1px;border-top-color:#eee;width:100%;border-top-style:solid;}<\/style>\n<div class=\"wp-block-kadence-spacer aligncenter kt-block-spacer-87239_8bdea8-c0\" id=\"implement\"><div class=\"kt-block-spacer kt-block-spacer-halign-center\"><hr class=\"kt-divider\"\/><\/div><\/div>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Implement the API<\/strong><\/p>\n\n\n\n<p>We prepared some examples for you to quickly review a working script. Please check them in order, as they build up on each other. <\/p>\n\n\n\n<p><strong><em>Tip 1: <\/em><\/strong>You can double click any HTML File to open in the Browser to start the Script\/API<\/p>\n\n\n\n<p><strong><em>Tip 2:<\/em><\/strong> You can edit the File &#8220;WebSocketSDK\\Version.js&#8221; to change the IP Address<\/p>\n\n\n\n<p><br><strong>1) Native Connection (Without the API)<\/strong><\/p>\n\n\n\n<p>Let&#8217;s start with something very minimalistic:<br>c:\\Users\\Public\\Documents\\JoyEventMedia\\Playdeck\\HTML-Templates\\Automation-And-UI\\SampleMinimalistic.html<\/p>\n\n\n\n<p>This will open the WebSocket to PLAYDECK with native JavaScript Code and send a Command to PLAY the first Clip in the first Block.<\/p>\n\n\n\n<p>Another Example is this, where you can click Buttons in HTML to start Playout in PLAYDECK:<br>c:\\Users\\Public\\Documents\\JoyEventMedia\\Playdeck\\HTML-Templates\\Automation-And-UI\\SampleUserInterface.html<\/p>\n\n\n\n<p><br><strong>2) Minimalistic Connection (WITH API)<\/strong><\/p>\n\n\n\n<p>This example will introduce the API:<br>c:\\Users\\Public\\Documents\\JoyEventMedia\\Playdeck\\HTML-Templates\\Automation-And-UI\\SampleMinimalisticSDK.html<\/p>\n\n\n\n<p>It uses the Subfolder &#8220;WebSocketAPI&#8221; and includes its MAIN SCRIPT &#8220;AppInterface.js&#8221;, which is kind of the &#8220;Loader&#8221; for the whole API.<\/p>\n\n\n\n<p>The API will now take care of your WebSocket Connection to PLAYDECK, so you don&#8217;t have to code this manually. The API also exposes a Template Framework to JavaScript. The Template name is derived from the Filename, so it needs to match. There are several pre-defined functions available. For this example we only use &#8220;Start&#8221;: This function will be called by the API, once the WebSocket Connection to PLAYDECK has been established successfully. In this example it will PLAY the first Clip of Channel 1.<\/p>\n\n\n\n<p><br><strong>3) More Framework Functions<\/strong><\/p>\n\n\n\n<p>Besides &#8220;Start&#8221; there are many more Framework Functions available:<br>c:\\Users\\Public\\Documents\\JoyEventMedia\\Playdeck\\HTML-Templates\\Automation-And-UI\\SamplePlayRandomClip.html<\/p>\n\n\n\n<p>Please see the comments in the JS File for all available Functions.<\/p>\n\n\n\n<p>If you open the Browser Console (typically with F12) you can see the Feedback of the &#8220;console.log&#8221; instructions.<\/p>\n\n\n\n<p><br><strong>4) Parse Project Data<\/strong><\/p>\n\n\n\n<p>To access all Clips the function &#8220;DataProject&#8221; is available and this example show how to enumerate the Project Data:<br>c:\\Users\\Public\\Documents\\JoyEventMedia\\Playdeck\\HTML-Templates\\Automation-And-UI\\SampleShowPlaylist.html<\/p>\n\n\n\n<p><br><strong>5) Custom Schedule Sample<\/strong><\/p>\n\n\n\n<p>The last example shows a full working and complete Script for a Custom Scheduling outside of PLAYDECK:<br>c:\\Users\\Public\\Documents\\JoyEventMedia\\Playdeck\\HTML-Templates\\Automation-And-UI\\SampleWeeklySchedule.html<\/p>\n\n\n\n<p><br><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The PLAYDECK API is a construct to allow anyone to interface with PLAYDECK. This article will show how to get started developing with the API: In this article:\u2192 Introduction\u2192 Examples\u2192 Implement the API Introduction The PLAYDECK API is bi-directional: You &hellip; <a class=\"kt-excerpt-readmore more-link\" href=\"https:\/\/playdeck.tv\/en\/howto\/playdeck-api\/\" aria-label=\"PLAYDECK API\">Read More<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"kt_blocks_editor_width":"","_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","footnotes":""},"categories":[169],"tags":[],"class_list":["post-87239","post","type-post","status-publish","format-standard","hentry","category-howto"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>PLAYDECK API - PLAYDECK<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/playdeck.tv\/en\/howto\/playdeck-api\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PLAYDECK API - PLAYDECK\" \/>\n<meta property=\"og:description\" content=\"The PLAYDECK API is a construct to allow anyone to interface with PLAYDECK. This article will show how to get started developing with the API: In this article:\u2192 Introduction\u2192 Examples\u2192 Implement the API Introduction The PLAYDECK API is bi-directional: You &hellip; Read More\" \/>\n<meta property=\"og:url\" content=\"https:\/\/playdeck.tv\/en\/howto\/playdeck-api\/\" \/>\n<meta property=\"og:site_name\" content=\"PLAYDECK\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/playdecktv\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-26T01:03:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-26T18:52:41+00:00\" \/>\n<meta name=\"author\" content=\"WebAdmin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"WebAdmin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/playdeck.tv\\\/howto\\\/playdeck-api\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/playdeck.tv\\\/howto\\\/playdeck-api\\\/\"},\"author\":{\"name\":\"WebAdmin\",\"@id\":\"https:\\\/\\\/playdeck.tv\\\/#\\\/schema\\\/person\\\/63a673a3fa358907dfc2bc57cc23f5b8\"},\"headline\":\"PLAYDECK API\",\"datePublished\":\"2025-10-26T01:03:00+00:00\",\"dateModified\":\"2025-10-26T18:52:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/playdeck.tv\\\/howto\\\/playdeck-api\\\/\"},\"wordCount\":643,\"publisher\":{\"@id\":\"https:\\\/\\\/playdeck.tv\\\/#organization\"},\"articleSection\":[\"How To\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/playdeck.tv\\\/howto\\\/playdeck-api\\\/\",\"url\":\"https:\\\/\\\/playdeck.tv\\\/howto\\\/playdeck-api\\\/\",\"name\":\"PLAYDECK API - PLAYDECK\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/playdeck.tv\\\/#website\"},\"datePublished\":\"2025-10-26T01:03:00+00:00\",\"dateModified\":\"2025-10-26T18:52:41+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/playdeck.tv\\\/howto\\\/playdeck-api\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/playdeck.tv\\\/howto\\\/playdeck-api\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/playdeck.tv\\\/howto\\\/playdeck-api\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/playdeck.tv\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PLAYDECK API\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/playdeck.tv\\\/#website\",\"url\":\"https:\\\/\\\/playdeck.tv\\\/\",\"name\":\"PLAYDECK\",\"description\":\"Professional Video Playout Software for Windows\",\"publisher\":{\"@id\":\"https:\\\/\\\/playdeck.tv\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/playdeck.tv\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/playdeck.tv\\\/#organization\",\"name\":\"PLAYDECK\",\"url\":\"https:\\\/\\\/playdeck.tv\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/playdeck.tv\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/playdeck.tv\\\/wp-content\\\/uploads\\\/Logo_PlayDeck-04-edited-scaled.jpg\",\"contentUrl\":\"https:\\\/\\\/playdeck.tv\\\/wp-content\\\/uploads\\\/Logo_PlayDeck-04-edited-scaled.jpg\",\"width\":2560,\"height\":1087,\"caption\":\"PLAYDECK\"},\"image\":{\"@id\":\"https:\\\/\\\/playdeck.tv\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/playdecktv\",\"https:\\\/\\\/www.instagram.com\\\/playdeck.tv\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/70437766\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/playdeck.tv\\\/#\\\/schema\\\/person\\\/63a673a3fa358907dfc2bc57cc23f5b8\",\"name\":\"WebAdmin\",\"url\":\"https:\\\/\\\/playdeck.tv\\\/en\\\/author\\\/joy\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"PLAYDECK API - PLAYDECK","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/playdeck.tv\/en\/howto\/playdeck-api\/","og_locale":"en_US","og_type":"article","og_title":"PLAYDECK API - PLAYDECK","og_description":"The PLAYDECK API is a construct to allow anyone to interface with PLAYDECK. This article will show how to get started developing with the API: In this article:\u2192 Introduction\u2192 Examples\u2192 Implement the API Introduction The PLAYDECK API is bi-directional: You &hellip; Read More","og_url":"https:\/\/playdeck.tv\/en\/howto\/playdeck-api\/","og_site_name":"PLAYDECK","article_publisher":"https:\/\/www.facebook.com\/playdecktv","article_published_time":"2025-10-26T01:03:00+00:00","article_modified_time":"2025-10-26T18:52:41+00:00","author":"WebAdmin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"WebAdmin","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/playdeck.tv\/howto\/playdeck-api\/#article","isPartOf":{"@id":"https:\/\/playdeck.tv\/howto\/playdeck-api\/"},"author":{"name":"WebAdmin","@id":"https:\/\/playdeck.tv\/#\/schema\/person\/63a673a3fa358907dfc2bc57cc23f5b8"},"headline":"PLAYDECK API","datePublished":"2025-10-26T01:03:00+00:00","dateModified":"2025-10-26T18:52:41+00:00","mainEntityOfPage":{"@id":"https:\/\/playdeck.tv\/howto\/playdeck-api\/"},"wordCount":643,"publisher":{"@id":"https:\/\/playdeck.tv\/#organization"},"articleSection":["How To"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/playdeck.tv\/howto\/playdeck-api\/","url":"https:\/\/playdeck.tv\/howto\/playdeck-api\/","name":"PLAYDECK API - PLAYDECK","isPartOf":{"@id":"https:\/\/playdeck.tv\/#website"},"datePublished":"2025-10-26T01:03:00+00:00","dateModified":"2025-10-26T18:52:41+00:00","breadcrumb":{"@id":"https:\/\/playdeck.tv\/howto\/playdeck-api\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/playdeck.tv\/howto\/playdeck-api\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/playdeck.tv\/howto\/playdeck-api\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/playdeck.tv\/"},{"@type":"ListItem","position":2,"name":"PLAYDECK API"}]},{"@type":"WebSite","@id":"https:\/\/playdeck.tv\/#website","url":"https:\/\/playdeck.tv\/","name":"PLAYDECK","description":"Professional Video Playout Software for Windows","publisher":{"@id":"https:\/\/playdeck.tv\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/playdeck.tv\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/playdeck.tv\/#organization","name":"PLAYDECK","url":"https:\/\/playdeck.tv\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/playdeck.tv\/#\/schema\/logo\/image\/","url":"https:\/\/playdeck.tv\/wp-content\/uploads\/Logo_PlayDeck-04-edited-scaled.jpg","contentUrl":"https:\/\/playdeck.tv\/wp-content\/uploads\/Logo_PlayDeck-04-edited-scaled.jpg","width":2560,"height":1087,"caption":"PLAYDECK"},"image":{"@id":"https:\/\/playdeck.tv\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/playdecktv","https:\/\/www.instagram.com\/playdeck.tv\/","https:\/\/www.linkedin.com\/company\/70437766\/"]},{"@type":"Person","@id":"https:\/\/playdeck.tv\/#\/schema\/person\/63a673a3fa358907dfc2bc57cc23f5b8","name":"WebAdmin","url":"https:\/\/playdeck.tv\/en\/author\/joy\/"}]}},"taxonomy_info":{"category":[{"value":169,"label":"How To"}]},"featured_image_src_large":false,"author_info":{"display_name":"WebAdmin","author_link":"https:\/\/playdeck.tv\/en\/author\/joy\/"},"comment_info":0,"category_info":[{"term_id":169,"name":"How To","slug":"howto","term_group":0,"term_taxonomy_id":169,"taxonomy":"category","description":"","parent":0,"count":43,"filter":"raw","cat_ID":169,"category_count":43,"category_description":"","cat_name":"How To","category_nicename":"howto","category_parent":0}],"tag_info":false,"_links":{"self":[{"href":"https:\/\/playdeck.tv\/en\/wp-json\/wp\/v2\/posts\/87239","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/playdeck.tv\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/playdeck.tv\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/playdeck.tv\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/playdeck.tv\/en\/wp-json\/wp\/v2\/comments?post=87239"}],"version-history":[{"count":23,"href":"https:\/\/playdeck.tv\/en\/wp-json\/wp\/v2\/posts\/87239\/revisions"}],"predecessor-version":[{"id":87275,"href":"https:\/\/playdeck.tv\/en\/wp-json\/wp\/v2\/posts\/87239\/revisions\/87275"}],"wp:attachment":[{"href":"https:\/\/playdeck.tv\/en\/wp-json\/wp\/v2\/media?parent=87239"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/playdeck.tv\/en\/wp-json\/wp\/v2\/categories?post=87239"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/playdeck.tv\/en\/wp-json\/wp\/v2\/tags?post=87239"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}