Drupal Media Library and Entity Browser setup for editor asset management
Media Library is the core Drupal feature that stores images, documents and video as reusable media entities, so editors pick an existing asset instead of uploading a fresh copy into every article. Entity Browser is a separate contributed module that gives you a configurable selection dialog for embedding or referencing entities in the editor, which matters when the default library picker does not match how your teams work. Bring in a partner when assets are already scattered across content, rights and usage questions are unanswered, or you need custom selection rules such as restricting choices by department, license status or language. Drupal and its contributed modules are licensed under GPL-2.0-or-later and there is no paid edition of Drupal itself, so the cost sits in planning, build, testing and ongoing support rather than licensing.
Start with the media types you actually need, such as Image, Document and Remote video, and decide which fields must be required before an asset can be published, for example alt text, credit line, licence expiry and usage rights. Those fields are what make reuse safe, and they are costly to retrofit once thousands of files exist. Next, decide how Entity Browser views should differ by editor role, which media bundles each view exposes and whether editors may upload from inside the dialog. Confirm the exact Entity Browser release and its Drupal compatibility on the Entity Browser project page before you commit to a version, because the supported Drupal range changes with releases.
Plan the build sequence before you configure anything: audit the existing files, map each reference to the content types that use it, migrate or re-link assets in a test environment, then roll out the browser views to one editor group at a time. Effort depends mainly on the volume and quality of legacy files, the number of content types that embed media, custom selection logic and the training you provide. Ask any partner to quote these as separate line items, and ask what they will test, including file permissions, image styles, search of the library and behaviour after a Drupal core upgrade. A separate digital asset management system is justified when assets must be shared with systems outside Drupal, when rights workflows exceed what Drupal fields can express, or when video processing needs dedicated tooling. Otherwise, a well-modelled Media Library usually covers the editorial need.
What the Media Library and Entity Browser do in Drupal
Drupal treats images, documents and video as entities that content can reference, so the same asset can serve many pages. Core Media and Media Library handle storage and browsing, while Entity Browser adds a configurable selection tool for editors and custom workflows.
Core Media entities
Core Media wraps each file or video in a media entity with its own fields, such as alt text, caption, credit and rights metadata. Content references that entity rather than a raw file, so a correction to the metadata updates every page that uses the asset. Decide early which media types you need (image, document, remote video, and so on) and which fields each type carries, because changing fields later affects existing assets.
Media Library for editors
The Media Library gives editors a browsable, searchable collection of media that they can pick from when they edit content. It suits teams with a moderate volume of assets and a clear set of media types. Test it with real editor roles, folder conventions and upload sizes before you agree on the library layout, since editors judge the tool by how quickly they find an asset.
Entity Browser selection tool
Entity Browser is a configurable tool for browsing, selecting, referencing or embedding entities into the editor. It works with custom entity types as well as media, and you can define several browser views, each with its own widget and filters. Plan which views each content type needs, because a single generic browser often serves editors poorly for specialized fields.
Drupal version support
The Entity Browser 8.x-2.17 release supports Drupal ^10.3, ^11 and ^12. Confirm that every contributed module in your selection stack supports your target core version before you commit, and plan the upgrade path alongside Drupal's release schedule rather than after it.
Reuse across content
Because assets are entities, one image or document can be referenced from articles, landing pages and listings without duplicating files. Reuse also raises questions about rights, takedowns and translations, so define who may edit a shared asset and whether a change should affect every page that uses it.
Licensing and cost
Drupal and contributed modules hosted on Drupal.org are licensed under GPL-2.0-or-later, and there is no paid edition of Drupal itself. Costs come from implementation, configuration, testing and ongoing maintenance, not from licenses. Ask any partner to separate fixed build work from recurring support in the quote.
Which media configuration choices shape editor workflows
This table compares the media configuration decisions that shape how editors find, upload and reuse assets in Drupal. Read each row as a choice you make early, with the column showing when it fits and what it constrains once content exists. The main takeaway is that media types, reference cardinality and the selection tool are hard to change later without migrating existing content.
| Decision | When it fits | What it constrains later |
|---|---|---|
| Media types (image, document, video, remote video) | Separate types when editors need different fields, displays or validation for each asset kind, for example alt text for images and captions for video. | Each type carries its own fields and display modes. Merging or splitting types after content exists means moving entities, so model them before launch. |
| Field and display settings | Add fields such as credit, licence or usage rights when legal or editorial teams need them on every asset. | Required fields apply to new uploads and may block imports of older assets. Display modes control how assets render in every content type that references them. |
| Allowed file extensions and upload destinations | Restrict extensions to the formats your channels can use, and set upload directories by type or year to keep storage organized. | Changing extensions later does not re-validate existing files. Confirm file size limits and storage behavior with your hosting setup and PHP configuration before editors rely on them. |
| Media Library for selection | Choose it when editors browse a shared library and reuse assets across many content types with a standard widget. | Selection is tied to the media types the widget allows. Custom selection rules beyond that usually need a second tool. |
| Entity Browser for selection | Choose it when selection needs custom views, multiple tabs such as upload and search, or a workflow tailored to one field. | Each browser is a configuration to maintain through Drupal upgrades. Test it after every core and contributed module update. |
| Single-value reference field | Fits hero images, thumbnails and one attachment per node where a single asset is the rule. | Switching to multiple values later changes the field storage and may require a data update for existing content. |
| Multi-value reference field | Fits galleries, document lists and asset sets that editors reorder or reuse across pages. | Ordering, limits and display formatters must be designed up front. Editors may need guidance on how many items display well in your templates. |
How a media implementation moves from inventory to editor sign-off
The sequence starts with what assets exist and who may use them, then fixes the media model, selection workflows, storage and migration, and ends with editors proving the setup works for their daily tasks. Each step closes with a written artifact the next step depends on.
Inventory assets and usage rights
Survey the existing image, document and video library, including the folders, shared drives, legacy CMS uploads and third-party sources that editors draw on. Record volume by file type, the content that references each asset, and the licence, expiry and attribution terms that apply to each source. Your content owner and legal or rights contact sign off the inventory, which becomes the rights register used to decide what migrates, what is archived and what is removed. The step is done when every asset category has an owner and a documented rights position.
Design the media type and field model
Define the media types your organization needs, such as image, document, remote video and internal video, and the fields each one carries, including alt text, captions, credit, licence and expiry. Decide which fields are required for publication and which are optional, and whether any field must be translatable. Core Media and the Media Library module provide the base types, and you confirm the field set against the rights register. The output is an approved media type matrix that lists each type, its fields, its validation rules and the content types allowed to reference it.
Map selection workflows per content type
For each content type that embeds or references media, document how an editor should pick, upload and place an asset. Simple reference fields may suit some types, while others need a custom browser that filters by tag, rights status or collection. Entity Browser is the tool to evaluate for custom selection workflows, and the design should state which widget each field uses and why. Walk through each workflow with one editor from each content team on a staging copy. The output is a selection workflow map that names the widget, filters and permissions for every media field.
Decide storage and file path rules
Choose where files live and how they are named and grouped: the file system or object storage backend, the directory pattern for uploads, and whether private files need a separate location. Set rules for file naming, maximum upload sizes, allowed extensions and image styles, and confirm that the chosen storage works with your backup and CDN setup. Infrastructure and security staff review the design because storage decisions affect access control and recovery. The output is a storage and path specification signed off by the platform team, with a test upload showing the path and permissions behave as written.
Migrate existing files with a logged run
Move the assets approved in the rights register into the new media types, mapping legacy fields to the new ones and rewriting references so embedded files still resolve. Run the migration first on a sample set, then on the full set, and keep a migration log that records each source file, target entity, checksum result and any skipped or failed item. Assets without a confirmed rights position stay out of the run and go to a review list. The output is a tested migration log with counts reconciled against the inventory and a list of exceptions with owners.
Test with editors on real tasks
Ask a small group of editors to complete their normal publishing tasks: uploading new assets, reusing an existing image across several pages, attaching a document, adding captions and checking rights fields. Record each defect with the steps to reproduce, fix the issues that block work, and retest the affected workflows. Include at least one accessibility check of alt text and captions, and confirm that permissions stop editors from reusing assets outside their remit. The output is a signed test record listing passed workflows, open defects and the owner of each defect.
Hand over and confirm editor sign-off
Deliver the media type matrix, selection workflow map, storage specification, migration log and editor guide to the operations team and the content owner. Train the editors who will support colleagues, and agree how new media types, widgets and rights categories will be requested and approved after launch. The step closes when the content owner signs the sign-off record, the operations team confirms it can restore and monitor the storage, and the open defect list has an agreed owner for each item.
How reuse across content works and where it breaks
A media entity referenced from several nodes is a single record, so an edit to its file or metadata changes every page that embeds it at once. Core Media stores the file and its fields once and each entity reference field on a node points at the media ID, which is why editors who replace a hero image on one landing page can unintentionally alter a dozen others. Deletion is the harder case. Core Drupal does not provide a reliable, editor-facing usage report for media in the way many teams expect, so before anyone agrees to a delete-or-replace policy, confirm with your build team which usage tracking is in place for your version, whether a contributed usage module is needed, and what the reference field does when the target is missing. Decide whether editors may delete shared assets at all, or whether removal goes through a workflow owned by a content lead.
Editors also get confused by the difference between replacing a file and replacing the asset. Uploading a new file to an existing media entity updates every reference, while selecting a different media item in a field changes only that node. Entity Browser sits in front of the same entities, so the selection widget you configure decides whether an editor sees a shared library, a filtered view by bundle or a personal upload list. Translations add another layer: media fields can be translatable or not, and alt text, captions and file names may need per-language values while the underlying file stays shared. Test each shared asset in every language your site publishes, and confirm that the translated fields show the expected text on the translated node. Access control needs the same care. A user who can view a node may still lose access to a referenced media item if its access rules differ, leaving a broken image or an empty field for that visitor. Test as anonymous users, each editorial role and each language.
DeployOpen scopes this work against your own content model, including which bundles are shared, which fields are translatable, how usage is reviewed and who may delete. The scoping conversation should produce a test matrix (roles, languages, reference fields and delete scenarios) that your team can run before launch and repeat after upgrades. Ask any implementation partner to show that matrix for your site, not a generic demo.
What drives media implementation effort and cost
How does the number of media types affect a Drupal Media Library project?
Each media type, such as image, document, video or remote video, adds its own fields, form display, view mode, and often its own validation and storage rules, so effort grows with the count of types rather than with the number of files. Keep the list short and justify each type by a distinct editorial need. Ask the partner to list every media type, its fields, its allowed file extensions and size limits in the written scope, and which types need custom display templates on the front end. Each extra type should appear as a line item so you can see what it adds.
Why does the volume and format variety of existing assets change the price?
Large libraries and mixed formats add work in three places: the migration run time, the number of edge cases (corrupt files, unusual codecs, duplicate names), and the checks needed to confirm that every asset arrived intact. Reduce this by inventorying the library first, deleting obsolete files, agreeing which formats are in scope, and deciding whether old renditions are kept. Ask for a written inventory summary, a sample migration of representative files, and an explicit statement of what happens to files that fail validation.
What does adding metadata and rights fields cost in a media build?
Every custom field is a schema change, a form change, a display choice and a migration mapping, and rights fields often need validation and reporting logic. Keep required fields to what editors and search truly depend on, such as alt text for images, credit line, usage rights type and expiry date. Ask the partner to show a field list with the owner of each field, the source of its values, and whether the field must be populated during migration or can stay blank.
How much does a custom Entity Browser selection workflow add to the budget?
A custom selection workflow costs more than the stock Media Library because it adds configured widgets, selection rules, and sometimes custom code to match how editors pick assets in a specific form. Limit it to the places where editors truly need a different flow, and reuse one browser configuration across content types where possible. Before you ask for a quote, write down each selection screen, the filters it needs and who uses it. Ask the partner to separate configuration work from custom module work in the estimate.
What does migrating files from a legacy system involve?
Migration covers exporting files and their metadata from the old system, mapping them to Drupal media entities, copying binaries into the target file storage, rewriting references in content, and verifying results. Costs rise when the legacy system has no export tool, when links are embedded in body text, or when file paths are inconsistent. Ask for a mapping document, a dry run on a copy of production data, and a reconciliation report that counts source assets against imported media and lists exceptions.
What is one-time build work and what recurs after launch for media storage?
Build work is one-time: content types, media configuration, Entity Browser setup, migration scripts and editor training. Recurring costs include file storage growth, backups of the file system and database, monitoring disk use, applying Drupal core and contributed module updates, and periodic clean-up of unused media. Storage prices depend on your cloud or data center contracts, so confirm them with your infrastructure team. Ask the quote to show a separate recurring cost estimate and the assumptions behind it.
What should a written quote for media work include?
A useful quote lists scope in terms of media types, fields, selection workflows, migration sources and volumes, editor training sessions and acceptance criteria. It should name deliverables, what the client provides (storage, credentials, sample files, rights decisions) and what is excluded, such as a separate DAM. Ask whether the price is fixed for the stated scope, how changes are priced, what support is included after launch, and whether the Drupal module versions used are current at the time of delivery. Compare quotes on the same scope list, not on headline totals.
When a separate DAM is justified over Drupal media
When assets are created, reviewed and used almost entirely within one Drupal site, the core Media and Media Library modules are usually sufficient. Editors can upload images, documents and video, organize them with media types and fields, and reference the same item from several content types. Entity Browser adds a custom selection interface where a site needs a specific picker, such as restricting choices to a campaign folder or to items with approved rights metadata.
- What Drupal handles well: storage through the file system, media types, field-level metadata, image styles and reuse across nodes.
- What a DAM adds: a separate library with its own taxonomy, check-in and check-out, and search across assets that never appear on the website.
- Integration cost: minimal, because no connector is needed. The cost is in configuration and in agreeing a metadata standard for editors.
- Watch point: if Entity Browser is used for custom selection, its maintenance becomes part of the site's upgrade work.
- Typical outcome: a single-site team with one editorial group rarely gains enough from a separate DAM to justify its running cost.
Confirm with editors which assets they actually need to find and reuse, and whether any of them are ever used outside the website.
When marketing platforms, agencies or partners need the same approved assets, a DAM often becomes the shared source of truth. Drupal can publish media to the web, but it is not designed as the place where external contributors upload, version and license material before it reaches several channels.
- What Drupal handles well: publishing approved assets on the site and keeping them consistent across its own pages.
- What a DAM adds: external user access, version history, usage rights per asset and delivery to campaign tools.
- Integration cost: a sync or API connection between the DAM and Drupal, including how media entities are created, updated and retired when the source changes.
- Ownership question: decide whether Drupal or the DAM holds the master copy, because the answer determines the sync direction.
- Access design: external users should not need Drupal accounts, so their access is governed in the DAM.
Ask each outside party what they upload and download today, and who is accountable when an asset's license expires.
Heavy video work, such as transcoding into several renditions, captioning, chaptering and licensing windows, is where a dedicated media platform is often justified. Drupal can store and embed video, but transcoding pipelines, adaptive streaming and rights management are outside what the core Media module is built to run, so they usually sit in a separate service.
- What Drupal handles well: referencing video entities, displaying players and managing the content that surrounds them.
- What a DAM or media service adds: transcoding queues, renditions, captions, expiry of rights and region restrictions.
- Integration cost: the handoff of renditions and metadata back into Drupal, plus monitoring of failed jobs and storage growth.
- Operational cost: compute and storage that recur with volume, which should be sized from real upload patterns.
- Rights data: agree which system enforces an expiry date, so a lapsed license does not remain live on the site.
When reviewing options, ask for the vendor's documentation on the renditions and rights features you need, and confirm them against your own test files rather than relying on a demo.
When several Drupal sites, brands or regions must draw from one library, a central DAM can prevent duplicate uploads and inconsistent versions. A multisite or Domain Access setup can share some content, but it is less suited to an independent library owned by a separate team across unrelated sites.
- What Drupal handles well: per-site publishing, local editorial control and, within one installation, shared configuration.
- What a DAM adds: one library, cross-site search, a single rights model and one place to retire assets.
- Integration cost: one connector per site, each with its own mapping, caching and failure handling, multiplied by the number of sites.
- Governance cost: agreeing a shared taxonomy and ownership model before the connection is built.
- Upgrade effect: each connector must keep working through every Drupal and DAM upgrade, so the connector count matters for long-term cost.
Count the sites and the editorial teams involved, then ask how many connectors the chosen design needs and who maintains each one.
How media connects to search, APIs, identity and external asset systems
Media items rarely stay inside the Media Library. They get indexed for search, delivered to decoupled front ends, governed by the sign-in model and sometimes synchronized with an asset system outside Drupal. Each connection adds a decision about where the file lives, who can see it and which system owns its metadata.
Search API indexing of media
Media entities can be added to a Search API index so editors and visitors find images, documents and video by name, tag or descriptive field. Decide early which media fields are indexed, whether extracted document text is included, and whether unpublished or restricted media is excluded from results. Test that a search result never exposes a file the viewer is not allowed to download. The indexing choices also affect how much text a backend such as Solr has to hold.
JSON:API delivery of media references
Headless front ends usually need the media entity, its file URL and its image styles, not just an ID. Check how media references appear in the JSON:API response, how image derivatives are generated, and whether unpublished media can leak through a public endpoint. Agree on the fields each consumer needs before the content model is locked, because changing a media reference field later affects every API client.
SSO-controlled editor access
Editors signing in through a corporate identity provider need the right media permissions from their group membership. A SAML service provider such as the samlauth module or an OpenID Connect client can create accounts on first sign-in, but role mapping must be planned so that a new account does not receive upload or delete rights by default. Confirm how deprovisioned users lose access to existing media and whether their uploads remain owned by a service account.
External DAM and object storage
When a digital asset management system or object storage bucket holds the master files, Drupal usually stores references, derivatives or cached copies rather than the originals. Ask who owns the metadata, how renamed or replaced assets are synchronized, and what happens to content when an asset is removed upstream. Contributed modules for remote and object storage can be evaluated against these questions, and the integration choice should be confirmed with the DAM vendor's own documentation.
Drupal integrations context
Identity, search, object storage and API connections for media follow the same patterns as other Drupal integrations, including module maintenance and credential handling. The integrations group covers how each contributed module is chosen and configured, which helps teams avoid building custom connectors where a documented module already fits. Review that guidance before committing to a custom media sync.
Questions teams ask before implementing Drupal media management
Is Drupal core media enough for managing images, documents and video?
For many sites, yes. Drupal core ships Media and Media Library, which cover media types, file and image fields, a browsable library for editors and reuse of an asset across several content items. Teams usually need more when they want custom selection flows inside a content form, multiple asset sources, richer metadata rules or review steps before an asset goes live. Entity Browser, covered on this page, is the usual addition for those selection workflows. Confirm the gaps by testing your real editor tasks against a configured core setup before deciding.
What drives the cost of a Drupal media management project?
The main drivers are the number of media types, the volume and state of existing assets, the number of custom selection workflows, metadata and rights rules, integrations with an external asset source, and how many editor roles need different views. Each adds design, configuration, custom code and testing. Drupal itself has no license fee: Drupal and the contributed files hosted on Drupal.org that derive from it are licensed under GPL-2.0-or-later, so your recurring cost is hosting, maintenance and support work rather than software licenses. Ask any quote to separate one-time build work from recurring upkeep.
How long does a media management scope take to be confirmed?
The duration is set by the written scope, not by a standard figure. Timing depends on the asset inventory, how many workflows need custom work, how fast your rights and metadata decisions are made, and how many review rounds editors need. DeployOpen agrees scope, deliverables and timelines in writing before work starts, so the quote is where the duration is confirmed. Ask for the phases, the dependencies on your team and the points where editor feedback is required.
What must our internal team provide before a media project starts?
Three inputs carry most of the schedule risk. First, an asset inventory: the file types, volumes, current storage locations and any duplicates or orphaned files. Second, written rights rules: who may upload, reuse and publish each asset class, licence expiry handling and any usage limits. Third, editor availability for workflow reviews and acceptance testing. Missing any of these usually shows up later as rework on field configuration or permissions, so ask the partner to list them in the scope before work begins.
Can our own developers build a Drupal media library without a partner?
Yes, if your team has Drupal experience and time for configuration, custom module code and testing. Core Media and Media Library are configured through the admin interface and do not require custom code for basic use. Entity Browser and custom selection flows do require developers who can work with Drupal's entity and form APIs and keep custom code upgradeable. Consider whether your team can also own the testing, the upgrade path and the editor support after launch. A partner is most useful when the scope needs more than configuration and the timeline is fixed.
How does the Drupal 11 and Drupal 12 timing affect media planning?
Plan for the version you will run during the build and for the next upgrade. According to the Drupal core release schedule, Drupal 11 is the current major version, Drupal 12 is scheduled for the week of December 7, 2026, and Drupal 10 reaches end of life on December 9, 2026. Drupal 12 requires PHP 8.5 or later, according to the Drupal.org PHP requirements page. Entity Browser's 8.x-2.17 release supports Drupal ^10.3, ^11 and ^12. Ask for custom media code to be kept small and tested so the upgrade does not reopen the whole asset model.
Do we need a separate digital asset management system?
Often not at the start. A separate DAM is justified when assets need to be shared across several systems outside Drupal, when you need advanced rights workflows, large-scale transcoding, or when a non-Drupal team is the main owner of assets. If the assets are mainly used on Drupal pages, the core Media Library with well-designed media types may be enough. Confirm the integration needs, the rights model and who maintains the DAM before choosing, because connecting two systems adds ongoing sync work.
What security and access checks apply to uploaded media?
Media access should follow the same permission model as the content that uses it. Define who can upload, view, edit and delete each media type, and test that private files are not exposed through public URLs. Confirm file type restrictions, size limits and malware scanning with your security team. Rights rules and licence metadata should be part of the design, not an afterthought. Security testing of the upload paths can be included in scope if your team requires it.
Official Drupal sources for media and selection modules
Before a build starts, treat the Entity Browser project page on Drupal.org as the starting reference for the module itself. The supplied project facts state that the 8.x-2.17 release supports Drupal ^10.3, ^11 and ^12, so the first check is whether your target Drupal core version falls within that range. Confirm the exact compatibility line on the project page at the time you plan, because contributed release metadata changes. Also confirm which Drupal core version your team will run in production, since a module that supports a version today may not be the one you ship in twelve months.
Next, read the Drupal core release schedule to plan around version support. The supplied facts say Drupal 11 is the current major version, Drupal 12 is scheduled for the week of December 7, 2026, and Drupal 10 reaches end of life on December 9, 2026. Map those dates against your launch and your maintenance window, and ask whether the media and selection modules you choose are tested against the versions you will be on at each stage. Security releases follow a fixed Wednesday pattern, so build that cadence into your patching process rather than treating it as ad hoc.
Finally, check the Drupal licensing page before you commit to a design. Drupal and contributed modules hosted on Drupal.org are licensed under GPL-2.0-or-later, and there is no paid edition of Drupal itself, so any paid asset management or digital asset management product is a separate decision with its own license terms. Ask your team to record the license of each module and any third-party library a custom selection workflow depends on, and to confirm those terms with the relevant vendor or your legal counsel before go-live.
How DeployOpen scopes and delivers Drupal media implementations
DeployOpen plans, builds, documents and supports self-hosted Drupal inside your own cloud accounts, data centers or air-gapped networks. For media, that means a written scope covering media types, the Media Library setup, any Entity Browser selection workflows and the editorial rules that govern how assets get reused across content.
How we scope
- Inventory the asset types editors handle, such as images, PDFs, video and audio, and the fields each needs.
- Map which content types embed media and whether editors need one asset reused across pages.
- Agree in writing which Entity Browser selection workflows are in scope and which are deferred.
How we build
- Configure media types, field definitions and Media Library views, then add custom selection workflows where core falls short.
- Build and test Entity Browser configurations against Drupal ^10.3, ^11 or ^12, matching your chosen core version.
- Verify permissions, file storage paths and access rules with editor test accounts before content is loaded.
How we hand over
- Deliver the configuration, custom code and a written guide covering media types, roles and naming conventions.
- Document a go-live checklist for file migration, alt text requirements and rights metadata fields.
- Walk your editors and administrators through daily tasks and record the decisions behind each setting.
How we support
- Offer ongoing support, upgrades and continuous testing as a retainer after launch, if you want it.
- Plan module updates against Drupal core release timing so media configuration stays compatible.
- Review the cost of a separate digital asset management system as your library and integrations grow.

