selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

GitHub
Spodcast logo

Self-host Spodcast

v0.5.2

Spotify podcast to RSS proxy with caching

ReleaseOpen SourceGPL-3.0
Updated2 years ago
LanguagePython
Setup difficultyModerate
MobileResponsive
Stars
374
Requires
PHP
Docker
heywoodlh/spodcast
Install with Docker
Spodcast feed manager showing list of showsSpodcast feed manager on small screen (responsive layout)Spodcast feed manager settings screenShow controls with sync, keep, delete, and refresh buttons

What is Spodcast?

Spodcast turns Spotify-exclusive podcasts into standard RSS feeds that work with any podcast app. It has a Python CLI tool and a PHP feed generator. You can run it via Docker, Docker Compose, pip, or from source. It fetches episodes from Spotify's API, stores them locally, and serves them through RSS. A web feed manager lets you add shows, set how many episodes to sync and keep, and schedule updates via cron or an HTTP endpoint. Optional MP3 transcoding (via ffmpeg) helps on devices like iOS that don't support open audio formats. Licensed under GPL-3.0; latest release v0.5.2 from July 2022.

Should you self-host Spodcast?

Spodcast scores 47/100 on selfhost.directory (how scoring works) and ranks #7 of 18 in Podcasts. It has 374 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is GPL-3.0-licensed and written mostly in Python.

Its closest alternative on selfhost.directory is Pinepods (61/100, 1 032 stars). It scores higher overall, so compare the two before you pick. See Spodcast vs Pinepods side by side.

Features

  • CLI standalone mode
  • Cron Scheduling
  • Episode caching
  • MP3 transcodingRequires ffmpeg installed on host
  • Per-show sync and keep settings
  • Skip existing episodes
  • Spotify podcast to RSS conversion
  • Web-based feed manager
  • Webcron endpoint

Spodcast README

How to install Spodcast

Install Spodcast with Docker

Docker
Environment variables
SPOTIFY_PASSWORD, SPOTIFY_USERNAME, SPOTIFY_PODCAST_URLS, CRON_SCHEDULE, MAX_EPISODES, SPODCAST_ROOT, SPODCAST_HTML, SPODCAST_CONFIG_JSON, SPOTIFY_CREDS_JSON, SPOTIFY_RC_PATH, LOG_LEVEL, CHUNK_SIZE, RSS_FEED, TRANSCODE, LANGUAGE, SKIP_EXISTING

mkdir -p /tmp/spodcast echo 'spotify_username spotify_password' > /tmp/spodcast/spotify.rc

docker run -it -v /tmp/spodcast:/data heywoodlh/spodcast -c /data/spodcast.json --root-path /data/html --log-level info --credentials-location /data/creds.json -p -l /data/spotify.rc

docker run -it -v /tmp/spodcast:/data heywoodlh/spodcast -c /data/spodcast.json --log-level info --max-episodes 10 'https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk'

Manual setup with volume mount; run once to login, then run to download

How to configure Spodcast

  • CHUNK_SIZE50000Download chunk size

    Download chunk size

  • CRON_SCHEDULE0 0 * * SunCron schedule for how often spodcast-cron will attempt to download content from Spotify

    Cron schedule for how often spodcast-cron will attempt to download content from Spotify

  • LANGUAGEenLanguage of the content

    Language of the content

  • LOG_LEVELinfoLog level of Spodcast

    Log level of Spodcast

    values: debug/info/warning/error/critical

  • MAX_EPISODES10Max amount of episodes to download per podcast

    Max amount of episodes to download per podcast

  • RSS_FEEDyesCreate an RSS feed for a web server

    Create an RSS feed for a web server

    values: yes/no

  • SKIP_EXISTINGyesDo not re-download episodes that already exist on filesystem

    Do not re-download episodes that already exist on filesystem

    values: yes/no

  • SPODCAST_CONFIG_JSON${SPODCAST_ROOT}/spodcast.jsonLocation of the spodcast config file

    Location of the spodcast config file

  • SPODCAST_HTML${SPODCAST_ROOT}/htmlWhere HTML content will be placed in container filesystem

    Where HTML content will be placed in container filesystem

  • SPODCAST_ROOT/dataWhere all assets will go in the container filesystem

    Where all assets will go in the container filesystem

  • SPOTIFY_CREDS_JSON${SPODCAST_ROOT}/creds.jsonLocation of the file containing Spotify credentials that Spodcast will use to continue logging in

    Location of the file containing Spotify credentials that Spodcast will use to continue logging in

  • SPOTIFY_PASSWORDSpotify password

    Spotify password

  • SPOTIFY_PODCAST_URLSURLs of podcasts to download from Spotify (separated by space)

    URLs of podcasts to download from Spotify (separated by space)

  • SPOTIFY_RC_PATH${SPODCAST_ROOT}/spotify.rcLocation of file containing creds to initially login

    Location of file containing creds to initially login

  • SPOTIFY_USERNAMESpotify username

    Spotify username

  • TRANSCODEnoTranscode to MP3 format (i.e. so iOS devices can play the audio files)

    Transcode to MP3 format (i.e. so iOS devices can play the audio files)

    values: yes/no

Spodcast releases & version history

More in Podcasts

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…