Scheduling is YSTV's way of making the web stream show programming while we're out of the studio - i.e. broadcasting non-live material over the stream in the style of a traditional TV station. It can be used to make YSTV have 24/7 output, and repeat programmes at different times of day for different audiences. It's the origin of the Scheduling Manager position on the committee, and used to cause many headaches deciding the schedule.

Due to software breakage and incompleteness, YSTV didn't broadcast on a schedule between 2010 and 2013. This was resolved with the completion of Tarantula

Pre-2009: SpiDer and SchedSeven

This section has been preserved from YSTV's old website (pre-2009). Its information is not current and is kept for historical purposes.

The main scheduling hardware is provided by the Hedco network mux - the NetMux.

This provides two 16 input, single output video muxes, and the same for stereo audio. Currently both video boards are fed from the same video sources from the distribution amplifier. Audio comes from the NetMuxBreakout, and currently only uses the campus network audio layer to feed both stream and network outputs via the compressor. For more details of the wiring see NetMuxWiring.

The network mux is controlled over a serial port from the custom NetMuxController built by Rob. This has a series of preset manual settings (to send live shows, vidserv, clock and inform to net / stream) and the Obey switch that gives the computer control system authority over the system. To cut other sources to net, use the mux front panel (for how, see the NetMux page).

The desk controller is plugged into a USB port on the old office PC which is now used to run SpiDer - the heart of the network control system. This accepts command requests from all the possible control sources (a command line interface and SchedSeven currently), and sets the highest priority requests onto the hardware.

The firmware within the NetMuxController is currently being updated to move away from using serial emulation over USB to communicating using a lower level access to the USB and a custom protocol. This custom protocol is defined in SpiderUSBProtocol.


Transcluded from Skedular.

Skedular was the (2009-10) scheduling software. It was written by Michael Cullen to interface with the new website. As of Autumn 2011 it is in the process of being replaced by Tarantula.


Get it from (not which is an old attempt by Alex Appleton that didn't get very far).

You need the Gentoo package libpqxx for this.

In the src directory there are a few shell scripts:

  • - makes the ready-for-installation version
  • - makes a locally running (see the next one) non-daemonising version
  • - makes a locally runnable version (writes logs and gets configs from the current directory)


Transcluded from Tarantula.

Tarantula is YSTV's new scheduling and automation system, to control the Video Server and output matrix, enabling the Scheduling Manager to queue up shows to play on the web stream throughout the day, like a "real" TV channel. It supports text and Flash graphics overlay with CasparCG, playlists, device control via plugins and the ability to automatically schedule short videos such as idents and trailers to fill a specified time period.


User Interface

For users granted access to the system on the website, Tarantula is here. The main view should show yesterday, today and tomorrow's schedule, and a calendar on the left allows selection of other centre dates. Be careful to avoid crossing midnight with an event, as while the event will still run, the user interface will be broken until the event has run.

Seven different types of events can be added using the Add links in the top left; the types and details fields are summarised below. For every event type a Date and Time to start must be set (time in HH:MM:SS format), along with a description. The description is used to display the event on the internal schedule, and also as the show name in the Now or Next graphics.

Pre-recorded Show

Anything from the YSTV back catalogue, with a brief continuity fill at the beginning, where the system will automatically select an ident and a couple of trailers to run before the event, along with generating graphics to show the current and next show, and in-show popups for the same.

Either select a video from the drop-down list, or use the search box and hit the 'Select Video' link in one of the results.

Live Show

Generates the same continuity fill as before, along with a switch to the live show rig and an instruction to PiVT to play a 30-second countdown clock right before the show starts. Will also interact with the director control application so the show can be moved around and delayed as needed.

During a live show, future events will be stalled until the show finishes, and when it does (as marked by the Director Control 'Stop' button) they will be moved around to account for the show running too long or too short.

A duration of the show needs to be filled in to the Length box, in HH:MM:SS form.

Information Slideshow

Shows a series of info slides. Length in HH:MM:SS form.


Shows an analogue clock. Length in HH:MM:SS form.


Exactly like Pre-recorded show, but without any of the continuity filling at the beginning.


Render a custom graphics event, which will be added with some data at the start time, and removed after whatever Length was set to.

Length in HH:MM:SS form, the Template Name field is the name by which the graphic is known to the Video Server and the data fields will allow custom text, such as the now and next text automatically added to the continuity graphics.

Automatic (Lazy) Mode

Fill a length of time with anything from the YSTV back-catalogue, as if it were added as a pre-recorded show. As this isn't a particularly clever system, it could schedule anything (although it will aim to avoid repeating too often), for example Christmas shows in summer, Elections manifestos or Checkmate!

In this mode the description fields are filled in from the video box name on the website.

Idents and Trailers

For videos uploaded to the website which are channel idents or trailers that Tarantula can used to fill in space, set the Video Type and Weighting Factor in the Scheduler Settings box on the video's admin page, either when the video is added or by clicking the pencil icon, and then Update Details.


Tarantula itself is running on ystvstrm1 within a GDB instance in a root screen session. It is written in C++ and the configuration is set by XML files in /opt/Tarantula/config_base.

Synchronisation of the website videos with the Tarantula database is handled by a script in /opt which is run by a cronjob every hour, and pulls the video lists from the website to update the Tarantula list.


Tarantula was developed as an open-source project, so check out the Trac pages at for status on the project and access to the source code to get involved.