Jump to content

KVS 4.0 implementation (previously was 3.9.2)

Tech Support

Recommended Posts

In tube scrappers also enhanced filtering support and in addition to duration filter added rating and date filters.


In the below configuration example only videos greater than 1 minute AND having rating more than 70% AND also published less than 5 days ago will be added by this scrapper:


Link to comment
Share on other sites

  • 2 weeks later...

Added support for paid subscriptions inside KVS for users and channels by using tokens. This functionality utilizes the same subscription model, as was used before (ability to subscribe models, users, content sources and channels). However for users and channels it will now be possible to enable paid subscription, so that users can only subscribe them if they have enough tokens on their balance. The settings are located in Settings -> Memberzone settings area, which were also regrouped for clear understanding.


In settings it is possible to define default price in tokens (can be 0, which means that they do not require tokens by default) and period of subscription. Individual users and channels can override the default price in their settings.





When subscribing a user or channel that requires payment, user will spend the needed amount of tokens and will get PREMIUM access level to all videos / albums that are owned by this channel or user for the configured period of time. When the period ends, KVS will try to extend subscription if this user has enough tokens. If not, subscription will be expired and user will no longer have PREMIUM access to this content.


All such purchases are shown in purchase stats in admin panel. The example picture shows several subscription purchases rebilled by KVS every 24 hours:



Then it is also possible to enable users to earn 100% or less tokens from the subscriptions they sell. Users can either sell their profile as a whole, or their created channels separately. Users cannot specify subscription period, but they can specify price in tokens they want to get.


In order to activate that in themes, it will be needed to adjust template codes for member_profile_edit / dvd_edit blocks to allow user specify tokens. Here is example template code for default theme, that will work in both blocks and will render a textfield to enter tokens price either for the whole profile (if put into member_profile_edit) or for individual channels (if put into dvd_edit):


{{if $allow_tokens==1}}
<div class="row">
<label for="edit_profile_tokens_required" class="field-label">Tokens required for {{$tokens_period_default}} days</label>
<input type="text" name="tokens_required" id="edit_profile_tokens_required" class="textfield" value="{{if $smarty.post.tokens_required>0}}{{$smarty.post.tokens_required}}{{/if}}" placeholder="default price {{$tokens_price_default}} with commission {{$tokens_commission}}%"/>
<div class="field-error down"></div>


Then if settings allow users to earn tokens from selling subscriptions to their profiles or channels, they will get awards with each subscription and rebill. The sum of award depends on subscription price and your commission configured in memberzone settings:




Finally if users want to cancel their rebills on specific subscriptions, they can unsubscribe using existing way (either on user / channel page, or in the list of their subscriptions). They will still have PREMIUM access until the period will end, then their subscription will not be rebilled.


Within this new functionality we also updated several blocks to display the needed data:


- list_members_subscriptions: mode_purchased parameter was added to display list of active subscriptions that were paid. In this mode it will be possible to display expiry date {{$item.expiry_date}}, whether the subscription was cancelled {{if $item.is_cancelled==1}}cancelled{{else}}active{{/if}} and also tokens required for every rebill {{$item.tokens}}.


- list_members_tokens: added 2 types of awards {{if $item.flow_type=='award_user_sale'}}subscription sold{{elseif $item.flow_type=='award_dvd_sale'}}channel subscription sold{{/if}} and 2 types of purchases {{if $item.flow_type=='purchase_dvd'}}channel purchase{{elseif $item.flow_type=='purchase_user'}}user purchase{{/if}}.


- dvd_view, member_profile_view: added ability to display price for this channel / user in tokens {{$data.tokens_required}} and period of subscription in days {{$data.tokens_required_period}}. If you want to separate free channels /users from paid channels / users, you should compare price with 0: {{if $data.tokens_requred==0}}free{{else}}paid{{/if}}.


- dvd_edit, member_profile_edit: exposed variable to check if it is possible to earn tokens from selling channels / users {{if $allow_tokens==1}}user can specify price{{/if}}, show default price {{$tokens_price_default}}, show subscription period configured in settings {{$tokens_period_default}} and show your site commission rate in percents {{$tokens_commission}}.

  • Like 1
Link to comment
Share on other sites

We added ability to minify HTML code generated by KVS on the fly, however we decided not to add this option into admin panel.


The reason is that this is mostly needed for "geeks", it can produce some issues for other users if enabled. Here is what we've noticed:


1) If users provide multi-line descriptions when uploading videos or albums, they will be reset to single-line if this video or album is edited in site area again, since multi-line text will not be supported in textareas anymore.


2) If using custom JS or CSS inline code, the lines which are not terminated correctly will produce browser errors and will stop working. Consider this example:


.test {
display: none
color: black


This CSS will not work, since there are no semicolons at the end of each statement. Same with JS code, but may also break other valid JS code on the page.


If you would like to enable this, you can add this option into /admin/include/setup.php file (or change to true, if it exists already):


Link to comment
Share on other sites



I have question to your plans regarding mail system:

  • Ability to configure scheduled emails with updates on the site - here you should be able to use standard template functions like adding blocks and rendering email similar to any page on your site. For example it should be possible to render top videos / albums of the last week and send to your users each weekend.

Tell me please: can be configured these mailings from the admin panel? Including their design and appearance. Or will it be necessary to hire a designer to create templates in accordance with the design of the site for such mailings?

Link to comment
Share on other sites

Unfortunately we will not be able to finish all planned emailing changes in 3.9.2, they will be postponed to 3.9.3. We are planning to implement at least ability to configure emails via 3rd-party mail servers, which is the highly demanded feature.


As for your question, we planned that user should be able to configure email templates in admin panel, e.g. specify their HTML code like currently for page templates. Their design and appearance should be of cause designed by someone.


You can actually modify email templates right now in KVS, but not from admin panel.

Link to comment
Share on other sites

In 3.9.2 we continue advertising enhancements with some important player advertising improvements.


First of all it will now be possible to connect all HTML ads (start screen, pre-roll, post-roll and on-pause screen) to a site advertising spot:




This will not simply allow you to rotate ads in player, but with the bunch of other advertising features we've added into 3.9.2 this will allow ULTIMATE control on what and where is displayed in player HTML ads:

- you can now show separate player ads for desktop and mobile users

- you can disable specific ads for phone users where screens are too small to show ads

- you can easily disable ads for premium / registered users in just few clicks

- you can show specific ads for specific countries

- you can show specific ads for specific video categories

- you can control the exact date and time when specific ads will be displayed


Here is an example configuration of Player start advertising spot, which basically has 2 ads: one for desktop and tablet users and another for phones:




And also for pre-roll ads (advertising which plays some time before the actual video starts) it will now be possible to configure how often it will be repeated. It may be annoying to show this ad for every video, so player settings will allow to reduce the frequency of this advertising by specifying how many videos should be skipped before the next pre-roll repeat:



Link to comment
Share on other sites

In videos massedit we changed the way how video format can be created or deleted. Previously it was only possible to create / delete 1 format at a time.


Now it will be possible to create / delete multiple formats with the same massedit operation:



Also it will now be possible to change Access level field via massedit for both videos and albums.

Link to comment
Share on other sites

For storage servers we added sync option, which will allow to sync content on one server based on content on other servers from the same group.


This is needed in 2 cases:

1) When you want to move all content to a new server, you add a new server into the same storage group and previously you had to manually copy all content to a new server, before it can be activated.

2) When you want to load balance the same content between multiple servers.


Now we added a sync option and you won't need to copy anything manually. When you add a new storage server into the existing group, you can use this option to start syncing content on this server:




This will create low priority background task, which will sync all content using iterations limited to max 100 objects (videos or albums) per iteration. Since this task may take long time (days and even weeks to copy all content between servers), the iterative approach will ensure that your conversion queue won't be frozen for the long period:



  • Like 1
Link to comment
Share on other sites

Added support for new Mass select videos / albums GUI, which allows specifying list of URLs / IDs to select videos / albums from them and do one of the following:

- select them in list page

- mass edit them

- mark them as deleted

- delete them completely


Here is the new GUI:



Very Good Option:


But If you make a email sending option With mark as deleted Really great


And allow save email for again use like:



Thank you very much for your notification.
These video has been removed: 

Link to comment
Share on other sites



Thanks For The Email Option




You have added only one option in Grabber Tab# Delete


Please add one more option for Disable/Enable Autopilot Mode on, Some Selected Grabber

Today I try to Disable all grabber but there only Delete option,,




Link to comment
Share on other sites


You have added only one option in Grabber Tab# Delete


Please add one more option for Disable/Enable Autopilot Mode on, Some Selected Grabber

Today I try to Disable all grabber but there only Delete option,,




Please provide more info... hard to understand what that means.

Link to comment
Share on other sites

In video / album editor under categorization settings we added ability to run category / tag /model autoselection plugins for individual videos on their editing.

This can be useful if your content writers process videos before activation and you have some categorization set to be auto-selected from title / description / tags:


Link to comment
Share on other sites

  • 3 weeks later...

A set of enhancements was added into conversion engine, storage system and CDN API.


1) Conversion engine now supports API for programmatically configure source files pre-processing, similar what KVS already has for watermarks:



We decided not to expose this feature for public usage, because we believe the new options will even more complicate existing options.

This functionality is intended for advanced users who want to:

  • Rotate and flip videos to make their video stream look unique for bots. Videos that do not contain text can be flipped without any visual sign of that. Rotation will cause small crop from top / bottom so that black triangles are not visible within the video. Typically 1.5 - 2 degree is more than enough, bigger values will be visible.
  • Crop watermarks from top / bottom by specifying crop offsets in pixels.
  • Crop a specific video fragment, for example skip 30 seconds from video beginning and then 10 from end. Typically used to remove inline advertising.

In order to use this functionality you should understand what you are doing and why. Normally you will also need to think how to provide these options, because they should be different for different videos. For example you can specify them in video custom fields and then parse this data in API function, or if you consider multiple videos share the same common settings you can group them with content sources and specify these options in content source custom fields.


To enable source file pre-processing you will need to add /admin/include/kvs_filter_video.php file with the following code:


function kvs_filter_video($video_data)
   return array(
     'crop_top' => 10, // pixels from top
     'crop_bottom' => 20, // pixels from bottom
     'offset_start' => 3, // seconds from the beginning
     'offset_end' => 4, // seconds from the end
     'rotate_degree' => 2, // degrees, KVS will automatically randomize direction
     'flip' => 1 // if to flip video horizontally



2) Feature request from popular CDN provider: we have extended CDN API function used for content invalidation. Previously this function was only called for changed / deleted files. KVS will now also call it for the new files. In order to indicate operation type we added one more argument of string type with one of the following values:

  • add: new files / folders should be added to CDN
  • change: files / folders should be invalidated on CDN
  • delete: files / folders should be deleted from CDN
  • multiple: special case for albums when some files may be added, some deleted and some changed within the same invalidation request

Here is the new function interface (function name should be adjusted based on CDN API filename):


function cdnapi_invalidate_resources($server_url,$folders,$ files,$operation)
// code invalidation logic here



3) It is now possible to deactivate storage groups. This can be useful if you have multiple storage groups for different types of content. For example if you have a separate group with LQ servers for less popular / old content. Normally KVS is configured to auto-choose storage group based on free space available. In this case if you want to prevent KVS from auto-selecting any specific storage groups you can just deactivate them. Then all new content will be added to other groups, but you can manually move any content to the deactivated groups at any time.

Link to comment
Share on other sites

In memberzone awards it will now be possible to grant tokens for login action. You can specify minimum interval between subsequent logins that will be required so that tokens are assigned (for example no less than 20 hours since last login award):




This can be used to motivate members return back to your website every day, especially if you have some benefits available for token owners.

Link to comment
Share on other sites

  • 1 month later...

Sorry guys for making this update so long, we know that many clients are waiting for the new announced features and fixes.

We are very close to finalize development and we only have some more player enhancements, such as VAST support and other minor ones.

Thanks for your patience!


Meanwhile, big changes were implemented in image settings.


First of all, we added support for 2nd image for categories and members (previously only 1 image was supported). Changing categories will be really painful during update, since we will have to fix templates that use old approach of displaying avatars, so 100% of projects will be affected. However it will finally make these images fully consistent across the whole product.


Another enhancement here is that now you will be able to configure resize logic for every of these images, while before that they all were automatically resize to fixed this. This will make possible using cover images in profiles, models, categories and other, which should potentially allow having dynamic height.


Here are the updated settings:



Link to comment
Share on other sites

Dynamic HTTP parameters, which are typically used to pass partner refs into paysites, were enhanced to allow specifying how long the passed values are kept in user cookies. Previously KVS automatically saved all passed values for 360 days, but now you can adjust this period to what is needed. Settings for dynamic variables are located in Settings -> Website Settings:



Link to comment
Share on other sites

  • 3 weeks later...

Implemented a set of player enhancements.


1) For related videos it will now be possible to enable them on pause, they will show up if you don't have any on-pause advertising, otherwise advertising will have more priority:




2) Metadata preload checkbox was replaced with selectbox, which also supports "auto" option in addition to metadata preload option. Auto preload will hint browser to start buffering the whole video, while metadata preload will require preloading of a small part of video metadata. While using auto preload may increase your traffic spending, some reports suggest better user behavior patterns when using auto preload. Here is the new option:




3) There is a new option added which will force player show video global duration instead of current video file duration. This is mostly needed for paysites, when you show 1-minute trailer to your free users instead of showing the whole video. In this case KVS player will show video duration as 1 minute, which is not really true if we think of the whole video. The new option will force player to show the real duration of the whole video and this may be looking more convincing for user to sign up:




4) In player popunder advertising we fixed a bug with popunder being triggered again and again if website was open in multiple tabs. At the same time we also added one more option, which will allow you to control how often the popunder should be triggered for the same user:




5) Finally we added progress indicator for pre-roll and post-roll ads - a small yellow line in default skins:



  • Like 1
Link to comment
Share on other sites

  • 3 weeks later...

Our final enhancement in this update is VAST support in KVS player and player settings.


Most commercial players will require monthly / yearly fee for allowing you to use their VAST module. KVS player will do it free for you, but will only allow a limited set of VAST providers.

Here are 2 providers that will be supported at this moment:

- teasernet.com

- adwise.agency


In future we may add more providers.


In order to use VAST from these providers you will first need to register there and have your site approved, so that you can get VAST configuration URL from them.

After you have the URL, you can enable VAST on preroll (postroll is also supported, but rarely used) in player settings:




In KVS admin panel you can control whether this preroll advertising should be rendered on each video, or every 2 videos or etc. using the standard preroll control. But you can't control whether it can be skipped or not. The ability to skip advertising is controlled by your VAST provider, since such ads may be paid less.

Link to comment
Share on other sites

  • 2 weeks later...

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...