Skip to content

Media Types

Purpose: Create custom media source plugins to integrate third-party services (APIs, platforms), extend oEmbed sources, manage metadata attributes, map fields, generate thumbnails, and configure display/form widgets.

I Need To...

I need to... Guide Summary
Decide between core/contrib/custom media types Media Type Selection Strategy Starting a media integration project and deciding whether to use core media types, contrib modules, or build a custom media source plugin.
Choose the right base class for a custom plugin Base Class Selection Building a custom media source plugin and choosing which base class to extend (MediaSourceBase, File, or OEmbed).
Understand the media source architecture Architecture Overview Understanding how media source plugins fit into Drupal's entity and plugin systems before implementing custom functionality.
Create a custom API integration plugin Custom Media Source Plugin Integrating a third-party API or custom service that doesn't support oEmbed and no contrib module exists.
Extend oEmbed for Instagram/Twitter/TikTok Extending OEmbed Sources Service supports oEmbed protocol but needs custom URL validation, additional metadata extraction, or provider-specific handling.
Extract and provide metadata attributes Metadata System Defining what information a media source can provide and implementing the extraction logic.
Map metadata to entity fields Field Mapping Making metadata searchable, filterable in views, or editable by site builders through the field mapping UI.
Generate and cache thumbnails Thumbnail Generation Providing thumbnails for Media Library display and media entity views.
Inject services (HTTP client, logger, cache) Dependency Injection Media source plugin needs services like HTTP client, logger, cache, file system, or custom services.
Validate source field values Validation Constraints Validating source field values before saving media entities (URL patterns, API connectivity, file types).
Configure display and form widgets Display Configuration Customizing how media source fields are displayed in views and edited in forms when media type is created.
Apply security best practices Security Best Practices Every media source plugin must implement security measures to prevent common vulnerabilities.
Optimize performance and caching Performance Optimization Media source plugin causes slow page loads, high API usage, or database performance issues.
Test media source plugins Testing Strategies Ensuring media source plugin works correctly across different scenarios and preventing regressions.
Avoid common mistakes Anti-Patterns Avoiding common mistakes that lead to maintenance problems, security issues, or performance degradation.