PowderWeb
PowderWeb copied to clipboard
Customized Default Video Player
This is largely related to: https://github.com/jaruba/PowderPlayer/issues/141 https://github.com/jaruba/PowderPlayer/issues/144
Instead of rewriting Powder Player to use Powder Web as a streaming engine it makes more sense to create a QML skin for MPV that will simply be used as the default player for this project.
This would not require abandoning Powder Player, that would still be available as it's own separate project, although progress for it may be blocked by other future limitations somehow as it uses old technologies and resources that have stopped development (WebChimera.js and old NPM dependencies)
The great advantage here is that in order to replace Powder Player with a Powder Web driven server, too many features will be lacking that are currently implemented in the player and users may be accustomed to them
Concept:
- start off small with a custom QML UI for MPV that supports playlists and subtitles from Powder Web
- ~cast to Chromecast~
- ~cast to AppleTV~
- ~cast to DLNA (ffs)~
- episode sorting (default)
- alphabetic playlist sorting
- Drag and Drop to sort playlist
- Trakt support
- Metadata fetching
- Auto-find Trailer (is this needed?)
Advantages:
- currently finding subtitles can be done with Powder Web, but the method of adding it to a video player can be confusing, a customized video player would definitely simplify the UX
- Trakt support in the player, as Powder Web currently can't know the playback progress to use Trakt features
- greatly reduces work load for a beta of something like this compared to rewriting Powder Player itself
Disadvantages:
- this will only work on the PC where Powder Web is installed, although Powder Web is also made to work remotely as a server (based on user accounts)
Come to think of it, I see no reason why casting features should be included in the actual video player, they should be features of Powder Web. Moving those to separate tickets.
I'm having second thoughts about this feature, because this is meant to be a server, and this feature will only work locally.
Might be better to do this on the client side as a separate project.