KVS v3.9.1

09 May, 2017

You can find full information about the update on KVS forum: KVS 3.9.1 update

Player improvements and bugfixes:

- Better skin for touch devices and devices with small screen: some buttons are hidden, size of other buttons increased.
- Added new player skin in youtube style.
- For iOS devices player now supports metadata preload, which will allow faster video start (if you enabled the needed option in player settings and device supports this).
- Text cue points can now be set up for timeline screenshots in video screenshots editor. Such cue points will be highlighted on player timeline and texts will be shown together with screenshots. Excellent feature to highlight video key scenes.
- In pre-roll and post-roll advertising settings you can now enable built-in skip button and configure when it will become active. Also GUI of such advertising was changed - you can now show message with displaying advertising duration, and for video ads users can now pause and mute them.
- Replay icon was added as a replacement for standard play button on video ending.
- In player settings you can now specify initial player volume (and also mute player by default if needed). Also we've fixed some bugs with volume slider behavior.
- In player settings you can now configure automatic loop for short videos - you can specify the minimum duration for that.
- Some poster display issues fixed: earlier poster was not displayed before player fully initialized; also it was displayed without no need if autoplay was enabled.
- Fixed context menu issue when trying to copy embed code from the player.
- Fixed number of issues with timeline screenshots display: their size was limited and also they could be positioned incorrectly if skin was customized.
- Display of vertical videos fixed - now they won't stretch vertically.
- Fixed issue with caching remote servers redirects by some user agents. The new player will only allow cache them for 1 hour.
We re-thinked IP limit blocking mechanism in video protection. Since we've added video file link obfuscation feature in 3.9.0 player, IP limit makes no much sense anymore. Now it can be switched off and will ease disk utilization. Also it doesn't count skipping anymore, so protection doesn't rely on how often user skips video. ATTENTION! After updating to 3.9.1 IP limit will be automatically switched off. You should switch it on manually in video protection settings if you still need this (for example if you are using 3rd party video player).

Grabbers and content import improvements:

- Added support for importing videos with multiple qualities via grabbers for those source sites that support it. This can save your CPU resources on conversion, but will take more time to import new content by downloading multiple files.
- Grabbers can not import content source field for each object individually. This is not used in the grabbers KVS provides, but can be used in your custom grabbers.
- You can now skip content with duplicate titles when importing content from grabbers.
- You can now limit description length in grabbers: either by certain number words or by symbols.
- For some grabbers KVS can now use their delete feeds to auto-delete videos from your database. This should be enabled separately for each grabber where supported.
- When importing embed codes or pseudo-videos from grabbers, you can now specify URL postfix with your ref code to make URLs of all embed codes / pseudo-videos have it.
- KVS grabbers plugin will now support youtube-dl server library, which implements parsing for many tube sites. This will help us to add grabbers faster in future.
- Import functionality was enhanced with ability to skip content which files failed to be downloaded for whatever reason. Earlier such content would be imported in KVS and then would be moved to error status during conversion phase. This didn't allow try importing it once again because of duplicates check.
In timeline screenshots settings you can now configure the desired number of screenshots instead of their interval. Based on that the interval can vary depending on video duration. On the one hand this will make navigation in video not so accurate, on the other hand this will prevent creating 200-500 images for long videos. The key aspect here is that interval will never be less than 10 seconds and any other intervals will be divisible by 10. For example if you configure the number of timelines to be 100, for short videos KVS will create timelines with 10 seconds interval - their number will depend on video duration. For videos longer than 10*100=1000 seconds KVS will choose 20 seconds interval and etc. If you already use timeline screenshots you can easily switch to the new approach in video format settings, this will affect new videos and old videos will continue showing timelines using the old way.
Due to the changes in timelines creation logic and for supporting future changes in this area, starting from 3.9.1 KVS will automatically update API for all conversion servers during update procedure. You should understand here that any custom changes you've put into remote_cron.php will be vanished. KVS will try to do a backup copy of this file and to put it near by. Conversion engine will not use conversion servers with obsolete API version anymore.
Added integration with MPA3 script.
The execution order of background tasks was changed a bit. Earlier when you had many secondary background tasks, the new content wouldn't be processed until other tasks are completed or until you manually increase priority for new content tasks. This won't be needed anymore, since KVS will automatically put new content tasks in the front of execution queue even if all tasks have the same priority. Moreover you can now configure default priority for content tasks submitted by different types of users: standard, trusted, premium, webmasters. Also you can now manually increase conversion priority for videos and albums from their listings - earlier this was only possible from the tasks listing.
Finally we've added ability to mark content as removed. You can now do that for any set of videos / albums and specify the reason. All files of this content will be deleted including video files, screenshots and formats, but the data will remain in database. This content will disappear from public lists and will only remain available via direct URLs with displaying all the info, comments and delete reason. For correct rendering you should modify templates, please check our forum for instructions.
User account generation plugin added in 3.9.0 can now generate access codes instead of user accounts. Access codes can be used on sign up and upgrade flows to get tokens or premium level. You can sell these codes via external online shops as an alternative to KVS billing solution. Access codes are more convenient than pre-generated accounts, since they can be used by existing users while keeping existing profiles, also users can use multiple access codes for refills / rebills.
For hotlinked videos it is now possible to re-create screenshots. In order to do that KVS will download hotlinked video again to create screenshots.
It is now possible to award users with tokens for sending traffic to their videos or albums to your site (embed codes do not support this). You can specify the number of tokens that should be awarded for each N unique views (only IPs unique within 24 hours are counted here). When calculating awards KVS will pay tokens for those videos and albums that get the needed number of views. You can use this functionality to get more external links to your project if your users will be interested in earning tokens. If needed you can pay out tokens with real money using KVS payout solution.
KVS 3.9.1 provides new features in restricting access to videos and albums. It is now possible to configure access level for public videos and albums (previously you could only do that for private and premium). Also you can now configure access level for each video or album individually, which will override access level inherited from type field. This new feature can be used to workaround KVS architecture issue that doesn't allow changing video from public to premium type and vice versa. Now if you want to make any public video available for premium members only or by tokens purchase, you can do that without changing its type.
Enhanced rendering of screenshots and album photos in admin panel, they will be adaptive now. Also added red highlights for fields which triggered validation errors when saving editors.
In main video editor you can now delete screenshots as well if they are enabled for display there. Previously you could only change main screenshot.

Set of import / export enhancements and bugfixes:

- You can now filter export data by reviewed flag.
- You can now export video source files for those videos that keep them.
- It is now possible to export rating in percents (0-100%) and also import / export will support the number of votes for rating.
- Fixed bug with importing / exporting models with commas in their names.
- Fixed bug with incorrect sorting by rating.
- Optimized memory usage in export.
- Exporting feeds now support filtering by query string. In order to allow this feature you should enable it in feed settings, since it can affect database performance if frequently used.
- Fixed a bug in exporting feeds which could lead to wrong size in embed codes for some types of videos.
Model auto-selection plugin will now be looking into content tags as well. Previously it was only looking into title and description.
You can now sort models manually like categories in order to force specific sorting when displaying on site.
In models list block (list_models) it is now possible to display similar models using a big variety of criteria: by country, by city, by age, by sex, by height, by weight, by eye or hair color and so on.
In video upload block (video_edit) you can now configure that uploaded files are considered as files of specific format to skip their conversion. This feature is not need in most cases, it was implemented for specific requirements when your project is designed to provide an upload gateway for known users who will correctly upload files in the needed format. This can also be used to create a separate upload page for webmasters to allow them upload videos faster without the need to process them.
In video, album and playlist editing blocks (video_edit, album_edit, playlist_edit) the new option added that allows you to configure content deactivation after it was modified. In older KVS versions there was only one option (force_inactive) that affected both new content and modified content. If it was enabled, any modified video or album would become deactivated until you manually activate it back. Now this won't happen. After the update the new option (force_inactive_on_edit) will be switched off, so any modified content will remain active. If you want to force the old behavior, you should modify settings of these blocks and switch the new option on.
In global stats block (global_stats) you can now render how many people visited your site yesterday, last week and last month from KVS stats.
Flagging content will now store additional info about initiator: IP, country, user agent and page URL.
On conversations list (mode_conversations mode in list_members block) you can now implement removal functionality to completely delete multiple conversations. Also for each conversation in the list it is now possible to display last message from it.
It is now possible to display video duration in standard format HH:MM:SS. Historically KVS displayed it in MM:SS format, which could show 3 digit number for long videos: MMM:SS. In order to use the new format you should modify site templates, which is described on KVS forum.

Bugs that have been fixed:

- During content import there could be a case when all import lines triggered validation errors, so even in that case KVS would allow submitting this import with empty list of valid lines.
- Redirecting to random video / album didn't consider some satellite settings.
- Non critical XSS vulnerability when using dynamic HTTP parameters from site settings. Thanks to Muhammad Uwais for kindly pointing it out.
- When detecting SAR of source video file in some cases KVS would absolutely redundantly reconvert it for normalization. This was fixed, as well as normalization method was optimized for faster time and avoid quality loss.
- Search function could lead to empty search if using stop words (in case of searching for the whole stop word) and KVS would show all videos / albums for such empty search.
- Some cURL operations worked incorrectly if open_basedir option was enabled in PHP configuration.
Tá an KVS 6.2.0 anseo Ordú Anois