Multimedia player, media library manager and portable media server with PC-To-PC casting feature.
Major features for this release
~/.config/kawaii-player/new_home.txt
and restart application.Deprecating
other_options.txt
set MPV_INPUT_IPC_SERVER=True
.opengl-cb
api will be deprecated and no longer will be supported from now on. Users need to install pympv
to use libmpv
backendFor installation on raspberry-pi see this repository
For list of all changes see this commit history
Note: libvlc
support is mainly to support hardware accelerated video playback on RPi. All the controls on the application GUI won't work nicely with it. libvlc
should be used in conjuction with web-ui
for controlling player remotely.
When using libmpv, it is possible to show transparent widgets (ie playlist, titlelist, control frame etc..) directly on video. This property is available in Preferences->Appearance->Widgets on video
.
In dark theme, users can manually change color of background and control frame. Few combinations are available by default Preferences->Appearance->Try
. Users can choose any color, but most likely only dark shade of any color may look good on this theme (along with bold fonts).
Added Playlist Continue
option in Preferences->Player
fixed: cache pause seconds option when using libmpv
fixed: irregular global font size by fixing stylesheet
It is possible to pass http headers as dictionary to ccurl function
No need to restart the application whenever changing mpv config options from Preferences, when using libmpv. (However, changing some options like vo/ao may need restart)
Setting external player from Preferences
has been removed. Option is still available, but user will need to manually edit the config files.
Music mode deprecated. As one can use detached video mode
as music mode, the music mode somewhat became irrelevant. Moreover it became buggy and difficult to maintain over the time.
Sample Screenshot:
Thumbnail wall mode now applicable for both titlelist and playlist. (Thumbnail wall mode is lighter and faster compared to regular thumbnail grid mode, press F1 to switch to this mode).
Change number of thumbnails in each row using keys -
and =
automatic resizing of thumbnails in thumbnail wall mode on widget resize
wait_for_property
add-external-audio
. Add keyboard shortcut to this command in the Shortcuts
settings.Apart from above, multiple bug-fixes when using libmpv
backend in gnu/linux, windows and mac.
For full list of changes see the commit history
Note: Distro based on Ubuntu 18.04 LTS, might not package latest libmpv
. In such cases, users should use only mpv
binary. Using old version of libmpv can be unstable. For older mpv versions (most probably 0.27 or earlier), users will need to change vo
to opengl
from gpu
in the config settings box.
Experimental support for directly using libmpv as backend, instead of binary.
Proper support added for macOS when using libmpv as backend, allowing embedding of video within application.
For generating preview and thumbnails, libmpv will be used by default.
Automatically prevent screen turn off or screensaver when playing video.
Removed variable_width_list
property, since it is not required now. Application will automatically resize widgets when screen changes, on dual monitor/screen setup, even if application is placed on non-primary screen.
Added Device Pixel Ratio
property in preferences. By default it is set to 1.0. For high resolution displays, it will be grater that 1.0. For retina displays it is 2.0. If video is appearing smaller then increase this value, when using libmpv
as backend. If not sure, set it to 0.0, and application will try to adjust this value automatically.
Support added for both opengl-cb
and opengl-render
api of libmpv.
Accurate live preview and improved gapless playback of network streams when using libmpv
option added to switch on/off native fullscreen mode on macOS
For full list of changes see this commit history
Names are given as per PyPI packages, which may change depending on the distro.
PyOpenGL
PyQtWebEngine (This is separate package now and won't be included in default PyQt5 installation)
Optional dependency
It started with this gist by github user cosven
python-mpv package, written by github user jaseg, with minor modifications. No need to install it separately. The main file with minor modifications is included in the kawaii-player.
pympv. This package is optional and needs to be installed from PyPI, if user wants to use latest rendering api of mpv.
Note: Those who want to use mpv/mplayer binaries, they can still use it. Support for binary mpv/mplayer won't be deprecated in the application. Advantage of using libmpv
(apart from making cleaner code) is that, it will make application work better and uniform across all platforms (gnu/linux, windows and mac).
Note: Playing video within thumbnails, won't work with libmpv
as of now. So this feature has been disabled for libmpv
, but it works as usual when using mpv binary.
Note: No binary of kawaii-player will be included in this release. Users have to install the application from source. Binaries of older stable version v3.8 is available here.
Note: This release i.e. v3.9.0 won't include any binaries. Users have to build everything from source, as explained in the README.
Note: Binaries for earlier version i.e. 3.8.0 are available here (only for Ubuntu and Windows 10).
Many issues fixed in system theme.
Screenshot with Adwaita Dark Theme.
About System Theme: Once System theme is selected, application can integrate itself properly with default theme of desktop.
Transparency issue of sidebar fixed.
Issue of MainWindow expanding beyond screen-width fixed
Some tips on getting best out of system theme:
kawaii-player is qt based desktop application, hence theme settings may not apply in gtk based desktop. Therefore, in non-qt desktop environment (especially gtk based), use qt5ct (i.e. qt5 configuration tool) in order to control theme, fonts and other appearance issues of qt based applications. qt5ct is available in most of the gnu/linux distro which users can install using native package manager. There is no need for Windows 10 users to do this, system theme is working fine on it.
Depending on brightness of theme user may need to change color of fonts from settings (preferences) box. For dark system theme, most of default settings will work. But for light theme user may need to tweak some things especially font-colors.
Almost complete rewrite of code related to torrent streaming feature.
Torrent pieces will be prioritized for quick start.
Seeking within torrent stream fixed.
Added new small widget for showing torrent pieces information.
This widget accepts few more text characters (+, - and *) as commands, which will show some more information on running torrents.
Can handle multiple torrents simultaneously.
No need to stop one torrent in order to play another one.
Completed torrents will seed automatically.
PC-To-PC Casting final touch
In above screenshot, user will find that there is slave control tab-box to the left. This tab won't be required from this release. Once user will toggle master/slave button to 'slave' available in extra-toolbar, it is possible to use regular buttons available in lowermost control frame to control slave. Apart from that, seek-slider of master will also be in sync with slave. Users can click on seek-slider of master to change seek position on slave.
In PC-To-PC casting feature, one computer is assigned as master and other is assigned as slave, and one can cast videos from master to slave. In this release master/slave toggle feature has been added to the web-interface, to control casting activity from master to slave.
Once, user will open web-interface of master using any browser (either desktop or mobile), they will find master/slave toggle button (which will be seen after, clicking R:Off button). Users need to toggle master/slave button available in web-interface and set it to slave, to enable casting of videos from master computer to slave computer via web interface of master.
The same web interface will be utilized for controlling other playback activities of slave. In this case, all commands given via web interface will be routed via master computer to slave, hence users will notice some extra time delay. This delay can be small unnoticeable or noticeable depending on network congestion.
This setup is particularly useful, if master computer is used as media-server from which we want to cast audio/video/playlists to slave computers, using web interface of master.
Changes in some default settings.
Dark Theme is now default.
Thumbnails will be shown by default in list.
Live preview is ON by default.
Bug fixes and other changes
Few minor bugs fixed in offline mode.
Bug fixed when showing live preview of dropped video.
imp relaced with importlib for importing addons
Bug fixed when downloading m3u files from web-interface. Now m3u files won't auto-play inside browser.
sha256sum of uploaded packages
ec22745a93a19d373d01dc5b46d9575c833a454d41085005bd4b467e70ac52bb --> kawaii-player-3.8.0-1.tar.bz2
dda8e5199cb2900131c9dce9deb08b5dda2d47bcb7a042b606f9f1a2c4731689 --> kawaii-player-3.8.0-1.deb
1a79faa79eeea4d64003da2f41f3fb04be06de068788d3ad3b9203db5dd83812 --> kawaii-player-3.8.0-1.windows10.x86_64-bin.7z
New Features:
In above screenshot, user will find that there is slave control tab-box to the left. This tab won't be required from this release. Once user will toggle master/slave button to 'slave' available in extra-toolbar, it is possible to use regular buttons available in lowermost control frame to control slave. Apart from that, seek-slider of master will also be in sync with slave. Users can click on seek-slider of master to change seek position on slave.
In PC-To-PC casting feature, one computer is assigned as master and other is assigned as slave, and one can cast videos from master to slave. In this release master/slave toggle feature has been added to the web-interface, to control casting activity from master to slave.
Once, user will open web-interface of master using any browser (either desktop or mobile), they will find master/slave toggle button (which will be seen after, clicking R:Off button). Users need to toggle master/slave button available in web-interface and set it to slave, to enable casting of videos from master computer to slave computer via web interface of master.
The same web interface will be utilized for controlling other playback activities of slave. In this case, all commands given via web interface will be routed via master computer to slave, hence users will notice some extra time delay. This delay can be small unnoticeable or noticeable depending on network congestion.
This setup is particularly useful, if master computer is used as media-server from which we want to cast audio/video/playlists to slave computers, using web interface of master.
Bug fixes
Note: As it is beta release, no binaries will be made available. Users have to build package from source. Binaries will be made available on next proper stable release.
Earlier stable v3.7.0 release with binaries is available here
New Features:
Automatic creation of default fanart from original video source, if no fanart is selected/downloaded.
Added drag and drop support for fanart/posters. Now image file or image url can be dropped directly in video/music section, which will be then selected as background fanart or poster for selected Title.
Improved support for mplayer as backend. Most of the GUI controls will work with mplayer also.
Improved PC-To-PC casting support. For details on pc-to-pc casting refer this section
When casting video from master to slave, the fanart from master will also be sent to slave along with video.
All the controls available in Extra Toolbar can be used to control playback activity on slave from master. In the Extra Toolbar, users will get new Master/Slave Toggle button. Users can use this button to toggle playback control between master and slave. In above screenshot, this toggle button is shown at top right corner of Extra Toolbar.
New context menu has been added for automatic discovery of slaves, which are broadcasting themselves. Slaves can broadcast themselves by following, Preferences->Media Server->Broadcast Server.
Other Changes
Complete rewrite of code related to ytdl support.
Separate class created for GUISignals containing both signals and slots.
Removed unnecessary bash scripts from source files.
Added new module Vinanti for managing session between master and slave in PC-To-PC casting mode. Vinanti, which has been developed recently, is highly modular async HTTP library for python without extra dependencies, which users can use in their own projects easily.
Added new module tvdb-async, based on Vinanti for fetching metadata asynchronously from thetvdb.com. This module makes use of Levenshtein algorithm for better matching. It is also highly modular, and people can use it in their own projects.
Added new control box to control slave from master in PC-To-PC casting mode. Currently it has only basic controls. Few more controls will be added to it in future. Users can access this control box via 'Preferences->Slave'. Users can use it if web based control is not working properly.
Replace pycurl/curl/wget with Vinanti as main HTTP request library, which can simplify lot of design issues. It is difficult at the moment and may take time.
Allow using Extra-Toolbar for controlling slave in PC-To-PC casting mode. Currently controls in extra toolbar can control only local playback. I'm thinking of providing a way to toggle use of extra-toolbar between local playback and playback on slave. This will allow master to have extremely fine grained control over plyback activity on slave.