v0.23 - Performance Enchantments
As I have been testing the app, I found a variety of issues with the video playback and overall handling of the app, so I’ve taken a bit more time to zero in on improving the playback experience.
-
The video player was a hand rolled video player, which while it seems simple on the surface, led to many odd bugs. To resolve this, I’ve moved the media engine handling to a library called VidStack, which is an open source library that allows me to not have to fret about things like browser differences and strange quirks with presenting the data we are servicing from the backend. Just saves me a bunch of time and smoothed out many of these small issues I had.
-
There was a small audio blip on segment boundaries when using HLS, it was a math error that was subtle but enough to notice, this is resolved
-
Bundled file formats were doing a hybrid direct approach, by caching the audio and remuxing to a browser compatible format. This caused many issues, so now it will play direct only if it literally can plant the source file in browser, otherwise defaults to hls to stream from the host
-
Hls had a few issues with clipped buffers and performance, one cleaned that up and more loads great, most likely won’t even see a need for gpu acceleration on this, but I’ll looking at that at some point
-
The new video player is revamped, the settings are all now in a flyout instead of online, and toggles are the only thing left direct. The new menu is nice and mimics YouTube’s general layout which is battle tested
-
With the Switch to vidstack, I’ve added cast and airplay support, which you can globally disable in settings if you don’t want to accidentally cast
-
I did a variety of cleanups on the UI, things like unifying the thumbnail logic so it’s more universal, and can be reused more easily over the different surfaces
-
Using Svelte snapshots, the last page you were on is snapshot, so when you navigate back it loads the snapshot. This means if you scroll a list, click an entry, then go back it should be in the exact same spot as before
-
comics/manga felt like it would be confusing to place them on Galleries, so I’ve moved them to a new “Books” entity type. Like videos, images, and audio, this will be the home for text and or image based reading. This is a whole new type, so you can set this as a supported entry for a library root
-
Comics will now get a full first class treatment, with richer metadata and navigation.
-
I’ve added mangadex as a plugin to the community plugin options, so you can then identify using their richer metadata
-
This new books tab will be expanded down the line, to support ebooks, audio books, and just plain text entries. I plan to do some nice reading options as well, so stay tuned there that may be a bit before I get to it
Still ironing out some bits on all of this, but plan to release within the next day. You can always check the full crazy changelog herehttps://github.com/pauljoda/Obscura/blob/main/CHANGELOG.md
Posted May 11, 2026, 5:30 AM UTC