PlyCast 3NX is currently in beta.
PlyCast 3NX Beta

Download the software

Get the beta installer when the download is available.

Compatibility: PlyCast 3NX was tested on Windows 11 with current system updates and current Blackmagic DeckLink drivers. CasparCG requires suitable hardware, including a compatible GPU. Before installing, check the current CasparCG system requirements for your computer and output setup.
Documentation · Operator guide

Run your playout with confidence.

A step-by-step guide from installation and port planning through playlists, on-air operation, automation and troubleshooting.

The browser does not need to stay open. PlyCast stores the playlist and playout state on the server. Once playout is running, you can close the browser and return to the web interface later; keep the PlyCast server and CasparCG running.

Interface overview

The left panel is the media browser; the centre is the current playlist; the right panel contains templates, plugins, functions, categories, logos and CGs. The top bar shows preview, transport controls, on-air and next items, and estimated playlist end. The video server status and server clock appear below the playlist.

Server time matters. Scheduled starts and the playlist timeline follow the server clock shown in the application.

Install and configure: the correct order

Works out of the box. With the supplied configuration, PlyCast 3NX and CasparCG are ready to run without manual setup. As an administrator, you can configure CasparCG later in the browser under Settings → CasparCG. Save changes to casparcg.config and restart CasparCG to apply them.
CasparCG outputs: It is important to understand how CasparCG channels, video modes and output consumers are configured in casparcg.config. PlyCast controls playout, but the actual output devices and destinations are set in CasparCG. Before changing SDI, screen or other outputs, read the CasparCG Server Wiki and check the configuration for your hardware.

If you need custom ports, multiple instances or a different CasparCG installation, use this order before starting the affected services to avoid port conflicts:

  1. Install the application and CasparCG. Locate the installation folder, config.json, and CasparCG's casparcg.config. The CasparCG configuration normally resides in assets/casparcg/casparcg.config; an alternate path can be specified through casparcg.config_path.
  2. Configure CasparCG first. In casparcg.config, set the intended channel, video mode, output consumers, media path and AMCP listener. Confirm that its AMCP TCP port is available. Set its media path to the same media collection that PlyCast will index. If you edit this file after CasparCG is running, restart CasparCG to apply it.
  3. Then configure PlyCast ports. Open PlyCast's config.json. Set casparcg.host and casparcg.port to the CasparCG AMCP listener. Choose free ports for server.port, sftp.port and live.port. Set media.directory, casparcg.channel and casparcg.layer to match your installation.
  4. Check for collisions. Each local listening service needs its own unused port. The CasparCG AMCP port is a separate service from PlyCast's web, SFTP and live input. If several PlyCast instances run on one host, allocate distinct web, SFTP and live ports to each and check their CasparCG targets.
  5. Start PlyCast after your custom changes. The launcher can start local CasparCG automatically when casparcg.autostart is true. Open the web interface and verify the video server indicator and Settings → Info → Ports.
Important: the values below are from the supplied config.json, not reserved defaults for every installation. Keep them for a standard setup; change them only if your environment requires different ports or paths.
ServiceExampleDirection and purpose
Web interfaceTCP 8000Incoming browser and API traffic (server.port).
SFTP uploadTCP 8001Incoming file upload, if SFTP is enabled.
Live preview inputUDP 8003Stream from CasparCG to PlyCast; browser preview still uses the web port.
CasparCG AMCPTCP 5250Outgoing control connection from PlyCast to CasparCG.

For access from another computer, allow the web port and, if used, SFTP through the firewall. The live UDP stream is between CasparCG and PlyCast. The actual address and enabled status are shown under Settings → Info.

Tray icon and startup

On Windows the launcher displays the PlyCast icon in the taskbar notification area (the system tray). If it is hidden, expand the taskbar's small icon menu. The icon tooltip and first menu line show the launcher state. Double-click the icon to open the web interface in the default browser.

Tray itemAction
Open web interfaceOpens http://localhost:<server.port> in the default browser. It is also the default menu action.
RestartAsks for confirmation, then restarts the PlyCast server. Check output and current playout first.
QuitAsks for confirmation, stops the PlyCast server and also stops a locally managed CasparCG process. Playout control is interrupted.

The launcher watches the server process and tries to restart it after a crash; after repeated crashes it pauses restarts and reports the condition. Launching a second copy opens the existing web interface rather than starting a second server. If tray support is unavailable, the launcher stays in a console window and can be stopped with Ctrl+C.

Keep it running: closing a browser tab is different from choosing Quit in the tray. Use the tray menu deliberately when shutting down the system.

First run

  1. Start PlyCast 3NX locally on the Windows computer. Find its icon in the system tray (the notification area by the clock) and double-click the icon. PlyCast opens its web interface in your default browser. If the icon is hidden, expand the tray icons first.
  2. Check the Windows Firewall prompt. The installer may already have created the required rules. If Windows asks whether to allow PlyCast 3NX or CasparCG to communicate, click Allow access for the trusted network you use (usually Private). If no prompt appears and other computers cannot connect, check the firewall rules for the web and SFTP ports listed under Settings → Info → Ports.
  3. On a fresh installation, sign in with username admin and password admin. You must set a new password immediately after the first login (at least six characters). Existing installations keep their configured accounts and passwords.
  4. Open Settings as the administrator. Confirm the media folder and CasparCG host, port, channel and video layer. Check the video server status.
  5. Put media in the configured media folder. In the left panel, select Re-index media, then browse or search for a clip.
  6. Drag a clip into the central playlist. Add more clips and arrange them in transmission order.
  7. Check the Next item and playlist end estimate. Press Play to start.

Configuration can differ between installations. Your administrator supplies the application address, media path and server connection.

Media and indexing

Browse folders with the breadcrumb or use the search field. The index supplies media details such as duration, resolution and measured audio loudness. Use the refresh button after adding or changing files. The file-check button checks whether playlist files still exist.

Drag media from the browser to the desired playlist position. Use the In/Out editor to define the playable part of a clip.

Audio normalisation: An administrator can choose Off, peak or LUFS in Settings. It runs during indexing; the interface states that video is copied, audio is re-encoded and the original is retained as .mp4original. Allow indexing to finish and review the result before relying on it on air.

In/Out editor

Double-click a media clip in the playlist to open its preview and In/Out editor. You can also double-click an indexed media clip in a template. The edit applies to that playlist or template entry; it does not trim the original media file.

  1. Play the preview or click and drag along the timeline to find a frame. Use ← and → to move one frame at a time; hold Shift to move about one second. Space plays or pauses.
  2. Press IN or the I key at the desired first frame. Press OUT or O at the end point. The OUT frame itself is excluded from playback. You can also enter both timecodes directly in their fields.
  3. Select ▶ IN–OUT to preview exactly the chosen range. Check the displayed Length. Use Reset to remove both marks, or Apply to keep them.
  4. Back in the playlist, check the IN/OUT badge, effective duration and subsequent start times. The timing recalculates when the selection changes.
On-air protection: a clip already played or currently on air opens in preview-only mode; its IN and OUT points cannot be changed there. Make timing changes before that clip reaches air.

Build a playlist

  1. Drag media into the playlist. Drop at the required location and reorder entries by dragging.
  2. Click to select an item; use multi-selection for a group of items. Move or remove the selection as needed.
  3. Review start times, durations and filenames in the playlist columns. The header offers Go to ON AIR and Clean Playlist to remove already played items.
  4. Check the top bar for the on-air countdown, next item and estimated playlist end.

Playlist edits are saved to the server. If another tab changes the playlist, the interface may reload its current version; review the order again before going on air.

Selection, shortcuts and drag-and-drop

Click a playlist item to select it. Hold Shift and click another item to select the whole range. Hold Ctrl (or Command on macOS) while clicking to select or deselect individual items.

ActionHow
DeleteSelect playlist items, then press Delete or Backspace.
CopyPress Ctrl+C (or Command+C) with items selected.
PastePress Ctrl+V (or Command+V). Copied items are inserted before the first selected item, or at the end when nothing is selected.
Add mediaDrag a file from the media browser on the left into the desired position in the playlist. Drag a folder to add its media files.
ReorderDrag playlist items to another position; you can move a selected group together.

Apply a Logo or CG

Drag a Logo or CG from the right panel directly onto one clip. To apply it to several clips, select the clips with Shift or Ctrl/Command and double-click the Logo or CG. You can also drag the Logo or CG onto one of the selected clips to apply it to the selected group. Dragging it onto an unselected clip applies it to that clip only. Click its badge on a playlist item to remove that assignment.

While playing: items already played and the locked on-air portion cannot be changed. Shortcuts apply when the playlist has focus and you are not typing in a field or editing a dialog.

On-air controls

ControlWhat it does
PlayStarts playlist playout.
StopStops playout; check the on-air state before leaving the system.
NextAdvances to the next playlist entry.
TakeStarts the one selected playlist item after the cue time. Select exactly one item.

Preview can show still images or a live stream. The live view includes a mute control and audio meter when available. The video server indicator reports the connection state; it is separate from the browser preview.

Playlist functions

Drag a function from the right panel into the playlist and edit its settings. These entries affect the schedule differently from ordinary media.

Comment

Operator note; no duration and no playback.

Wait

Enter a duration in HH:mm:ss. The video layer is cleared during the wait.

Fixstart

Set a server date and time for the following item. Earlier material may be cut; arriving early leaves a gap. A past time is ignored when Play is pressed.

Goto

Jump to the item below a chosen Comment, creating a loop. Items after the Goto are not reached while that loop runs.

Example: create a repeating playlist

  1. Drag Comment from Functions to the top of the block. Name it Loop start. This is the jump marker and is not played.
  2. Place one or more media clips below the Comment, for example Station ident, Music video A and Music video B. At least one item between Comment and Goto must have a positive duration.
  3. Drag Goto below the last clip. Double-click it and choose the earlier Loop start Comment as its target.
  4. Check the order: Comment: Loop start → Station ident → Music video A → Music video B → Goto: Loop start. Start playout and monitor the first transition back to the station ident.

When Goto is reached, the next played item is the one immediately after the chosen Comment. The Comment must be above Goto; entries after Goto remain unreachable while the loop is active. To end the loop, stop playout or change the playlist deliberately after checking the on-air state.

Before a live transmission: inspect any Fixstart and Goto entries closely. They change the expected playlist end and may interrupt content.

Plugin example: insert a station ident

Create a file called StationIdent.py in the plugins folder, or use Plugin editor → + New as an administrator. Replace idents/station-ident.mp4 with a real, indexed file path relative to your media collection.

import os


def InitLoad():
    # Called when the plugin is dragged into the playlist.
    # Insert this indexed media item below the plugin entry.
    return ["idents/station-ident.mp4"]


def Cue():
    # Called shortly before this plugin reaches its start time.
    print("Station ident cue:", os.environ.get("PLYCAST_ITEM_ID"))


def OnAir():
    # Called when the plugin entry reaches ON AIR.
    print("Station ident on air:", os.environ.get("PLYCAST_STARTTIME_MS"))
  1. Save the plugin. In the editor, run Test → InitLoad. This tests the return value without inserting files into the playlist.
  2. Drag StationIdent from the Plugins panel into a test playlist. The returned clip should appear below it. If the file is not in the media index, correct its path or re-index.
  3. Run a controlled test to observe Cue() and OnAir(). The example prints information; it does not send an external command.

InitLoad() runs on insertion and may return a list of filenames or {"files": [...]}. Cue() runs at the configured cue interval before the plugin start; OnAir() runs at its start time. Each hook runs in a separate process with a 60-second timeout. Available environment variables include PLYCAST_ACTION, PLYCAST_PLUGIN, PLYCAST_ITEM_ID and PLYCAST_STARTTIME_MS. Names may contain letters, digits, underscores and hyphens; files beginning with _ are helper modules and stay out of the plugin list.

Choose a folder for random clips

For a plugin that selects clips at random, first use 📁 Folders at the top of the Plugin editor. Search for your media folder and click it: the editor inserts its full path as a correctly quoted Python string at the cursor. Put that string after MEDIA_FOLDER = in the example below. The folder must contain indexed media clips; this example selects one file when the plugin is inserted.

from pathlib import Path
import random

MEDIA_FOLDER = "C:/PlyCast/assets/casparcg/media/idents"  # Replace via 📁 Folders

def InitLoad():
    clips = [p for p in Path(MEDIA_FOLDER).iterdir()
             if p.is_file() and p.suffix.lower() in {".mp4", ".mov", ".mxf"}]
    if not clips:
        return []
    return [str(random.choice(clips))]

The folder picker inserts an absolute path; PlyCast maps files inside the configured media directory back to their media-index entries. Run Test → InitLoad and confirm that the returned file is indexed before using the plugin on air. Change the extension filter for your media format.

Live actions: the editor's Cue and OnAir test buttons really execute those hooks. Only run them when the plugin's side effects are safe.

Templates and plugins

Select playlist entries and use the + beside Templates to save them as a reusable block. In the template editor, drag in media from the left and functions or plugins from the right; drag to reorder, double-click a function to edit, and remove an entry with ×. Save with a descriptive name.

A plugin in the template editor is not executed there; it runs when inserted into the playlist. Administrators have a separate Plugin editor with test controls. Test custom automation off air before using it in a transmission.

Categories and graphics

Administrators can create Categories, Logos and CGs in the right panel. Categories can have a colour and filename AutoMatch rules when media is added to a playlist. Separate terms with commas; exclusion terms suppress a match. * matches all and can also serve as a wildcard inside a pattern.

Choose a graphic source

When creating a Logo or CG, select either File or URL. Upload alpha graphics such as supported MOV video, PNG or TGA to /_Overlays over SFTP with an administrator account. These files are mapped to the application's overlays/ directory and appear in the Logo/CG file picker without a media re-index. Check that your CasparCG installation can play the chosen codec and alpha format.

For HTML graphics, the URL can point to an external http:// or https:// page. You can also upload an HTML file to /_CG over SFTP and use its internal address, for example http://localhost:8000/cg/lower-third.html when CasparCG and PlyCast share a host and the web port is 8000. Use an address reachable from the CasparCG host if it runs elsewhere.

URL query: while a media clip is on air, PlyCast appends file=<clip path> to a Logo or CG URL. An existing file parameter is replaced; other parameters are preserved. The HTML page can read this query to display clip-specific information. For a URL loaded without a current media clip, no clip path is added.

Set CG timing

A Logo remains visible for the clips to which it is assigned. A CG has its own timing relative to each assigned clip: set In after for when it appears after clip start and Duration for when it goes out. Optionally set In at remaining time for a second appearance when the clip countdown reaches that value. Leave the last field empty for one appearance. Enter times as HH:mm:ss and use the timeline preview to check the result; a CG is cleared at the clip end.

Review the source, layer, assignment and timing in a test playlist before transmission.

As-Run log and tasks

Open the As-Run log from the top controls. Pick a date, filter events (played, cued, plugin, operator, system or errors), search entries, follow live updates, and export CSV. The table records time, event, item, duration, user and details. Administrators can clear the log.

The left Tasks panel reports background work, including indexing. Wait for relevant tasks to finish before checking media availability.

Administrator settings

Settings includes channel name, CasparCG connection and video mode, media folder, audio normalisation, email alerts, users, restart and system information. Open the Users and roles section for permissions, SFTP access and password resets.

Email alerts can cover video server disconnection, playlist end, rejected playback commands and missing files. Set SMTP and recipients, save, then send a test email. The information tab shows installation-specific web and SFTP ports.

CasparCG connection changes are described in the interface as taking effect after about one second. Changes to the CasparCG server configuration or video mode may require a server restart; plan these outside on-air use.

Users, roles and passwords

An administrator manages accounts under Settings → Users. Enter a username, an initial password of at least six characters and a role, then select Add. New accounts must replace the initial password at their first sign-in.

RoleAccess
UserWorks with media, playlists, playout and templates; can assign existing categories, Logos and CGs to playlist items. Cannot change system settings or manage users and graphic definitions.
AdministratorHas User access plus Settings, account management, creation and editing of categories/Logos/CGs, the Plugin editor and server controls.

SFTP upload checkbox

For a User, tick SFTP upload in that account's row to allow SFTP access with the same username and password. The user can upload to the configured media folder and manage folders, but cannot delete files. Untick the box to remove SFTP access. Administrators always have SFTP access, so their checkbox is checked and cannot be changed. Only administrators see the special SFTP folders /_Overlays and /_CG.

SFTP login is unavailable while an account still has a required password change pending. The service itself must also be enabled and reachable on the port shown under Settings → Info.

Connect with FileZilla

Open FileZilla → File → Site Manager → New site and enter the following values:

FileZilla fieldValue
ProtocolSFTP – SSH File Transfer Protocol (not FTP or FTPS).
Host[server IP] — the IP address or hostname of the computer running PlyCast 3NX. You may use sftp://[server IP] when entering a URL.
Port[SFTP port] — check Settings → Info → Ports in PlyCast. The supplied configuration uses 8001 as an example.
Logon TypeNormal.
User / PasswordYour PlyCast 3NX username and password. These are the same credentials used in the web interface.

Click Connect and accept the server host key after checking that you are connecting to the correct machine. Upload media into the shown media directory. Administrators also see /_Overlays and /_CG. If FileZilla rejects the login, confirm that the user has SFTP permission, has completed any required password change, and that the chosen port is reachable.

Reset or change a password

  1. To reset another account, an administrator opens Settings → Users and clicks Password on that user's row.
  2. Enter a new temporary password of at least six characters and give it to that user through your usual secure channel. Their current sessions become invalid and they must change the temporary password at the next web sign-in.
  3. To change your own password, open the user menu at the top right and choose Change password. Enter the current password and a different new one (at least six characters). Previous sessions are invalidated.
First installation: the initial admin / admin login requires an immediate password change. The Password pending label in the Users list means that a user still needs to set a personal password.

Troubleshooting

SymptomCheck
White, unstyled page with lots of text and imagesClear cookies and site data for the PlyCast web address in your browser, then reload the page. If it still looks unstyled, try a hard refresh and check that you opened the correct PlyCast address.
Port already in useStop the conflicting process, choose an unused port in config.json, then restart the affected service. Check the AMCP listener separately from web, SFTP and live UDP.
No media listedCheck the configured media directory, then re-index and review Tasks.
File unavailableRun the playlist file check; confirm the file remains in the media folder and indexed path.
Server disconnectedReview the video server indicator and CasparCG host/port in Settings; check the As-Run log for errors.
Unexpected timingCompare the server clock, clip in/out points, Wait, Fixstart and Goto entries.
No browser live previewTry the still-image mode and confirm playout state separately. Preview availability does not by itself prove the output is stopped.
Command rejectedCheck the As-Run error filter, media path and server connection; administrators can enable command-error alerts.