Skip to content

kanishkaganguly/pypodcast

Repository files navigation

Podcast Player

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.

Player v1 Player Dark Mode with Advanced Menu Player GUI Mode with Advanced Menu Sleep timer

Run

Use the app

  • Grab the compose.yml file from the repository
  • Run UID=${UID} docker compose up

Development

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

Tech Stack

Client: BulmaCSS, jQuery, HowlerJS

Server: Flask, Flask-Caching

Roadmap

  • 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 for pyinstaller-based mechanisms (wontfix)
  • LocalStorage or something for playback save/resume.

About

Flask-based podcast player

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published