The Media Service enables you to manage large content catalogs as part of an OTT (over-the-top) streaming solution. It allows you to manage hundreds of thousands of media entities (Movies, TV shows, Seasons, Episodes, etc.), including license management for multiple regions.
It offers automated workflows to ingest media metadata and orchestrate the transcoding, encryption, packaging, and publishing of the related video assets and the import of image assets. The system is designed to handle valuable studio content in a secure way. It enables customers to validate and publish the metadata to the catalog service from where the content is available to all end-user devices.
The micro-service backend and the micro-frontend are available with their full source code as a part of the OTT template. It enables you to use all the existing functionality and to fully adjust it to your business needs.
The micro-frontend workflows offer an intuitive GUI which is implemented in React. This GUI uses a common set of UI components, provided by the Mosaic UI library. Mosaic uses Piral as the micro-frontends engine. The workflows are fully customizable as they use the reusable components of Mosaic. You could also add your own implementations. The micro-frontend interacts with the media microservice backend via its GraphQL API.
The media workflow project produces a package that gets loaded into the Orchestration Application to provide the OTT media stations, tiles on the homepage, and, potentially, some extensions. See the Mosaic developer documentation for a full description of how the micro-frontends are registered.
The OTT media workflow package implements workflows to manage movies, TV shows, seasons, episodes, and collections. Each of them registers a tile on the homepage that starts the workflow to view and manage the corresponding entities. In addition to those tiles, the template also adds tiles for the ingest, snapshot registry, and settings for the movie and TV show genres.
The definitions of all movie related stations reside inside the
Stations/Movies folder. Most of them consist of a React component file,
a GraphQL query definition file, and, potentially, a Sass styles file.
When a user selects the
Movies tile on the homepage, the
will be loaded. The explorer station shows all the movies in the media
service in a sortable and filterable list. The filters, grid columns, and renderers
can be customized for your specific business needs or preferences.
Clicking one of the movies opens the details station of the movie. Additionally, there are also bulk operations available. For the movies, those include: to bulk create snapshots, publish or unpublish them, and delete multiple movies.
MovieDetails station provides ways to change the details of a movie itself
(title, synopsis, description, etc.) but also to change its related data (tags, genres,
cast, etc.). The template uses controls from the Mosaic UI library but you can
easily create/use your own controls as well. In the
the licensing information can be managed and further customized.
MovieImageManagement stations provide options
to manage the video and image assignments. The stations make use of extensions
provided by the (managed) Video and Image service that provide components for browsing
and selecting as well as displaying the metadata of the assigned videos and images,
so the stations just need to care for storing and updating the assigned element ids.
Images have a specific
image type. The image management station uses this to allow
only images of a specific type to be assigned to the corresponding properties
movie cover vs
The publishing process and snapshot overview and details section allow to publish and unpublish the movies. The snapshot overview and detail stations show the history of snapshots and publications and are fully customizable.
TV shows are collections of seasons that contain episodes. They are managed in a similar way to movies. Therefore, most of what was written in that section, applies here as well.