Bock Media: a self-hosted Alexa skill + music server to replace the deprecated Plex Alexa skill

Bock Media: a self-hosted Alexa skill + music server to replace the deprecated Plex Alexa skill

Hello :waving_hand:

The official Plex Alexa skill quietly disappeared from the skill store a while back and I haven't seen a clean replacement discussed here. I've been running a self-hosted solution for a few months now and it's been solid, so figured I'd share it for anyone else who lost that workflow.

It's called Bock Media and it's open source: GitHub - andystumpf/bock-media: Self-hosted local music server + custom Alexa skill โ€” stream your own library on any Echo by voice. ยท GitHub

Live DEMO https://bock-media.onrender.com It might take a min to spin up.

Two features I can't live without now:

Automation โ€” playlists can be scheduled to play on specific Echos at set days and times. Coffee's brewing, music's already playing. No voice command needed.

r/homeautomation - Bock Media: a self-hosted Alexa skill + music server to replace the deprecated Plex Alexa skill|750xauto

Phone as a remote โ€” open http://<your-server-ip>:3001 in your phone browser on the same network and you get a full playback remote. Start/stop music, switch playlists, change the volume. No app install. This was something I always wanted and never had with the original skill.

r/homeautomation - Bock Media: a self-hosted Alexa skill + music server to replace the deprecated Plex Alexa skill|750xauto

r/homeautomation - Bock Media: a self-hosted Alexa skill + music server to replace the deprecated Plex Alexa skill|750xauto

Bock Media is a self-hosted Flask server + custom Alexa skill that lets any Amazon Echo play music straight from your local library. It indexes your library into a local SQLite cache, streams audio over a Cloudflare tunnel, and includes a full web admin console to manage everything.

GitHub: GitHub - andystumpf/bock-media: Self-hosted local music server + custom Alexa skill โ€” stream your own library on any Echo by voice. ยท GitHub

Full feature rundown

:studio_microphone: Voice playback on any Echo โ€” playlists, artists, albums, tracks, genres, even audiobooks. Uses the invocation "bock media."

Fuzzy matching handles close-enough spoken names. Full AudioPlayer transport: pause, resume, next/previous, shuffle, loop.

:musical_note: Plex playlist sync โ€” pulls your Plex audio playlists in near real-time, so whatever you've curated in Plex is immediately available by voice. Voice "add this to playlist" can even write back to Plex.

:bar_chart: Web admin console โ€” dashboard, now playing, analytics (Chart.js listening history, heatmaps, top artists/tracks), playlist management, device management, and more. And as I mentioned โ€” it's fully usable from your phone browser on the LAN.

r/homeautomation - Bock Media: a self-hosted Alexa skill + music server to replace the deprecated Plex Alexa skill|300xauto

:speaker_high_volume: "Play on device" + Automation โ€” push a playlist to a specific Echo from the web UI, or schedule playlists to auto-start at set times on chosen devices (via the unofficial Alexa API, same as Home Assistant uses).

:locked_with_key: Proper Alexa security โ€” full request-signature verification, cert validation, application ID pinning. The public tunnel only exposes the endpoints Alexa actually needs.

:zzz: Sleep timer, stop-after-N, never-play-again โ€” all by voice.

Try it in 2 seconds

There's a demo seed script that generates a fictional library + listening history so you can click through the entire admin console without music files, an Echo, or a Plex server.

bash

Clone repo or git clone GitHub - andystumpf/bock-media: Self-hosted local music server + custom Alexa skill โ€” stream your own library on any Echo by voice. ยท GitHub cd bock-media pip install -r requirements.txt python3 scripts/seed_demo_data.py --config --alexa-remote PORT=3001 python3 server.py

Then open http://localhost:3001.

What you need for real use

All free! Unless you want to buy a domain for a couple buck instead of using the free cloudflare tier!

  • Python 3.10+, ffmpeg
  • A Cloudflare account + named tunnel (free tier works)
  • An Amazon Developer account to host the custom skill (dev mode is fine, no certification needed for personal use)
  • Your existing Plex library or any folder with music / songs_cache SQLite index

:speaker_high_volume: "Play on device" โ€” push a playlist to a specific Echo directly from the web UI without saying anything.

:zzz: Sleep timer, stop-after-N songs, never-play-again โ€” all by voice.

Try it without any hardware

A demo seed script generates a fictional library and listening history so you can explore the full admin console before committing to the setup:

bash

git clone GitHub - andystumpf/bock-media: Self-hosted local music server + custom Alexa skill โ€” stream your own library on any Echo by voice. ยท GitHub cd bock-media pip install -r requirements.txt python3 scripts/seed_demo_data.py --config --alexa-remote PORT=3001 python3 server.py

Open http://localhost:3001 and click around.

What the setup actually requires

  • Python 3.10+, ffmpeg
  • A Cloudflare account + named tunnel (free tier is fine)
  • An Amazon Developer account for the custom skill (dev mode works, no certification needed for personal use)
  • Your existing Plex library

Worth noting: it uses the same unofficial Alexa API that Home Assistant's Alexa Media Player integration uses, so the "Play on device" and Automation features carry the same caveats โ€” cookies expire, Amazon can change things. But for day-to-day home use it's been reliable.

Happy to answer setup questions if anyone tries it.

Full setup docs are in the README bock-media/README.md at main ยท andystumpf/bock-media ยท GitHub