/ontime

Time keeping for live events

Primary LanguageJavaScriptOtherNOASSERTION

ontime_test_CI Ontime build License: GPL v3 Documentation in Gitbook

Download the latest releases here

Download MacOS Download Windows Download Linux Get from Dockerhub

Ontime

Ontime is an application for managing event rundowns and running stage timers.

It allows a center application to be able to distribute event information in the local network. This minimises needs for using Media Server outputs or expensive video distribution while allowing easy integration in workflows including OBS and d3.

App Window

Views

Using Ontime

Once installed and running, ontime starts a background server that is the heart of all processes. The app, is used to add / edit your running order in the event list, and running the timers using the Playback Control function.

From here, any device in the same network with a browser is able to render the views as described. This is done by reaching the ontime server at the default port 4001 eg: localhost:4001 or 192.168.1.3:4001 You can then use the ontime logo in the top right corner to select the desired view (event in the lower thirds view, where it is hidden).

In case of unattended machines or automations, it is possible to use different URL to recall individual views and extend with using the URL aliases feature

For the presentation views...
-------------------------------------------------------------
IP.ADDRESS:4001            > Web server default to presenter timer view
IP.ADDRESS:4001/timer      > Presenter / Stage timer view
IP.ADDRESS:4001/sm         > Stage Manager / Backstage view
IP.ADDRESS:4001/public     > Public / Foyer view
IP.ADDRESS:4001/pip        > Picture in Picture view
IP.ADDRESS:4001/lower      > Lower Thirds
IP.ADDRESS:4001/studio     > Studio Clock
IP.ADDRESS:4001/cuesheet   > Cue Sheet

...and for the editor (the control interface, same as the app)
-------------------------------------------------------------
IP.ADDRESS:4001/editor

More documentation available here

Feature List (in no specific order)

  • Distribute Data over network and render in the browser
  • Different screen types
    • Stage Timer
    • Backstage Info
    • Public Info
    • Picture in Picture
    • Studio Clock
    • Make your own?
  • Configurable realtime Lower Thirds
  • Cuesheets with additional custom fields
  • Send live messages to different screen types
  • Ability to differentiate between backstage and public data
  • Manage delays workflow
  • Open Sound Control (OSC) Control and Feedback
  • Integrate with hardware using Companion or one of the APIs
  • Roll mode: run independently using the system clock
  • Import event list from Excel
  • URL Aliases (define configurable aliases to ease onsite setup)
  • Logging view
  • Edit anywhere: run ontime in your local network and use any machine to reach the editor page ( same as app)
  • Multi platform (available on Windows, MacOS and Linux)
  • Headless run (run server only, configure from a browser locally)
  • Countdown to anything!: ability to have a countdown to any scheduled event

Unopinionated

We are not interested in forcing workflows and have made ontime, so it is flexible to whichever way you would like to work.

  • You do not need an order list to use the timer. Create an empty event and the OSC API works just the same
  • If you want just the info screens, no need to use the timer!
  • Don't have or care for a schedule?
    • a single event with no data is enough to use the OSC API and get going
    • use the order list to create a set of quick timers by setting the beginning and start times to 00:00 and 00:10 (BAM! 10 minute timer). You can quickly recall this with OSC as always

Rich APIs for workflow integrations

The app is being currently developed to a wide user base, from broadcast to entertainment and conference halls.

Taking advantage of the integrations in Ontime, we currently use Ontime with:

  • disguise: trigger ontime from d3's timeline using the OSC API, render views using d3's webmodule
  • OBS: render views using the Browser Module
  • QLab: trigger ontime using OSC API
  • Companion: Ontime has a companion module. Issue report and feature requests should be done in the repository getontime/ontime

Make your own viewer

Ontime broadcasts its data over websockets. This allows you to build your own viewers by leveranging basic knowledge of HTML + CSS + Javascript (or any other language that can run in the browser).

See this repository with a small template on how to get you started and read the docs about the Websocket API

Headless run️

You can self host and run ontime in a docker image, the run command should:

  • expose the necessary ports (listen in Dockerfile)
  • mount a local file to persist your data (in the example: $(pwd)/local-data)
  • the image name getontime/ontime

The docker image is in available Docker Hub at getontime/ontime

docker pull getontime/ontime
# Port 4001 - ontime server port
# Port 8888 - OSC input, bound to localhost IP Address 
docker run -p 4001:4001 -p 127.0.0.1:8888:8888/udp --mount type=bind,source="$(pwd)/ontime-db",target=/server/preloaded-db getontime/ontime

or if running from the docker compose

docker-compose up

Roadmap

Continued development

There are several features planned in the roadmap. These will be implemented in a development friendly order unless there is user demand to bump any of them.

  • HTTP Server (vMix integration)
  • Improvements in event interface
  • Moderator view
  • New playback mode for cumulative time keeping
  • Lower Third Manager
  • Reach Schedule: way to speedup timer to meet a deadline

Issues

If you come across any bugs, please open an issue. Usually bugs get fixed pretty quickly when reported

Unsigned App

When installing the app you would see warning screens from the Operating System like:

Microsoft Defender SmartScreen prevented an unrecognised app from starting. Running this app might put your PC at risk.

or

Ontime can't be opened because it is from an unidentified developer

or in Linux

Could Not Display "ontime-linux.AppImage

You can circumvent this by allowing the execution of the app manually.

  • In Windows: click more and select "Run Anyway"
  • in macOS: after attempting to run the installer, navigate to System Preferences -> Security & Privacy and allow the execution of the app
  • In Linux: right-click the AppImage file -> Properties -> Permissions -> select Allow Executing File as a Program

Long story short: Ontime app is unsigned.
Purchasing the certificates for both Mac and Windows would mean a recurrent expense and is not a priority. This is unlikely to change in future. If you have tips on how to improve this, or would like to sponsor the code signing, please open an issue, so we can discuss it

Safari

There are some issues with Safari versions lower than 13:

  • Spacing and text styles might have small inconsistencies
  • Table view does not work

There is no plan for any further work on this since the breaking code belongs to third party libraries.

Help

Help is underway! ... and can be viewed here

License

This project is licensed under the terms of the GNU GPL v3