PodcastChaptersUrlProvider
Registers on the benecaster_feed_podcast_episode_tags filter (priority 10, 3 args) and injects a chapters entry (url + type) into the episode tag map when the episode has authored chapters AND no upstream caller has already set the chapters key. PodcastIndexNamespace::render_episode() handles the actual <podcast:chapters> XML emission. The URL points to EpisodeChaptersController’s JSON endpoint.