KVS 4.0.1

18 February, 2018

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

Starting with KVS 4th generation we would like to change the way we approach to versioning and update policy. Earlier KVS had branches (1.x, 2.x, 3.x) and all updates within a branch were free, but updating to a new branch costed 25% of a new license price for each individual license. Many successful years passed and KVS now has many customers with big number of licenses on their accounts, so updating them all to KVS 4 will mean huge money for them.

As a result we have re-balanced our update policy:

  1. With regard to versioning we will not use 'branch' term anymore, all new versions will be of 2 types: major feature updates (e.g. 4.1, 4.2, etc.) and minor bugfixing updates (4.0.1, 4.0.2). Minor versions will be announced as usual, but we won't make them available publicly if no critical bugfixes, they will be available on request only. Changing this approach will let us introduce important bugfixes instantly without considering major version current state.
  2. Access to any updates will now cost $100 yearly per customer and it doesn't matter how many licenses you have. Any new Ultimate license purchase will give +1 year of free updates since the day of purchase. Any new other license purchase will give +0.5 year of free updates since the day of purchase.
  3. All clients who've purchased a new Ultimate license since 15.01.2017 or any other new license since 15.07.2017 will have free access to 4.0 update. For convenience we will update our customer zone with this info soon.
  4. All unused licenses will be using the latest version at any time, they will not be connected to any dates.

Please note that updating to 4.0 would never be free anyway, we are not adding a payment here that never existed before. The 25% policy was there since 2009. However the 3.x branch was being developed for the last 5 years and all updates within it were free, so this policy has never been applied. The new policy makes it much cheaper to apply 4.x update for customers who have many licenses on their accounts, whilst it doesn't affect much those customers who have only 1 license. Also instead of paying for updates you can simply purchase a new KVS license and your updates period will be auto-extended based on the rule described above.

What's new in 4.0.0

Global enhancements in advertising module:

  1. Ability to restrict individual ads to certain devices, browsers and member statuses.
  2. Ability to restrict individual ads to be displayed during specific time interval (for example starting on 22:00 and ending on 02:00 every day).
  3. Ability to configure advertising start / end datetime with 1 minute precision.
  4. Ability to exclude specific advertising from being displayed for certain categories.
  5. Advertising spots now allow configuring wrapped HTML code, so that no empty advertising block is displayed when there is nothing to display inside it.
  6. Player HTML advertising can now be connected to advertising spots and thus provides easy way to use all the advertising module functionality inside player.
  7. Adblock plugin should not prevent saving advertising in KVS admin panel anymore.

Many enhancements in conversion module:

  1. Video trailer creation optimized, now trailers are created much faster and with less quality loss. Also it is now possible to add crossfade effects to trailers.
  2. Moving watermarks are now supported with ability to set speed, direction and any number of positions in seconds and percents for repeat.
  3. Ability to switch new videos conversion into 2-phased process: the first phase will only create all required video formats, the second phase will create all high-res formats which are typically declared as conditionally-optional. Thus video will become available faster, no need to wait for all video formats to be created.
  4. Added ability to optionally enable screenshot crop settings for manually uploaded screenshots. Previously crop was never used for uploaded screenshots.
  5. Background tasks logging was enhanced. Now background task log can show info about all conversion phases and most importantly subtasks and their duration.
  6. It is now possible to code a custom PHP script to set up individual crop, rotation or mirroring of a source file for any uploaded video. These options are not exposed for public usage, as they are too specific for most users.
  7. KVS will now support uploading audio files directly into MP3 format. In order to use this functionality you should add mp3 extension into list of allowed video extensions in /admin/include/setup.php, and also upload screenshots for every such video.

Big set of KVS player enhancements and fixes:

  1. Ability to enable auto preload, which gives hint to all devices to start optimistic video buffering before user starts playing.
  2. Ability to show related videos on pause (if no pause advertising is configured).
  3. Ability to show global video duration in player instead of current format duration. This may be useful for paysites if non-premium users are only able to watch short trailers - then it is better to show full video duration instead of trailer duration.
  4. All player HTML advertising is now fully integrated into KVS advertising module.
  5. For pre-roll and post-roll advertising the updated skins will show timeline with advertising duration.
  6. For pre-roll and post-roll advertising it is now possible to enable VAST from several supported providers.
  7. For pre-roll advertising you can now configure so that it is not displayed for every single video, but can skip some videos before next display.
  8. In embed player settings you can now set caching interval for embed codes. Previously embed codes were automatically cached up to 24 hours.
  9. Fixed wrong behavior of buffer indicator when skipping or switching to another format.
  10. Fixed timeline screenshots display issue in some browsers.
  11. Fixed full-screen issue in desktop safari.

Several important enhancements in KVS storage system:

  1. Added support for syncing one storage server from another storage server if they are located in the same storage group. This task is basically required when you move content from one server to another or when you want to duplicate content between several storage servers for load balancing. Previously you could only do that manually, now KVS can do that for you.
  2. We extended CDN invalidation API to support additional parameter that describes operation type (add, update or delete). Thus invalidation API will be executed also when new content is added into CDN.
  3. You can now disable storage groups, so that they are not used in new content allocation.
  4. IP whitelist configured in video anti-hotlink protection settings will now disable all protection levels for the given IPs, including status-based protection.

Set of grabber plugin enhancements:

  1. Ability to configure command line path to youtube-dl library with all the supported command line options.
  2. For grabbers based on youtube-dl KVS will also download video files via youtube-dl, which will allow using aria2 library for multi-threaded downloads without speed limit.
  3. For grabbers based on youtube-dl it will be possible to configure proxy servers list if your server's IP gets blocked.
  4. All existing grabbers will be switched to youtube-dl soon.

Several changes in FTP content upload plugin:

  1. Ability to specify video / album description in a separate TXT file.
  2. Ability to randomize order in which content will be added.
  3. Added display info about duplicates, if detected.

Other enhancements:

  1. Image size settings were enhanced with additional resize type option that will allow now having images with dynamic size (previously it was only possible to have fixed size images for categories, models and etc). Also for categories and members we added 2nd size, so now all images support 2 separate sizes with different resize types. Due to categories avatar migration to a new storage structure it will be needed to modify some code in templates. After update audit plugin will show KVS #10 issue. Please create a support ticket specifying all domains you've updated and make sure that support access is enabled there.
  2. KVS now supports internal paid subscriptions for members and channels using tokens. When purchasing a subscription, members will get premium access to all content from the member or channel they are subscribing to, including any content added in the future by this member or into this channel. A subscription can be time-limited or unlimited (configurable by admin). Limited paid subscriptions will be automatically renewed if a member has enough tokens on balance. Otherwise the subscription will expire and member will need to purchase it again to get access. Same as with individual content purchasing, KVS will allow you to set that part of spent tokens are earned by content authors, so that you can have members earning tokens from selling subscriptions to their profiles and channels. In member profile editing and channel editing blocks it is now possible to specify tokens price in tokens_required field.
  3. For premium access packages you can now choose whether they are available on signup, upgrade or both. This option can be used for instance to provide some discounts for returning members, while having the full price for new members.
  4. Premium access packages can now be purchased with tokens. We added a specific payment processor for handling this named Internal Tokens. So if your site offers free and premium zones, your free members can earn tokens for their activity and then use tokens to purchase access to premium zone.
  5. In order to allow accepting payments using different methods, signup and upgrade blocks will now allow displaying access packages from all active payment processors. Thus you can use multiple payment processors at the same time and let users decide which one to use.
  6. Members can now be awarded with tokens for logging into memberzone every specific time interval. This can be used to stimulate their activity on your site.
  7. In video format settings you will now be able to specify download order for each format you enable download option. Previously the order of download files was not defined.
  8. In video format settings you can now limit speed separately for embed code mode. This may reduce your traffic usage and at the same time no need to block embed codes usage.
  9. Category and tag auto-selection plugins will now support lenient match for compound tags and categories. This new option will provide better way for languages where word endings vary in different cases. Also will give flexibility in auto-selection handling.
  10. Models and content sources now support ranking based on the defined criteria (sorting). You can now display recent rank for each model or content source, and previous rank if changed. Ranking criteria can be set in content settings.
  11. In mass editing you can now submit re-creation of multiple video formats at the same time (previously it was only possible to do 1 at a time). Also mass editing now supports access level field.
  12. A new interface for videos / albums mass operation added: mass selection. You can use it to select list of videos / albums based on their IDs or URLs and then either filter them, or mass edit them, or delete them.
  13. If you use mark video / album as deleted functionality, you can now send notification email right from there. This functionality is typically used to handle DMCA complaints, so sending email with the list of deleted URLs may be useful.
  14. When editing videos or albums you can now run category, tag or model auto-selection plugins for them individually. Previously this was only available from mass editing GUI.
  15. Exporting feeds can now filter by HD flag. Also you can now choose to simply export 'best' or 'worst' quality for each video instead of specifying direct format name.
  16. Admin panel can now search by localized titles / descriptions / directories in all objects that support localization.
  17. Website UI section now features version control system, which monitors all changes in theme templates, styles and JS files. This will allow you to rollback any specific change at any time, or restore original version if you have done something wrong. It can also be used with online text compare sites to find what has been changed in a specific version.
  18. In website settings it will now be possible to configure that content with 'in process' or 'error' statuses is displayed via direct links. Previously such content would never be displayed. This feature is extremely useful for websites that offer video hosting functionality, users can upload their videos and immediately get embed codes that are not returning 404 error. Please note that you will need to update templates so that such cases display reasonable message, otherwise in most of the themes they will display no access error message.
  19. In stats settings for search stats you can now configure max query length and blacklist symbols, which will prevent queries that do not match these filters to be added to your stats. This is needed to prevent some not nice queries to be later displayed on your site.
  20. KVS website engine will now be able to produce minified HTML, however this option will not be available in public settings and can only be enabled via /admin/include/setup.php configuration. HTML minification produces single line HTML code without line breaks, however it will result in textareas not functioning correctly (all multi-lined content displayed in a textarea will be wrapped, e.g. video description editing will wrap multi-lined description); and also if you have some inline JS / CSS code without ending semicolon, this will break its syntax. Use at your own risk if needed.
  21. In website settings for dynamic HTTP parameters you can now configure their cookie lifetime. Before that their lifetime was forced to 365 days. These are typically used to pass affiliate refs to your site.
  22. In content settings it is now possible to configure access to file upload functions. Previously file upload function was available publicly (some sites may need anonymous upload), but now you can only allow it for registered members or admins only. For remote URL uploads you can also set a max filesize limit.
  23. In this update we changed the way how tags are added in admin panel. Previously you could only mass add tags in plain list, but now you can mass add tags together with their synonyms; also you can use the same approach to add new synonyms to existing tags.
  24. Video player in admin panel editing video page will now allow switching between all video formats, if there are multiple. Previously it would show the biggest size format, which is not always convenient.
  25. A very important logical change for webmasters access level. Webmasters will no more have the same access level as premium members, they will have standard access level instead.
  26. When overload protection gets triggered for a page, KVS will return 503 status with rendering overload.html contents instead of doing redirect as before.
  27. Changed the way how text search behavior works when finding only 1 result (only 1 video, 1 album and etc). Earlier KVS would automatically redirect to this result page by default. After the update, redirect will not happen by default and KVS will simply display search results page with 1 video or 1 album. If you want to have redirect as before, you should use search_redirect_enabled parameter in the corresponding list_xxx block in your theme.
  28. Tags list (list_tags) and tags cloud (tags_cloud) blocks now support displaying tags from any objects and not only from videos or albums. KVS also supports tags in models, content sources, posts, channels and playlists.
  29. Added a new parameter show_stats to video view (video_view) and album view (album_view) blocks. You can use this parameter to force a block make an additional query and select video or album views stats for the last N days. These stats can be used to show video / album populary graph for the given time period (the number of days KVS keeps these stats is defined in stats settings).
  30. Categories list block (list_categories) can now show list of related categories, e.g. categories from the same group. In order to enable this the new parameters var_category_id / var_category_dir were added, which expect category ID or directory to be passed in URL.
  31. Search queries list block (search_results) can now display search queries similar to the given category or tag (e.g. search queries that are using this category or tag). In order to enable this the new parameters var_category_id / var_category_dir / var_tag_id / var_tag_dir were added, which expect category / tag ID or directory to be passed in URL.
  32. Posts lists block (list_posts) now supports filtering by custom fields.
  33. It will now be possible to display future or upcoming videos / albums. In order to do that you use the new mode_futures block parameter in list_videos / list_albums block. This option is extremely useful for paysites to show the upcoming updates.

Bugs that have been fixed:

  1. Many player logic and skin fixes (described above).
  2. In some cases Epoch processor would close access before the end of period.
  3. Domains, that were blacklisted for signup emails would not blacklist subdomains as well.
  4. Backup plugin was optimized for satellites.
  5. Critical vulnerability that we've sent patch on November 20th.
  6. Random video / album redirect was cached for 1 minute and redirected to the same video / album during the whole minute.
  7. When using external search plugin KVS would not return 404 error for non-existing pages in search pagination.
  8. A dozen of other small usability / stability improvements.

What's new in 4.0.1

Several player enhancements:

  1. It will now be possible to use 3rd-party VAST providers for a subscription. At the moment subscription will be free for beta testing period.
  2. Advertising would not disappear anymore after being clicked.
  3. Enhanced adblock player feature. Now you can configure the amount of time in seconds that adblock user will be allowed to watch. After that player will emulate crash with showing your predefined HTML code instead.
  4. Added support for inline playback on Iphones, which will also allow showing pre-roll advertising on Iphone devices.
  5. Fixed mute button behavior on mobile devices. Previously it was not displayed for mobile devices.

Other enhancements:

  1. In videos export and exporting feeds it will now be possible to format duration in HH:MM:SS format.
  2. Comments list block (list_comments) will support additional mode to display comments to the whole user's content.
  3. Channels list block (list_dvds) will support a new mode that allows listing channels available for upload to the given user based on their privacy settings.
  4. Several new modes were added for mixed videos and albums list block (list_content). They will allow to display uploaded content, purchased content and content from subscriptions of a given user.

Bugs that have been fixed:

  1. In some cases moving watermark was not applied to videos.
The Brand New KVS 4.0.3 is here Order Now