Background and Problem
Drupal core is an amazing content structuring tool with options to give rich structure to basically everything in the system. While Drupal core includes basic file and image support, it is a far cry from what a modern web system should support out of the box for media handling. External media cannot be embedded easily in core and media cannot be reused.
Due to very limited functionality provided by core it is also very hard for contrib to build on top of it. Core should provide base APIs, design patterns and paradigms to guide contrib work.
Provide a three-pronged implementation approach to media solutions, that involves three distinct groupings of functionality targeted at different use cases: Media Essentials, Extras and Extend. Three key objectives of this approach are to:
- Involve new contributors to help existing media team members to create a Media Essentials suite as a minimum viable solution that provides a basic group of media functionality in Drupal 8 core by 8.3's release candidate. Solutions built as part of this should also provide solid foundations for all work that will be part of other two groups of functionality.
- Media Extras suite to provide a group of rich media entity/editing functionality in contrib, which will eventually be integrated into Drupal 8 core once stable.
- Enable new contributors to use the Media Extend functionality in Drupal 8 to integrate 3rd party media tools/Digital Asset Management systems (DAMs) within the overall ecosystem of Drupal media modules.
The overall experience for end users should be seamless regardless of which media modules their site happens to be using, and the implementation should be straightforward for site builders, architects and developers based on solid documentation in the Drupal 8 Media Handbook.
Process and where to find it
The initiative has weekly meetings in #drupal-media on Freenode IRC at 2pm GMT on Wednesdays.
This functionality will be the MVP for Media in Drupal 8 core. The objective of this MVP is to provide a simple media solution to make Drupal 8 easy to use out of the box for basic use cases. This MVP can ideally be achieved in a short time -- to be included in Drupal 8.3 RC1 (even as an experimental modules if needed to begin with). This goal can also ideally be achieved with the help of some of the new contributors/development efforts, assisted by the existing media team members.
For more information about this part of the plan see the related issue:.
Media extras will build on top of core to provide missing functionality such as multi-file upload, image cropping, advanced embedding, browsing and reusability scnarios etc. The target use case for this functionality will be small-to-large publisher or large enterprises with more complex media needs that the average user (but will fall short of requiring a DAM). It is our goal to move any relevant pieces of this group to core when they are stable enough.
Most of the modules to deliver this functionality already exists in Drupal 8 contrib; as such, integrating this into core will largely involve re-purposing existing modules and making necessary revisions to add this functionality to Drupal 8 core. Once modules in contrib are complete/stable, efforts will be undertaken to incorporate this functionality into future versions of D8 core (e.g., by Drupal 8.4 or 8.5 release candidates). This will effectively move parts of the Media extras suite into core and improve its feature set.
More advanced functionality will always (or for a longer period of time) reside in contrib (as with some other key/complex modules recently added to core - e.g., views, date, multilingual, etc.). This approach should be fine for the target users/use case, since they are more likely to be able to navigate implementing contrib modules. Contrib situation will also be easier to understand since core will provide much better guidelines and patterns.
All "80% use cases" functionality should eventually become part of core. Everything else that will cover very specific cases will most likely stay in contrib in the foreseeable future.
This effort involves the existing Drupal 8 media modules. Modules that are currently considered part of the Media extras are:
- Entity embed
- URL embed
- Entity browser
- Crop API
- Image widget crop
- Focal point
- Field formatter
- Fallback formatter
Not in scope
In addition to the above Media Essentials and Extras functionality, a third group of very advanced media functionality will also be available in Drupal 8 that will be focused on extending Drupal to integrate closely with third party media platforms -- particularly Digital Asset Management (DAM) systems (e.g., Bynder, Entermedia, Brightcove, ThePlatform, Ooyala etc.). The target use case for this functionality will be very large enterprises/publishers that will commonly rely on third party media tools to help manage large libraries of media assets (e.g., hundreds or thousands of media assets), which can often involve complex licensing, advertising or related functionality.
The architecture and timeline for this extendibility has yet to be determined. However, ideally this can be accomplished in a manner that allows for new contributors to help create the functionality in a consistent manner that allows for easy/consistent implementations with a consistent end user experience (i.e., in contrast to the stand alone/inconsistent implementation in Drupal 7 -- e.g., where implementations of tools such as Brightcove and Entermedia were largely stand alone solutions that weren’t able to be integrated into the media ecosystem). As an example, work has been underway to implement Brightcove functionality in Drupal 8, and ideally this implementation can be a seamless part of the overall media functionality/ecosystem in Drupal 8.
Media Extend will be based on tools provided in Media Extras enriched with heavily enterprise oriented and/or custom solutions.
The proposed outline above builds on some of the recent Drupal Media status updates (see Jul 2016 NYC Camp Media Sprint update or May 2016 DrupalCon Nola Media Summit Status Update Presentation or Sep 2015 DrupalCon Barcelona Media Status Update) and some of the Drupal Media Initiative planning. Thanks to Dave Reid and Janez Urevc for their leadership of media efforts in recent years, and the dedication and contributions of Aaron Winborn which helped lay the foundation for our Drupal 8 efforts.
Existing core features
- File listing
- Embedding of images (through upload)
- File usage tracking
- Image and file fields (with relevant widgets and formatters)
- Alt and title fields on images
- Description field on files
Open core issues
Team and resources
Existing members of the Media initiative:
- Janez Urevc (slashrsm)
- Adam Hoenich (phenaproxima)
- Samuel Mortenson (samuel.mortenson)
- Marcos Cano Miranda (marcoscano)
- Christian Fritsch (chr.fritsch)
- Mladen Todorovic (mtodor)
- Gábor Hojtsy
- László Csécsy (Boobaa)
- Primoz Hmeljak (Primsi)
- Tadej Baša (paranojik)
- Daniel Wehner (dawehner)
- Sascha Grossenbacher (Berdir)
- Miro Dietiker (miro_dietiker)
+ new contributors (critical for success of the initiative).
Our goal is to organize few focused week long sprints to push the initiative forward. It is absolutely crucial to have all of the core members attend those sprints. Details about dates, location, funding are still to be defined.