PHPackages                             xddesigners/silverstripe-spotify - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. xddesigners/silverstripe-spotify

ActiveSilverstripe-vendormodule[API Development](/categories/api)

xddesigners/silverstripe-spotify
================================

Spotify podcast integration for SilverStripe: syncs shows and episodes from the Spotify API and renders embeddable players.

08PHP

Since Jun 24Pushed 1mo agoCompare

[ Source](https://github.com/xddesigners/silverstripe-spotify)[ Packagist](https://packagist.org/packages/xddesigners/silverstripe-spotify)[ RSS](/packages/xddesigners-silverstripe-spotify/feed)WikiDiscussions main Synced 2w ago

READMEChangelogDependenciesVersions (1)Used By (0)

silverstripe-spotify
====================

[](#silverstripe-spotify)

Spotify podcast integration for SilverStripe. Syncs shows and episodes from the Spotify API and renders embeddable players in your templates.

Features
--------

[](#features)

- Sync podcast shows and episodes from the Spotify API via a CMS action
- Stores episode metadata: title, description, release date, duration, cover image
- Renders Spotify embed players directly in templates
- `PodcastPage` with paginated episode list
- `PodcastBlock` (Elemental) with episode list or full show embed mode
- Translations: EN, NL, DE, FR, IT, ES

Requirements
------------

[](#requirements)

- PHP 8.0+
- SilverStripe CMS 4 or 5
- A [Spotify Developer](https://developer.spotify.com/dashboard) app (Client ID + Secret)

Installation
------------

[](#installation)

```
composer require xddesigners/silverstripe-spotify
```

Run a `dev/build` after installation.

Configuration
-------------

[](#configuration)

Add your Spotify API credentials to your project's `.env`:

```
SPOTIFY_CLIENT_ID="your_client_id"
SPOTIFY_CLIENT_SECRET="your_client_secret"
```

Optionally override the default market in `app/_config/config.yml`:

```
XD\Spotify\Services\SpotifyService:
  market: 'NL'
```

Usage
-----

[](#usage)

### ModelAdmin

[](#modeladmin)

Podcasts are managed under **Podcasts** in the CMS sidebar. Add a podcast, paste the Spotify Show URL or ID into the *Spotify Show ID* field, and save — the title and cover image are fetched automatically. Use the **Sync episodes** button to pull all episodes from Spotify.

### PodcastPage

[](#podcastpage)

Add a `PodcastPage` in the site tree, select a podcast, and set the number of episodes per page. Episodes are listed with a paginated embed player.

### PodcastBlock (Elemental)

[](#podcastblock-elemental)

Add a **Podcast block** to any Elemental area. Choose a podcast and select the display mode:

ModeOutputEpisode listPaginated list of episode embedsPodcast embedSingle show embed playerTemplates
---------

[](#templates)

The module ships templates for both models. Override them in your project by placing files at the same path under `app/templates/`:

- `XD/Spotify/Models/Podcast.ss`
- `XD/Spotify/Models/SpotifyEpisode.ss`

License
-------

[](#license)

BSD-3-Clause © [XD Designers](https://xd.nl)

###  Health Score

21

—

LowBetter than 17% of packages

Maintenance60

Regular maintenance activity

Popularity7

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity11

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/e35b3b006174e7015e9711c27bdee08fb707a816a434276c22dcb6327185c35b?d=identicon)[RVXD](/maintainers/RVXD)

---

Top Contributors

[![RVXD](https://avatars.githubusercontent.com/u/1586761?v=4)](https://github.com/RVXD "RVXD (4 commits)")

### Embed Badge

![Health badge](/badges/xddesigners-silverstripe-spotify/health.svg)

```
[![Health](https://phpackages.com/badges/xddesigners-silverstripe-spotify/health.svg)](https://phpackages.com/packages/xddesigners-silverstripe-spotify)
```

###  Alternatives

[exsyst/swagger

A php library to manipulate Swagger specifications

35816.5M7](/packages/exsyst-swagger)[lucasdotvin/laravel-soulbscription

A straightforward interface to handle subscriptions and features consumption.

709209.3k](/packages/lucasdotvin-laravel-soulbscription)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
