nrkno / sofie-core

Sofie Core: A Part of the Sofie TV Studio Automation System
https://github.com/nrkno/Sofie-TV-automation/
MIT License
125 stars 38 forks source link

RFC: Playlist Bucket Adlibs #1109

Closed ianshade closed 8 months ago

ianshade commented 8 months ago

About me

This RFC is being opened on behalf of TV 2 Norge.

Use case

Buckets are a place where we are planning to store Adlib Actions created by the users, through an external application that uses the HTTP API (https://github.com/nrkno/sofie-core/pull/1070). Currently there is a limitation that we would like to lift: Buckets and their AdLibs are global to a Studio, which makes all Adlibs within a Bucket visible next to any Rundown Playlist in that Studio. We would like to implement a solution making it possible for a Bucket Adlib (Piece or Action) to optionally be associated with a specific Rundown Playlist, so that it is available only in the context of that Playlist.

Proposal

Bucket Adlibs (Pieces and Actions) will have an optional rundownPlaylistId property. The Bucket API will allow for specifying this Id when importing an Adlib. The Bucket representation in the Rundown View will be able to display those Adlibs and make them visually distinct. The initial idea is to display the global and per-Playlist Adlibs inside a Bucket in two groups separated by a divider saying something along the lines of "Local to this Rundown Playlist". Besides this change we don't initially plan any other changes in the Sofie GUI. The Live Status Gateway, when in context of a particular Playlist, will filter the Bucket Adlibs to expose only those that have a matching or undefined rundownPlaylistId. Logic will be added to automatically remove Bucket AdLibs that belong to a Playlist when that Playlist is removed.

Process

The Sofie Team will evaluate this RFC and open up a discussion about it, usually within a week.

mint-dewit commented 8 months ago

Hi and thanks for opening an RFC. Due to the holidays it will take a bit longer than usual to evaluate the RFC, apologies! I expect this will be picked in the new year.

mint-dewit commented 8 months ago

Hi @ianshade and thanks for waiting while we have been on break and evaluating this.

Let me start by stating that we absolutely support the use case of creating adlib actions for a rundown/playlist through an HTTP API such as the one contributed in #1070, however.

Currently there is a limitation that we would like to lift: Buckets and their AdLibs are global to a Studio, which makes all Adlibs within a Bucket visible next to any Rundown Playlist in that Studio

NRK has decided against lifting this limitation right now. This limitation is a core part of the design of the buckets as their intention is a storage place across rundowns for adlibs that a user wants to reuse. Whilst lifting that limitation is fairly trivial from a code viewpoint, we do not have the infrastructure in place to support such conceptual changes long-term and as such it is extremely likely we will break it in the future. Past experiences have taught us that, while it seems like a small detail, it can easily cause rifts across team members and contributors.

Internally in NRK I will propose evaluating how we can start to accept contributions on conceptual matters, as I believe that with a growing number of contributors we will have to be able to do this at some point. So please be assured that this is something we want to be better at.

In the meanwhile, we would love to help you find an alternative way to support your use-case for this change. Some things come to mind such as implementing an (http) API to create rundown ad-libs. Or if you are using a custom ui, perhaps some metadata can be stored on the bucket ad-lib and you can filter for that instead. If you are interested we can set up a time to workshop some of these ideas and I can involve some of the experts from the NRK team on this. Just contact me at mint.de.wit@nrk.no

ianshade commented 8 months ago

@mint-dewit thank you for the answer. Could you please share some insight into what might change about the Buckets in the foreseeable future that would make the proposed addition prone to breaking or hard to maintain in subsequent releases of Sofie?

mint-dewit commented 8 months ago

Ah, the issue isn't so much what we are planning to do about the Buckets in the foreseeable future, I apologise if that wasn't clear from my initial explanation. What we need to take into consideration when evaluating the RFCs is more so about the entire system of Sofie and how the different features interact and are separated on a conceptual level. We understand that this stuff is poorly documented and we do apologise for that. We will look into improving this documentation.

As we really want to see you succeed, we would love to invite you for a workshop to talk about these larger designs and also about how to implement this use-case. Would Tuesday 2pm CEST work for you? Feel free to reach me on any platform to discuss a date and time.

ianshade commented 8 months ago

Thanks @mint-dewit, this won't be necessary. I'm closing this RFC as the proposed change is no longer needed.