Folderplayout: a 24/7 scheduled playout client

Hi all,

I just wanted to create a new forum post about a pet project of mine. Folderplayout is an open source and free playout client for CasparCG based on the same tech that the Sofie project uses for playout. You can build a recurrent schedule that can control CasparCG and Blackmagic Atem’s. The schedules can consist of live inputs (either decklink or atem inputs), clips, folders (all clips in a folder) and groups (that can contain files, inputs, folders or other groups). This schedule is then parsed to become a playlist. Outside of scheduled content a default decklink/atem input is played back. (Infochannel usually)

Folderplayout is mostly aimed at small (community) stations that often operate on very small budgets and aid from volunteers. The intention is to be simple, stable and low cost.


  • CasparCG based clip playout
  • CasparCG or Blackmagic Atem live inputs
  • Hierarchical schedule

The GitHub repository can be found here. A windows installer for the latest version can be found on the releases page.

PS: the name folderplayout originates entirely from the first version, which could only play back clips inside a folder on set hours


This seems like the project I’ve been waiting for a long time, so much that I attempted to start writing something like this not long ago, but I have so little time to actually develop it that it would have been a daunting task to go for, so I’ll take a better look to this project and see how can I collaborate.

So far, seems like a nice approach to one of my concerns in actual playout solutions, which is group hierarchy.

Now, I can’t test this for a couple of days (because of preventive quarantine), but for what I saw in the code, it seems InfoChannel can only be an ATEM or Decklink input, but not another kind of media, like a looped video or an HTML template. It also, seems to not support automated logo overlay or custom commands.

As soon as I can test it, I’ll check how good does this behave in improvised situations, like rapid schedule changes and so, but this seems like a project I’d like to see grow a lot more.

Thanks for the great job, @mint.

1 Like

Thank you! :slight_smile:

Yes, that is correct. I kind of like separation as I think it aids to the stability of the system. It should not be hard to add other modes though.

That’s right, although that should be able to be done in a similar way to how the mutes work. But before that I would like to refactor some parts of the recurrence-parser to accept more generic content.

I’m conflicted on this regard. I understand the inclination to add it, but think there’s a danger of adding huge complexity to the schedules. I need to understand the need for these commands a little more and see if there’s a simple, safe approach.

I have just built it on Ubuntu 18.04 and it says Unable to connect to media manager at even tho the media scanner is running and working with official client and I can access e.g.
Am I doing something wrong?
If it’s helpfull the media scanner says this every second:
[2020-04-15T20:38:10.472Z] INFO (scanner/5369 on $MyComputersHostname): request completed
req: {
“id”: 625,
“method”: “GET”,
“url”: “/stat/seq”,
“headers”: {
“host”: “”,
“connection”: “keep-alive”,
“accept”: “application/json, text/plain, /”,
“user-agent”: “Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) folderplayout/0.5.0 Chrome/61.0.3163.100 Electron/2.0.18 Safari/537.36”,
“accept-encoding”: “gzip, deflate”,
“accept-language”: “en-US”
“remoteAddress”: “::ffff:”,
“remotePort”: 52512
res: {
“statusCode”: 404,
“header”: “HTTP/1.1 404 Not Found\r\nX-Powered-By: Express\r\nContent-Security-Policy: default-src ‘none’\r\nX-Content-Type-Options: nosniff\r\nContent-Type: text/html; charset=utf-8\r\nContent-Length: 147\r\nDate: Wed, 15 Apr 2020 20:38:10 GMT\r\nConnection: keep-alive\r\n\r\n”
responseTime: 1

This project requires this fork of media-scanner:


I’m trying to make a playout software too. To be curious how do you manage the rundown. Do you schedule each clip event or do you, make an auto load command before the end ?

It’s entirely state based so I don’t manage any of the events inside folderplayout. I just tell the timeline-state-resolver (TSR) library when I want what clips to play and that takes care of it. Internally, the TSR schedules the commands, so no auto load commands are used. The best thing about TSR is being able to use logical expressions, so I don’t have to worry about sending commands every time the input changes or the volume is muted / unmuted, that is all done from 1 timeline object.


Having issues play media files. When i setup schdeule it does not go live.

I can’t provide support for this at all, I simply don’t have the time. But in general… make sure to use CasparCG 2.1, mediascanner from the nrkno fork and that all is connected to the right IP, the files that are being played back exist on the casparcg, etc. The schedule is saved with the buttons top right and files being played back should be shown on the dashboard under playlist.

thanks you for your effort here.
I am new to casparcg and in the forum. caspar server is running and playing out something via the standard client. now i installed the media scanner from nrkno, it is running as well. in folder-playout i added a clip on schedule page. i saved it. but it is not going to playlist on the dashboard page. i am not sure what i put wrong. i struggle a bit with the input format on the add page. is there a way to see a log or debug screen? or maybe a file i could import to see how it should be made?
thanks for help.s

Hi @mint, I’m in the same boat as @kyletd55.

Thank you for releasing this. I’ve tried to set this up using the NRK forks and following the instructions i’ve found below but nothing seems to play-out/save. The status for Caspar and the scanner is good. Is there any additional setup we’re missing or any way to go through the logs?


@Alexanderrrk @mint yeah I never got any resolution. If you are looking for a stable client to run casparcg as a play out server in production, I recommend Red Cast. The last wet version being 1,11 I believe. All I suggest is that you don’t run the caseparcg server that comes with it. Instead download the lastest verson from the Git, and connect the client to it. I use 2.3.0 LTS with the client and it’s Rock solid. Also, be sure to use a black magic decklink that has a sync/gen lock input and jam to whichever resolution you are using.

Hello! Please advise if Folderplayout allows to set file playback in loop and scheduling switching between one files running in loop? I couldn’t manage to find such functionality.

There is no loop functionality.

Hi for some reason I am not able to play any media. The Server and Media Scanner show “OK” connected. When adding a file to the schedule I give this path:


Is this correct?

-running CasparCG Server 2.3.1 e767c1dda

All paths should be relative to the CasparCG media folder and without extension, similar to the official CasparCG Client

Thanks @mint. Got it working with the relative path. It’s working nicely!

For anyone who may be interested, here’s how to specify the relative path to a file in casparCG - assuming the path to the media folder in the configuration file is set to (Drive):\Media


Path to Media folder in configuration file: D:\Media
Actual location of a media file: D:\Media\Videos\my_video.mp4
CasparCG relative path to media file above: Videos/my_video

*Note that in relative path you must use “/” if file is in a subdirectory and you must omitt the file extension.

Hi Guys,
I thought i would give another shot to see if i could get Folder Playout working.
It turns out it was because i didn’t have ffprobe installed which the media scanner needed.
After dropping it in the folder everything connected and started working great.


I have made this schedule

But it never shows up

I use latest NRK build and mediascanner.