A very simple browser-based podcast player made with Flask/Bulma/jQuery. Playback is handled by the excellent Howler.js audio library.
I made this as a side project, since there appears to be no free desktop app for playing podcasts on Linux that I liked. PocketCasts has a web option, but that is only for premium users.
Also, I wanted to learn Bulma.
- Grab the
compose.yml
file from the repository - Run
UID=${UID} docker compose up
Clone the project
git clone https://github.com/kanishkaganguly/pypodcast
Dependencies
- Docker
Go to the project directory
cd pypodcast
Run justfile
./just run-debug
Start the server (inside docker shell)
./just exec-ui
Client: BulmaCSS, jQuery, HowlerJS
Server: Flask, Flask-Caching
- Basic interface and functionality
- Loading podcasts from RSS feed URL
- Iterating over podcasts and lists, with all details
- Play/Pause, Seek, Volume
- Time-based caching and refresh for metadata
- Adding new podcasts from RSS feed
- Menu for advanced playback controls (speed, sleep timer, audio source select)
- Make dropdown menu
- Add controls for playback speed
- PulseAudio forwarding, audio source selector inside menu
- Sleep timer
- flaskwebgui for proper app mode
- Queue management
- Proper release mechanism
- DockerHub CI/CD with
compose.yml
launcher -
flaskwebgui
should allow forpyinstaller
-based mechanisms (wontfix
)
- DockerHub CI/CD with
-
LocalStorage
or something for playback save/resume.