Pixellot offers automated sports production solutions that provide affordable alternatives to traditional video capture, production, and distribution systems for professional and semi-professional sports events. Founded in 2013, Pixellot’s AI technology solution streamlines production workflow by deploying an unmanned multicamera system in a fixed location, with additional angles as required, to cover the entire field, offering a stitched panoramic image. Advanced algorithms enable automatic coverage of the flow of play and generate highlights. Pixellot systems are deployed by broadcasters, production companies, clubs, federations, universities, high schools, sports portals, and coaching solution providers around the globe.
For more information visit: www.pixellot.tv
This document contains proprietary and confidential material of Pixellot Ltd. Any unauthorized reproduction, use, or disclosure of this material, or any part thereof, is strictly prohibited. This document is solely for the use of Pixellot employees and authorized Pixellot customers.
The material furnished in this document is believed to be accurate and reliable. However, no responsibility is assumed by Pixellot Ltd. for the use of this document or any material included herein. Pixellot Ltd. reserves the right to make changes to this document or any material included herein at any time and without notice.
For more information visit: www.pixellot.tv
Copyright © 2024 Pixellot Ltd.
All Rights Reserved.
Pixellot provides its partners with a dedicated Partner API for creating new entities, updating and retrieving them. In addition, a partner can subscribe to Pixellot webhooks to get notification about different significant occurrences.
The idea is that a partner can, for instance, ask for a list of events on startup. When the partner subscribes to the webhooks service, it will get notifications about every significant change (including creation and deletion) and will update its own database. This will omit the need to repeatedly ask for the full list of events to get new events and updates to existing events. The updates can, in this way, be done passively in a push method instead of pull.
Explore Partner API through our official documentation. This resource provides essential information for integrating our services seamlessly into your applications. Find detailed API endpoints, request methods, authentication guides, and error handling instructions.
For more information, visit our REST API documentation at https://app.swaggerhub.com/apis/Pixellot/partner_api/
Available environments:
[Base URL] = api.pixellot.tv/v1 (PROD) - production workloads
[Base URL] = api.stage.pixellot.tv/v1 (STAGE) - tests and integration
All
API requests, except for login, require the “Authorization” header to
be present. Authorization is based on the JWT method. JSON Web Token
(JWT) is a compact, URL-safe means of representing claims to be
transferred between two parties.
Typical authenticated request would be having the following look:
curl https://api.stage.pixellot.tv/v1/venues -H "Authorization: eyJ0eX..."
As Pixellot’s solution contains many components, getting notifications about significant occurrences is one of its key functionalities.
The manner in which this can be achieved is with the Webhooks Subscription mechanism.
In order to use this mechanism, you have to inform Pixellot of your endpoint, your tenant and the type of data to which you want to subscribe.
In response, every time an occurrence happens to such data, Pixellot will POST data to your endpoint along with header “X-Pixellot-Signature” including a hash of the data.
POST [Base-URL]/subscriptions
With body in the following schema:
Where messageType is the subscription name - EventChanges, EventTimestamp, ClipNotification or TeamChange, url is the url to which Pixellot’s platform will post, emails is an email(s), divided by comma, where Pixellot will send notifications on misbehaving subscriptions, and secret is a string that If provided, will be used as the key to generate the HMAC hex digest value in the X-Pixellot-Signature header. This can be used to authenticate the message when received.
e.g.
const crypto = require('crypto');
const originalSecret = 'secret';
const receivedMessage = 'Hook data';
const expectedDigest = '...' // Replace this with the stored hexadecimal digest
const computedDigest = crypto.createHmac('sha1', originalSecret).update(receivedMessage).digest('hex');
if (computedDigest === expectedDigest) {
console.log('Data is consistent.');
} else {
console.log('Data is not consistent.');
}
- PUT [Base-URL]/subscriptions/{id}
Where {id} is the identifier of subscription you want to update
- DELETE [Base-URL]/subscriptions/{id}
Where {id} is the identifier of subscription you want to remove
There are several important to which you can subscribe: EventChanges, EventTimestamp, ClipNotification, and TeamChange.
Please note that other parameters may be added to “labels” later on.
This message will be sent with only the changed data when the event is created, updated or deleted.
Event is scheduled in the Pixellot backend in advance | EventTimestamp and EventChanges Webhooks are called with new event details |
15 min before event start – Pixellot starts automation process – setup cloud, waking up the venue, etc. | EventTimestamp Webhook is called with eventInitStarted |
When event start time has passed and video streams are stable | EventTimestamp Webhook is called with liveHdUrlReady and livePanoUrlReady to indicate live stream availability and provide urls |
At scheduled event end – Pixellot starts event archive process | EventTimestamp Webhook is called with eventEndReached to indicate going off air |
1-5 min after scheduled event end – event archive process ends – VOD streams are available for consuming | EventTimestamp Webhook is called with cloudRecordedHdUrlReady and cloudRecordedPanoUrlReady to indicate cloud recording availability and provide urls |
X minutes after the event end (X depends on event length) – Venue starts to upload local recording to Pixellot cloud | No notification |
Y hours after event end (Y depends on event length, recorded bandwidth and venue bandwidth) – Venue finishes to upload to Pixellot cloud and best quality videos become available | EventTimestamp Webhook is called with locallyRecordedHdUrlReady and locallyRecordedPanoUrlReady to indicate local recording availability and provide urls |
{
"streamName": "hd",
"email": "converted@mp4.com",
"callback": {
"url": "https://callback.com/mp4_result",
"token": "<token>"
}
}