FilmLight API for Baselight - FLAPI

FilmLight API

Baselight v5 has joined the exclusive club of motion picture finishing systems that expose the application features via an API.

Baselight’s API is called FLAPI which is pronounced as “flappy” according to FilmLight’s Martin Tlaskal. It stands for Film Light API.

Let not the acronym confuse you. This is an industrial strength tool and FilmLight is just getting started.

An API is a set of software tools that allow developers to create applications that interact with another software like Baselight. What does that mean if you’re a Baselight colorist or an assistant?

It means that many onerous tasks like logging metadata can be automated. It also means that third party developers can create symbiotic applications that provide entirely new features that don’t exist in Baselight. This opens up the door to pipeline and workflow enhancing tools similar to the Meta Fide apps for DaVinci Resolve.

FLAPI is actually a set of multiple APIs for several popular languages. There are Python, JavaScript, and Node.js APIs, as well as the bindings for Java.

The Film Light API is built with a modern post production facility in mind where multiple seats of Baselight use a common database to collaborate on projects.

The communications protocol uses WebSockets making it very simple to control not only a specific in-house Baselight, but also to control off-site Baselights. In fact, the very first day I had FLAPI up and running I was using my laptop to connect to a remote Baselight from 12 miles away.

The implications are many. With some content security precautions in place, it’s possible to create a system where an on-set Baselight automatically sets up a job at the home facility so everything is ready when the media arrives. It’s also possible to create an in-house system where the operations personnel can monitor job stats in real time.

FLAPI supports signals which can trigger events in the the external script or an application. For example, a change in the grade can trigger a third party app to refresh shot thumbnails.

The documented classes and methods are primarily concerned with job and scene management, LUT and CDL insertion, and media render. There are no documented API classes or methods in Baselight v5.2 that allow transport control or grade manipulation.

This Python 2.7 script demonstrates the simplest use case of fetching the Baselight application info:

#! /usr/bin/env python
import flapi
conn = flapi.Connection('localhost')
if conn.connect():   
    print conn.Application.get_application_info()

FLAPI examples on Github.

Watch a video tutorial showing how you can connect to Baselight using the API.