It’s been awhile since my last blog post - in fact, my last blogpost was in September 2016. Well, I can think of a lot of very very good reasons and excuses. Like “I worked so hard building awesome demos with Awesome Nuxeo I could not find time for a blog”. Or “I wrote technical documentation explaining Amazing Nuxeo instead”. Or “I missed my train because there was a power outage and my alarm clock did not ring”. Or “My favorite coffee shop, where I used to write my blogs, closed, so I have no place to go”.
I’ll leave it to you to pick which one of those excuses sounds most plausible, but I’m happy to be back on the Nuxeo blog again!
On the Nuxeo Platform and Nuxeo Studio fronts, things have changed a lot in a year and half. Awesome new features and Nuxeo Platform evolutions, and Gartner positioned Nuxeo as Visionary in their 2017 Magic Quadrant for Content Services Platforms (although we’ve known that for awhile now). Nuxeo Studio now has a Modeler and a Designer and allows for configuring the new Nuxeo Web UI, etc.
So back to the purpose of this article: Nuxeo Studio rocks! And one of its features really rocks since almost its beginning: External Templates.
These templates are Studio projects that are copied (duplicated) inside your current project. So, you get everything: document types, workflows, automation chains… For example, if you want to look at the default Nuxeo workflows (serial and parallel document reviews) and learn how they are built, just import the “Default Nuxeo Platform Workflows Configuration” template and begin exploring!
The template I really want to talk about is a new one (as per February 2018*) — the Video Utils template.
This template applies wrappers around the miscellaneous video operations available in Nuxeo (since LTS 2016) to slice, watermark and merge videos. They encapsulate the operations inside automation chains and provide UI elements to display buttons within the UI.
Once a video has been edited, it can be:
• Stored in the
files:files schema, aka “Attachments” in the UI
• Stored in the
vid:transcodedVideos schema, aka “Renditions” in the UI
• Or used to create a new Video document
Don’t take my word for it (OK, you could, but a demo is worth a thousands words):
Once the template has been imported, you will have many objects to explore and/or use:
Immediately after importing all these objects, there are three primary things you’ll want to do:
- Read the Automation Script chain named
videoUtils_README. This is very important and you want start here… Because a) I spent time to write it just for you :) and b) it explains everything: The main purpose, limitations, how to install the buttons in the correct
- Install the buttons in the correct
BLOB_ACTIONSslot (yes, I am repeating half of previous sentence. But it’s quick, just a copy/paste - and voilà.)The main point here is that, for an optimal user experience, the buttons should be displayed only for the main blob, which is in
file:content. You don’t want them to be displayed for any blob listed in the attachments since they will fail if clicked from there - because they expect to work on
file:content, not on an entry in
- Explore the configuration: The automation chains and the Polymer elements, mainly.
As this is an external template, feel free to modify and/or duplicate-and-modify as you wish.
For example, the button that performs the watermarking is displaying a
nuxeo-document-suggestion widget that uses the
VideoUtils_Watermark_PageProvider page provider. This page provider pre-filters the query by searching for images containing “watermark” in their
ecm:tag field. So in order to test it, you must have your logos ready and make sure you’ve added a tag labelled exactly “watermark” (maybe you want to change that, maybe you want to hard-code the watermark, allow for a search with no limit…).
I hope you will enjoy this template: It shows some video features. Really, only some. The platform can do much, much more, it can literally do anything, any transformation from any format to any format with any modification in the middle. By default, this template can do whatever FFmpeg can (which is a lot), and since LTS 2017, whatever AWS Lambda can.
Also, as an extensible platform, you can literally plug and use any other tool you wish.
Talk to you in 18 months!
(*) If, at the time you read this article, the year is 2019 or above, then it is technically not that new.