Jump to content

KVS 4.0 implementation (previously was 3.9.2)

Tech Support

Recommended Posts

  • 2 weeks later...

In search stats settings we added several options to limit search queries which fall into stats.

The reason why these queries can (and should) be limited is because in many cases they are being displayed on your website as SEO texts related to the current page. But in many cases search queries are just errors in URLs, javascript and whatever else, or somebody wanna try exploiting your site by sending list of generated queries.


The other reason is that for huge sites search queries can blow the database, since they are stored with daily breakdown. These options can help reduce queries table and help site load them faster when needed.


So you can now limit queries by their length and restrict queries with specific system symbols which are not normally used in human language. The new settings will be available in Settings -> Stats settings section:



Link to comment
Share on other sites

In 3.9.2 we started a round of global advertising refactoring and did some highly demanded features in this area.


First, it will now be possible to configure HTML code for advertising spots. Ad spots are containers which display advertising on your pages. In many cases ad spots are wrapped with some rendering code, like a box with "Advertising" text. If no ad is displayed for any reason (all ads were deactivated, or any other restriction), the site will still display empty box with "Advertising" text, which is not a good practice in modern adaptive layouts. In order to avoid that, it will be possible now to specify the wrapping HTML code in advertising spot settings and KVS will make sure it will not be displayed if no advertising should be displayed. At the same time, the old approach will still be working, so nothing will be broken.




Another set of enhancements goes directly to advertising. You can now specify separate ads for different device types. You can also disable ads for specific types of users (registered, premium). Finally you can specify the exact time of day when this ad should be displayed. Using the devices option now gives you ultimate flexibility in designing your ad campaign, easily show separate popunders for desktop and mobile users, show small adds for mobile devices and big ads for desktops - nothing will be impossible now.


Here are the new options added: Show time, Devices, Users - all other options already existed in previous KVS versions.


On the example screenshot the ad will be displayed from July 1st to July 31th, only between 20:00 and 23:59, only for phone devices and will not be displayed for premium users and webmasters:




Link to comment
Share on other sites

In web payments in access packages settings it will be possible now to select scope for this package, either signup, or upgrade or both.

The reason is that signup may offer trial option, while for existing users this option should not be normally available during upgrade:




Also, signup and upgrade blocks will now make possible to display access packages from all active payment processors, not from default only.

This is needed for future cases, since we are planning to add more payment processors (bitcoin payments for example). In this case signup page can render payment type selector first and then for each type change update the list of access packages depending on the selected type:


Pay via: (*) Credit Card / Direct Debit       ( ) Paypal         ( ) Bitcoins


This should make payment page more flexible for the end users and will increase your conversion ratio.

Link to comment
Share on other sites

For advertising based on customer feedback we added 1 more adjustment - it will be also possible to specify the categories where this advertising should NOT be displayed:




On your site some pages belong to a category or list of categories (e.g. videos by category page, video view page and etc). Advertising settings can be adjusted so that a particular advertising is only displayed on pages with specific list of categories and vice versa, to disallow a particular advertising on pages with specific categories.

Link to comment
Share on other sites

Hi, interested on HLS support, may I know does this function have development schedule? And will there have a tool to help us to convert current video to ts format?


It is planned in 4.0, since HLS is not a single file format, we will have to adjust many KVS functionality related to that - conversion, copying, validation, access protection, moving videos between storage servers, adding new formats and etc.


We do not have any schedule for 4.0 yet. Probably 3.9.3 will be the last version in 3.x branch and after that we will start working with 4.x. But anyway once available, this functionality can be used for old projects that are updated. At the moment we think that having standalone MP4s will be still required for old devices support. So for existing customers when updated to 4.0 they should be able to simply create new video format for HLS and KVS will create all the needed files.

Link to comment
Share on other sites

Added internal payment processor, which allows purchasing premium access for tokens in upgrade scenario.

In KVS members can earn tokens by posting comments, uploading videos, sending traffic to their videos and etc. other activity on your site. Now they can use earned tokens to convert their profile to premium status. If you have premium content on your site, which you only allow to be watched by premium members, you can use this new feature to stimulate activity of your regular members which do not want to pay for premium access or as an additional motivation for better activity.


This payment processor also supports rebills. Rebills will occur when premium access period is finished and only if users have enough tokens on their account to pay for the new period. If users do not have enough tokens, their premium access will be closed and they will need to purchase another access package when earn more tokens.


This new feature is available as one of the payment processors in Memberzone -> Web Payments section of admin panel. It can be enabled and used in conjunction with previous enhancements added in this area that allow using multiple payment processors at the same time. All you need is to create access packages in this processor and modify upgrade block template with rendering of multiple payment methods if you also offer paid access.


You will also need to add this text to Website UI -> Texts section so that error message is displayed correctly:

validation.upgrade.card_package_id_not_enough_tokens = You don't have enough tokens to buy this package.



Link to comment
Share on other sites

Hey, do you think you can implement two features :

1. Edit the video while the video is processing.

2. See the page of the video while the video is processing (so user can start sharing the video even if the video is not ready)

Link to comment
Share on other sites

1. Edit the video while the video is processing.


This is too complicated change which affects all the logic within admin panel, will require too much regression testing. So won't waste time on this, you can modify video after it is fully processed. If you do not want it to be posted on frontend without changes, then you can configure that all new videos are in disabled status until you manually activate them.


2. See the page of the video while the video is processing (so user can start sharing the video even if the video is not ready)


I think this is something we can actually easily do. In Settings -> Website Settings there is an option which controls availability of disabled content:




We can add one more option here allowing also access content which is in process or error status. But then you will also need to update template to make sure that such videos are being rendering correctly.

Link to comment
Share on other sites

  • 2 weeks later...

Just added a set of enhancements into video formats settings, watermarking and trailer creation.


Now KVS fully supports scrolling watermarks. You can upload your watermark text as image and configure it to be scrolling from right to left, or from left to right for a certain duration.

One of the following watermark positions is supported:

- Top of the video

- Bottom of the video

- Both top and bottom (random)


Also you can define set of time points where you want this watermark to start scrolling in seconds and / or percents. Thus you can configure that your watermark is displayed 3 times per video, on 10th second, on 50% of the video and on 100% of the video (at the very end, KVS will automatically start showing it before the video ends).


Here are the new settings, they appear only if you select scrolling positions:



Here is how it scrolls on top of video (note the video is vertical, so there are empty black boxes on sides which are not parts of video):




Another promised enhancement is related to trailer creation optimization and better quality. We changed the logic of trailer creation to use new ffmpeg features, which resulted in faster time and less quality loss. Also we added support for crossfade as a bonus to this enhancement.


Now when you configure trailer creation you can choose either you want 1s or 2s crossfade (more options here would bring more code complexity, so we decided to keep only 2 possible scenarios + no crossfade of cause):



The trailers now look more advanced and lets say more professional with that.


Finally a small enhancement that was really missing in video format settings is ability to configure download file order. When you enable downloading for multiple video formats, they are typically displayed as a list in site design. Before they were displayed in random order, so now you can fully control this:


  • Like 1
Link to comment
Share on other sites

One more set of enhancements into conversion engine added.


Background task logging was adjusted to provide easy-to-read info about task processing phases and timings. This will help to understand which operations take much time and can provide hint for optimizations. For example copying files to remote storage servers may take much time and will indicate poor connection between servers. Since we are planning to add more complexity into video conversion engine in future, having this info may become extremely useful for big projects.


This information will be available in Administration -> Background tasks log section for every new task processed after update:




Another enhancement is designed to speed up initial video conversion for projects that have many content uploaded by users and provide videos in multiple qualities.


As one can see from the previous task operations breakdown screenshot, conversion engine spent 36+19=55 seconds on creating 720p and 480p video formats, which are conditionally-optional (e.g. they are only auto-created for video source files which support their sizes). Also conversion engine spent 16+27=43 seconds to create required video formats, which are 360p and Trailer. So total time spent on processing this video is almost 2 minutes and the video will become active only after full processing is done.


If your project already has a queue of 100 videos to be processed, a newly uploaded video will become active in ~200 minutes after upload, because all previously uploaded videos should be processed first. Starting from 3.9.2 you can enable half-processing for the uploaded videos, which will postpone optional formats creation and will activate videos faster, but only with required formats. Then it will add additional tasks to queue to create the remaining conditionally-optional formats. It may take actually longer due to more filecopy operations that will happen, but new videos will become available faster.


The new option is located in Settings -> Content Settings area:



Link to comment
Share on other sites

In 3.9.1 we did some GUI change in video screenshot editor, which faded-out screenshots selected for deleting. It turned out that this feature brought inconvenience to users which created many screenshots initially and then manually chose which screenshots should be kept. In order to do that you normally first click on Select all screenshots for delete option and then uncheck screenshots you want to keep. With fade-out enabled this can be inconvenient and may not allow you choose screenshots:




So in 3.9.2 we added one more option to disable fade-out to make sure you can clearly see all screenshots:


Link to comment
Share on other sites

Added support to limit video format download speed in embed codes. Like for other speed limitations this is configured in video format settings for each format individually.

See this post for more info on this:



Now it will also be possible to override speed limit for embed codes, while having no or higher limit directly on your site:



You can use it to save some bandwidth if your videos are embedded heavily.

Link to comment
Share on other sites

Starting with 3.9.2 KVS will monitor all changes in theme files (including JS and CSS files) and will keep version history for them. This is needed for security reasons as well as will allow rollback any template changes that were done incorrectly. This functionality will also keep track of changes done on filesystem, but with 1 hour delay.


The new functionality is available in Website UI -> Change history section. It is a table of changes with details page, where you can see old VS new content.

We didn't add visual compare utility for now to save dev time, we will probably add it in future. Meanwhile it can be used with any online text compare tools available for free.



Link to comment
Share on other sites

Hi guys!

I see in KVS v3.9.0 Announcements this feature:


"Videos now have the HD flag that is added automatically when the video has HD files. Due to this you can display a HD indicator in video lists as well as filter only HD or non-HD videos. After the update, your system will launch a background task to set this flag for all videos."


What about automatically setted flag for 4K videos? In our time HD videos are must have and, as for me, I see no sense to indicate them, but there is a need to mark the 4K videos, since they are still exclusive! Indicator like here is needed - https://www.blacked.com/

Link to comment
Share on other sites

What about automatically setted flag for 4K videos? In our time HD videos are must have and, as for me, I see no sense to indicate them, but there is a need to mark the 4K videos, since they are still exclusive! Indicator like here is needed - https://www.blacked.com/


We can add this flag, no problem with that. However we will not be able to add filtering for this flag, as adding this will invalidate caching for all list_videos blocks and will generate much pain for high profile projects during next update. So we only add such fixes in major releases (e.g. 3.8.0, 3.9.0). We do not have any major release left. So we would better postpone this to 4.0 together with similar flag for VR videos.


However there is a workaround you can use to display this flag in videos list if you have 4k format. You should first look into your 4k format postfix (e.g. _4k.mp4) and then in videos list template you can use this code:

{{assign var="postfix4k" value="_4k.mp4"}}
{{if $item.formats[$postfix4k].postfix==$postfix4k}}
4K Ultra HD


It was possible to use this approach before for HD videos as well, but the filtering (e.g. display only HD or 4K videos) can only be possible with the flag we added in 3.9.0 for HD videos.

Link to comment
Share on other sites

Added ability to display related search queries for the given category or tag. Previously it was only possible to display related queries for another search query.

This functionality is typically used for advanced SEO keywords handling.


This is done by search_results block. We added 4 parameters to hook on category ID / directory (or tag ID / directory) passed in page URL. In most cases only directories are used for tags and categories:




Here is an example of 2 related search queries displayed for category named "Techno":



Link to comment
Share on other sites

Moved last post to the right topic:



Please note that this topic is related to 3.9.2 implementation and discussion around the features we have already reported here, not about new potential features for future releases.

Link to comment
Share on other sites

In 3.9.2 it will be possible now to show video / album pages (and embed codes) for content which is still in process or processing ended up with error.

Previously such content sent 404 error. In order to enable that you should change option in Settings -> Website settings:




This enhancement can be extremely useful for "upload and share" sites, since users can start sharing the uploaded videos even before their processing is completed.

Link to comment
Share on other sites

Added support for ranking models and content sources by various criteria.

This feature will allow you display model or content source rank (e.g. #1, #2 and etc) plus show the difference between current and previous rank.


For example in model_view or content_source_view block you can use this code:

Rank: #{{$data.rank}} ({{if $data.rank<$data.last_rank}}{{$data.last_rank-$data.rank}} positions up{{elseif $data.rank>$data.last_rank}}{{$data.rank-$data.last_rank}} positions down{{else}}same as before{{/if}})


For list_models or list_content_sources block the code is pretty similar, but $data should be replaced with $item:

Rank: #{{$item.rank}} ({{if $item.rank<$item.last_rank}}{{$item.last_rank-$item.rank}} positions up{{elseif $item.rank>$item.last_rank}}{{$item.rank-$item.last_rank}} positions down{{else}}same as before{{/if}})


This code can show:

Rank: #5 (10 positions up)


The feature is configured in Settings -> Content Settings, after update the ranking will not be activated, you need to manually enable it if needed:



Link to comment
Share on other sites

  • 2 weeks later...

Another big set of changes to multi-threaded import and grabbers plugin.


For grabbers plugin we will move all grabbers to youtube-dl. We will start doing this as soon as 3.9.2 beta will be available.

It will now be possible to specify youtube-dl path in the plugin settings, and also to provide any options you want. One of the useful options is to install aria2 tool, which can be used together with youtube-dl to speed up downloads by downloading files in multiple threads. Many tube sites use bandwidth throttling, which limits download speed for a single request, but it can be skipped if download in multiple threads, which can be done with aria2 tool. Therefore grabbers can download video files much much faster. Another possibly useful option is to limit download speed, if you don't want grabbers to fully utilize your server's bandwidth (-r 20k). Here is an example of configuration:




One more enhancement for grabbers is ability to specify list of proxy servers for particular grabber, which site has blocked your server IP:




There will be another way to workaround this if your server has multiple available IPs, you can change IP by adding this option to youtube-dl path to force it use another IP for outgoing requests:

--source-address <IP>


Finally, an option was added to allow importing categories as tags from specific grabbers to avoid mess in category names in your database:




In import we've put a set of more enhancements which should prevent creating duplicate videos, categories and tags when running import in multi-threaded mode.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...