Documentation
PlyCast - Free Playout Automation Client
- Version: V1.0.4.3-rc
- Author: PlyCast
- Update: 26. Dec 2022
Please use the forum to report issues, bugs or feature notes >
Getting Started
These requirements are necessary for the smooth running of the software:
- System requirements
- Windows 10/11 64bit
- Intel Processor (recommended)
- 8GB RAM
- OpenGL 4.5 is required
- Disable User Account Control (UAC)
- Required Third-Party Software
- To avoid problems, PlyCast should be started in the logged-in user's home folder.
Not in the Programs folder!
Informal
- The PlyCast Package includes the following third-party software (All third-party providers use their own license terms):
- PlyCast is visualized by the Icons8 icons.
- Please do not delete any files in the root folder.
- PlyCast automatically registers a new file extension ".plyt"
THE SOFTWARE (PLYCAST) IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Setup CasparCG
The basic prerequisite for the smooth operation of PlyCast is the correct configuration of CasparCG - The Heart of PlyCast. These configurations must be configured correctly before the first start.
The CasparCG system requirements also apply to PlyCast.The CasparCG configuration file is called casparcg.config and is located in the PlyCast folder videoserver (~\videoserver\casparcg.config)
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<paths>
<media-path>media/</media-path>
<log-path>log/</log-path>
<data-path>data/</data-path>
<template-path>template/</template-path>
</paths>
<lock-clear-phrase>secret</lock-clear-phrase>
<channels>
<channel>
<video-mode>1080i5000</video-mode>
<consumers>
<screen/>
<system-audio/>
</consumers>
</channel>
</channels>
<controllers>
<tcp>
<port>5250</port>
<protocol>AMCP</protocol>
</tcp>
</controllers>
<amcp>
<media-server>
<host>localhost</host>
<port>8000</port>
</media-server>
</amcp>
</configuration>
The video-mode
Node, will set also PlyCast Source Frame.
<video-mode>1080i5000</video-mode>
Please be sure to read the CasparCG instructions
Setup PlyCast
Before PlyCast can be started for the first time, PlyCast must be configured.
The configuration file is called plycast.config
and is located in the Root-PlyCast directory.
PlyCast sends emails in case of master errors and supports MySQL/MariaDB for external log storage.
<?xml version="1.0" encoding="utf-8"?>
<PlyCastInstance MailAlert="0" UseMySql="0" PlayChannel="1" AutoSave="5" ListMode="1" DisableLogo="0" DisableCG="0" ShowControl="1" ChapterSupport="1">
<InstanceName>Primary BroadCast</InstanceName>
<EmergencyPlaylist></EmergencyPlaylist>
<mailto></mailto>
<frommail></frommail>
<smtp_server></smtp_server>
<smtp_username></smtp_username>
<smtp_password></smtp_password>
<smtp_port></smtp_port>
<smtp_ssl></smtp_ssl>
<msg_videoerver>
<![CDATA[<h4>Video Server is not connected!</h4>]]>
</msg_videoerver>
<msg_stop>
<![CDATA[<h4>PlyCast Server was stopped!</h4>]]>
</msg_stop>
<msg_shutdown>
<![CDATA[<h4>PlyCast Server was Shutdown!</h4>]]>
</msg_shutdown>
<msg_emergencyloaded>
<![CDATA[<h4>Emergency Playlist was loaded!</h4>]]>
</msg_emergencyloaded>
<mysql_server></mysql_server>
<mysql_database></mysql_database>
<mysql_tablename></mysql_tablename>
<mysql_port></mysql_port>
<mysql_username></mysql_username>
<mysql_password></mysql_password>
<mysql_sslmode></mysql_sslmode>
</PlyCastInstance>
Attribute Setup
<PlyCastInstance MailAlert="0" UseMySql="0" PlayChannel="1" AutoSave="5" ListMode="1" DisableLogo="0" DisableCG="0" ShowControl="1" ChapterSupport="1"> ...
Attribute | Description |
---|---|
MailAlert |
1 Activate0 Disable |
UseMySql |
1 Activate0 Disable |
PlayChannel |
[1 .. ] The PlayChannel is based on the CasparCG configuration: <channels>...</channels> |
AutoSave |
[1 .. ] in Minutes |
ListMode |
0 Normal1 CleanUp every hour2 CleanUp constantly |
DisableLogo |
0 Activate1 Disable |
DisableCG |
0 Activate1 Disable |
ShowControl |
1 Activate0 Disable |
ChapterSupport |
1 Activate0 DisableMore in the section "Playlist Management" |
Node Setup
<InstanceName>Name</InstanceName> ...
Node | Description |
---|---|
InstanceName |
The name of the current PlyCast Instance |
EmergencyPlaylist |
Complete File Path to the Emergency Playlist (.plyt). Disabled if empty. |
smtp_password mysql_sslmode |
Must be Base64 encoded! |
smtp_ssl |
True False |
mysql_sslmode |
none will work or use a cert |
HTML based e-mail messages. Use CDATA! <![CDATA[...]]>
Node | Description |
---|---|
msg_videoerver |
As soon as CasparCG (VideoServer) is no longer connected. |
msg_stop |
As soon as the PlyCast stops. |
msg_shutdown |
Once PlyCast has closed. |
msg_emergencyloaded |
Once PlyCast has loaded the emergency list. |
Logs
PlyCast creates log files and saves them in order on a daily basis. The log files are located in the logs folder (~\logs). The log files are saved as comma-separated txt files (UTF-8).
Log-Folder Short Acces from Menu:
- Tools
- Folders
- Logs
Logo
Images, movies-files with an alpha channel or HTML5 links with transparency can be used as a logo. Several logos can be used at the same time. Layers 5 to 10 are available for this purpose.
- The Logo layer can be added or removed manually or automatically via FileMatch.
logo.xml
and is located in the PlyCast folder cg (~\cg\). In the Tools menu, the logo configuration can also be carried out during operation. However, PlyCast must apply the changes. Automatic confirmation occurs after saving the file.
Any layer can be used for the logo: A uniform layer structure is an advantage. Example: Logo layer 10, CG layers: 5-9.
Logo Configuration
<?xml version="1.0" encoding="utf-8"?>
<Logos>
<Logo>
<LogoName>Logo 1</LogoName>
<LogoUri>C:\Users\PlyCast\Logo1.mov</LogoUri>
<LogoDelay>0</LogoDelay>
<LogoMix>16</LogoMix>
<AutoOn>*</AutoOn>
<AutoOff>W_</AutoOff>
<PlayLayer>5</PlayLayer>
</Logo>
<Logo>
<LogoName>Logo 2</LogoName>
<LogoUri>https://plycast.com/downloads/testhtml/</LogoUri>
<LogoDelay>0</LogoDelay>
<LogoMix>16</LogoMix>
<AutoOn>*</AutoOn>
<AutoOff>W_</AutoOff>
<PlayLayer>6</PlayLayer>
</Logo>
</Logos>
Nodes | Description |
---|---|
LogoName |
Name of Logo |
LogoUri |
The Location of the Logo (Url or Filepath) |
LogoDelay |
[1 ... ] in Seconds |
LogoMix |
[25 ... ] in Full-Frames (Fade Duration) |
AutoOn |
[*,One,Two] Text separated by a comma. * = All Clip Names |
AutoOff |
[*,One,Two] Text separated by a comma. |
PlayLayer |
[2 ...] Played layer |
Test Files/URL
- Video MOV with Alpha 1080i50
- Image Image (Targa with Alpha 1080)
- URL HTML5 (TestURL 1080)
- ZIP HTML5 (PHP Script 1080)
TGA information: In order to be able to use TGAs, an alpha channel is required and the image must be saved as 32bit.
CG
Images, movies-files with an alpha channel, HTML5 links with transparency or a Python Script can be used as a CG. Several CGs are possible and can also be changed in the playlist. The CG layers are emptied again at each OnAir event.
- The CG layer can be added or removed manually or automatically via FileMatch.
cg.xml
and is located in the PlyCast folder cg (~\cg\). In the Tools menu, the logo configuration can also be carried out during operation. However, PlyCast must apply the changes. Automatic confirmation occurs after saving the file.
Any layer can be used for the cg: A uniform layer structure is an advantage. Example: Logo layer 10, CG layers: 5-9.
CG Configuration
<?xml version="1.0" encoding="utf-8"?>
<CGs>
<CG>
<CGName>CG 1</CGName>
<CGUri>https://plycast.com/downloads/testhtml/</CGUri>
<CGUpTime>00:00:00.000</CGUpTime>
<CGDowntime>00:03:20.000</CGDowntime>
<CGDuration>00:00:30.000</CGDuration>
<CGMix>16</CGMix>
<PostURL>True</PostURL>
<CGLayer>20</CGLayer>
<AutoOn>*</AutoOn>
<AutoOff>W_</AutoOff>
</CG>
</CGs>
Nodes | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
CGName |
Name of the CG | ||||||||||||
CGUri |
The Location of the CG (Url or Filepath) | ||||||||||||
CGUpTime |
[hh:mm:ss.fff] Starts CG on Current File Time-Position |
||||||||||||
CGDowntime |
[hh:mm:ss.fff] Starts CG on Current File Time-Duration-Position |
||||||||||||
CGDuration |
[hh:mm:ss.fff] Duration of CG (will FadOut after) |
||||||||||||
CGMix |
[25 ... ] in Full-Frames (Fade Duration) |
||||||||||||
PostURL |
[True/False]
URL Only: If True, keywords in the URL will be replaced. Example: https://www.example.com?token= %UID% &filename=%FILE% &category=%CAT%
The PostURL values are URL encoded! It is recommended to check the maximum string length on the web server.
|
||||||||||||
CGLayer |
[2 ...] Played layer |
||||||||||||
AutoOn |
[*,One,Two] Text separated by a comma. * = All Clip Names |
||||||||||||
AutoOff |
[*,One,Two] Text separated by a comma. |
Test Files/URL
- Video MOV with Alpha 1080i50
- Image Image (Targa with Alpha 1080)
- URL HTML5 (TestURL 1080)
- ZIP HTML5 (PHP Script 1080)
TGA information: In order to be able to use TGAs, an alpha channel is required and the image must be saved as 32bit.
Playlist Management
The playlist can be operated as usual with the mouse.
- Simply add files to the list by dragging and dropping them from Explorer.
- Copy, cut, delete and paste are performed with the usual combinations.
- PlyCast can be closed. The last File in CasparCG will play until the End.
Shortcuts
Shortcut | Description |
---|---|
MEDIA-KEY: PLAY/PAUSE |
Take Selected Item |
MEDIA-KEY: JUMP NEXT |
Cue/Onair Next Item |
F5 |
Clean Playlist |
ESCAPE |
Clear All Selected Playlist Items |
ENTER |
Sets Event Properties |
CTRL + C |
Copy Playlist Item |
CTRL + X |
Cut Playlist Item |
CTRL + V |
Paste Playlist Item |
CTRL + S |
Save Current Playlist |
DELETE |
Delete Selected Playlist Item |
LEFT SHIFT + DRAGDROP |
Random Files |
SHIFT + MOUSE |
Select Up/Down |
CTRL + MOUSE |
Select Multiple Playlist Items |
ARROW UP/DOWN |
Select Items Up and Down |
Expired Files
PlyCast can display a message when a file has expired. This feature is perfect for ads that should only run within a certain time.
- FileName_EX2022-06-01.mp4
- Use _EX followed by Date YYYY-MM-DD
Events
Events are permanently implemented playlist functions. They are the basic functionality of PlyCast and cannot be modified or enhanced. In order to be able to edit a function, the function must first be selected in the playlist. Then you can modify them with a double click. Just right click in the Playlist and load the Function from the menu.
Events | Description |
---|---|
Stop | The playlist is stopped until it is started again with a take. This mode is written to the playlist and remains unchanged even on reboot. |
Take | Cancels the current Item and immediately starts the selected one. |
CleanUp | Remove "AS RUN" Items |
Comment | Creates a playlist item for Comments |
GoTo | It creates a playlist item to go to a specific comment. If an error shows, the comment was deleted or renamed. "GoTo" will set ListMode temporarily to 0 and back if no GoTo/Loop is inside anymore. |
Fixed Event | Creates a playlist item and Start at the given Date and Time. If the fixed event was created in a template, it will only be included in the playlist if the date is greater than the current date. Otherwise, it automatically becomes a follow-item as if the fixed event was previously an "AS RUN" item. |
Stop Event | Stops the playlist (black is shown) until the duration has been reached: All channels are reset. |
Wait Event | Creates a playlist item and waits until the duration has been reached: All channels stay as they are. |
Chapters
PlyCast supports chapters that are integrated within a file. When importing (drag & drop), the file is automatically segmented. The addition of a corner bracket simplifies that the segmentation was successful.
- Import > TestFile.mp4
- Segmentation > TestFile.mp4 [Name Od Chapter], TestFile.mp4 [Name Od Chapter], TestFile.mp4 [Name Od Chapter] ...
- Remove > TestFile.mp4 (in Playlist Only)
The main file will be removed from the playlist after import.
Test Files
- ZIP Test Package
Create Chapters
With FFMPEG, for example, chapters can be created. It is important that the TIMEBASE is 1/1000. This means: The start and end points must be specified in milliseconds.
FFMpeg Command
ffmpeg -y -i "NoChapterTest.mp4" -i "Chapters.txt" -map_metadata 1 -codec copy "ChapterTest.mp4"
Example Chapters.txt
;FFMETADATA1
[CHAPTER]
TIMEBASE=1/1000
START=0
END=5000
title=Chapter 1
[CHAPTER]
TIMEBASE=1/1000
START=5000
END=10000
title=Chapter 2
Categories
Plycast has the possibility to set categories (name and color). The Category configuration file is called cats.xml and is located in the PlyCast Root folder. PlyCast must apply the changes. Automatic confirmation occurs after saving the file.
<?xml version="1.0" encoding="utf-8" ?>
<Categories>
<item name="Live" color="#ffc75f" automatch="show"></item>
<item name="Ads" color="#ff6f91" automatch="wj,w"></item>
</Categories>
A category can be reselected with right-click or the complete playlist can be recategorized in the "Tools" menu.
Nodes | Description |
---|---|
name | Name of the Category |
color |
Color of the Category (HTML HEX, including hashtag): #ff6f91 , #ff9671 , #f9f871 , #2c73d2 .Depending on the background color, PlyCast automatically changes the text color from black to white. |
automatch | PlyCast automatically searches for a match (comma separated) to assign the category. The complete path is searched. But only when importing clips. |
Plug-Ins
With plug-ins you can expand PlyCast according to your needs. Plug-ins can deliver files or perform other miscellaneous tasks. Plug-ins are saved as Python scripts in the plugins folder where is located in the PlyCast Root-folder (~\plugins)
Visit our Plugin Directory >Install PlugIns: File > Import Plugins
This is a simple Plug-In example.
import sys, glob, random, os, socket
def InitGui():
GuiLoader = "SingleFile"
print(GuiLoader, end = '')
def InitLoad():
print("LOAD: "+sys.argv[2])
f = open("cue.txt", "a")
f.write("Now the file has more content!")
f.close()
print("", end = '')
def Cue():
print("CUE")
f = open("cue.txt", "a")
f.write("Now the file has more content!")
f.close()
def OnAir():
print("PLAY")
f = open("play.txt", "a")
f.write("Now the file has more content!")
f.close()
if sys.argv[1] == "cue":
Cue()
if sys.argv[1] == "onair":
OnAir()
if sys.argv[1] == "load":
InitLoad()
if sys.argv[1] == "gui":
InitGui()
PlyCast sends 4 commands to the plugin.
Command | Description | Playout | List Manager |
---|---|---|---|
gui | Comma-separated fields that can be filled in when pasting or double-clicking. | X | X |
load | Loads is executed when inserted into the playlist. Loads can send files back to the playlist. To do this, a return value with the complete file path (comma separated) must be returned. Important! (end = '') ath the end when print. | X | |
cue | Can't return Files but Fired your Code at Cue. | X | |
onair | Can't return Files but Fired your Code at OnAir. | X |
python.exe
"[gui,load,onair,cue]"
"[gui-command-1]"
"[gui-command-2]"
...
Files
- Plugin Randomizer
- Plugin VideoHub
- Plugin Atem Macro Switch
- Plugin Live Insert
- Plugin Send Command to CasparCG
Templates
Templates make working with PlyCast easier. You can prepare individual programs or entire days in them. The plug-ins and functions are only executed when they are imported into the main playlist.
How to create a template:
- File
- Create Template...
Templates are independent files that can also be opened directly from Explorer. In order to use a template, it simply has to be dragged and dropped into the playlist.
Support
We do not offer support, but we have opened a forum where all questions and answers will be posted.
Visit the forum >
Don’t forget to Rate PlyCast at Facebook
Changelog
Version 1.0.4.2-rc (20 Nov, 2022)
- Featrue Category support has been enabled and integrated.
- Info The second menu "Tools" has been deleted.
- Bug-Fix The right-click error has been fixed.
Version 1.0.4.1-rc (18 Nov, 2022)
- Bug-Fix Jumping Functions
Version 1.0.4.0-rc (15 Nov, 2022)
- Updated New Core