pull down to refresh

This has been a short-term labor of love of mine that I've been obsessed with over the last couple weeks. I'm happy to address criticism and would like all forms of feedback. The following is the current readme:

DIRCAST

Dircast is a simple utility that can be used to serve local media as podcasts based on directory structure.
Screenshots

Philosophy

The podcasting standard, being effectively the last true bastion of open and free speech through media on the internet, is a valuable and desperately necessary platform to defend. A barrier to the adoption of podcasting (and its superiority over VoD) is the noticably higher barrier to entry that true podcasting has against the many Video on Demand platforms across the internet, especially YouTube. In an effort to lower that barrier, I have taken it upon myself to create a single-executable, zero-dependency, pure-Go podcast server program.
Not only does this make it trivially easy to serve a podcast, it also makes for a great personal media server, making media local to your computer available as a podcast that you can download back on your phone or other machine. As of this writing, I personally have a mixture of thirteen youtube channels archived locally, tv shows and movies that I ripped from my dvd collection, books, and CD rips acessable from my phone thanks to dircast.
How to Use:

Navigate to the root of the directories you want to serve
Make go vroom
Profit

Simplicity is a top priority here. For each sub-directory that contains files and nothing else, its parent directory is the title of your new "podcast" and the files in the directory are the "episodes." Default port is 8909. This will be configurable later.
TODO:

Tier 1 (Easy or High Impact):

Configurable port
Make the Feed list page prettier
Use Go's html templating to make the HTML more betterer and flexible. (Right now, the HTML is hard-coded) -- Partial implementation
???

Tier 2 (Important but not Very Easy or Easy but Low Impact):

Deterministic feed order. Right now, it's just how the descriptor is accessed in memory, which is pretty much random.
Organize the generated feeds by media type in the HTML font (audio, video, other(?))

Tier 3 (Low Impact to Ease Ratio or Relatively Hard):

Frontend-configured transcoding for different consumers (Totally no super-complex) so that an individual frontend can ask for differnet bitrate versions of the same media file.
Auto-transcription (breaks dependency-free claim)
LLM Descriptions of the files (may break dependency-free claim)

PIPEDREAMS (No current plans, but hopeful for one day)

Implement Pinchflat/youtarr like youtube archiving
Expand the above to archiving podcasts

To breaking the dependency-free claim, I may split that off into a second executable that requires pulling in all the esoteric non-go AI stuff and keeping the core clean(er).