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.

Features:

  • 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

11 Likes

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, @balte.

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 http://127.0.0.1:8000 even tho the media scanner is running and working with official client and I can access e.g. http://127.0.0.1:8000/cls
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”: “127.0.0.1:8000”,
“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:127.0.0.1”,
“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: https://github.com/nrkno/tv-automation-media-scanner

Hi,

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.

2 Likes

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.

Privacy Policy   Terms of Service