feat: #3624670 Add a Remote audio media type for externally hosted audio

Adds a Remote audio media type so an editor can reference audio hosted on an external service (SoundCloud, Spotify, Mixcloud) from the same media library as uploaded audio files.

Issue: https://www.drupal.org/project/varbase_media_base/issues/3624670

Why

Drupal core ships a local audio media type (core/recipes/audio_media_type, already applied by this recipe) and a remote video one, but nothing for externally hosted audio. A site that wants an editor to pick, from one media field, either an uploaded audio file or a SoundCloud / Spotify / Mixcloud episode has no remote option, and no drupal_cms_* recipe provides one either.

Core's oEmbed source has exactly one derivative, oembed:video (Drupal\media\Plugin\media\Source\OEmbedDeriver), and the allowed providers are per media type in source_configuration.providers - so the core source plugin is reused as is and no new plugin is needed.

What changed

  • media.type.remote_audio - source oembed:video, providers SoundCloud, Spotify, Mixcloud
  • field.storage.media.field_media_oembed_audio (string) and field.field.media.remote_audio.field_media_oembed_audio
  • default and media_library form displays, default and media_library view displays
  • 17 permission lines in recipe.yml: the same per-role permissions the recipe already grants for remote_video

It mirrors Drupal core's own remote_video_media_type recipe file for file. No new Composer or contrib dependency.

Note to the reviewer

This branch is based on the branch of issue #3624669, so the MR currently also shows that issue's one-line strict: false change. It will be rebased onto 1.0.x once #3624669 is merged.

AI-Generated: Yes

Checkpoints:

  • File an issue
  • Addition/Change/Update/Fix
  • Testing to ensure no regression
  • Automated unit testing coverage
  • Automated functional testing coverage
  • UX/UI designer responsibilities
  • Readability
  • Accessibility
  • Performance
  • Security
  • Developer Documentation
  • User Guide Documentation
  • Reviewed by human
  • Code review by maintainers
  • Full testing and approval
  • Credit contributors
  • Review with the product owner
  • Release notes snippet
  • Release
Edited by Rajab Natshah

Merge request reports

Loading
Loading