I. Conversion and Storage Engine
Integration with CDN systems was completely reworked. Previously, KVS supported a fixed set of CDN providers. Starting from version 3, you can use any CDN provider easily. In order to do that, a set of standard features needs to be implemented using the CDN’s API.
Full checking of content served from a particular storage server was added. Older versions had "test direct link", "test protected link" and "test streaming" features. The new version groups these features into one, which can do everything automatically and deliver a summary report. All checks support different content protection options, e.g. direct links to video files should not work, direct links to album files should work only for publicly allowed format, and so on. This new feature lets you easily check whether each storage server’s configuration is valid.
Integration between the main server and remote conversion servers was enhanced. The main server now shows the configured server libraries and echo responses for every conversion server. You can also specify conversion server timezone offset if needed in order to prevent fake error messages.
Video formats now offer configuring per-sponsor duration limits using custom sponsor fields (similar to customization of different watermarks for different sponsors).
When a multipart trailer is created, you can now have the last trailer part taken from the end of the last fragment. Previously, all trailer parts were taken from the beginning of fragments, including the last part.
Bulk creating of similar trailers with different size / quality options was drastically optimized and now takes much less time.
When a video format is being re-created via mass edit, you can now disable watermarking for this operation. This option is useful if another format file acts as a source file and it already has watermark. In this case no double watermarking will occur.
Deleting timeline screenshots for any video format where timeline screenshots are disabled was added. You can use this option if you want to get more free space and you don't need timeline screenshots for a format anymore.
Thumbnail creation logic was completely rewritten to reduce the number of intermediary ImageMagick runs and optimize the resulting image quality.
Background task logging was improved. Now you can see completed % for all tasks, not only content group tasks, as it was before.
Extra ImageMagick options field was added for video screenshot formats.. You can use it for all screenshots that are uploaded manually. Previously, for all manually uploaded screenshots, there were no ImageMagick options (only resize and watermark were applied). Thus, you couldn’t post-process the uploaded screenshots with ImageMagick. Now this is fixed.
Creating video screenshot format with source size (not resized to any particular size) was added. To do that, you should specify predefined word source as a format size.
Each background task now has its own log.
II. Premium Access
Support for token-based access in addition to time-limited access was added. Tokens are available for standard (non-premium) members and can be purchased via payment system or “awarded” for social activity. Members can spend their tokens to get premium access to content. Members will still be seen as having standard / active status, but when accessing the purchased content, they will be seen as premium. You can combine time-limited and token-based access options on your site without any restrictions.
To facilitate the extended member area functionality, KVS now has a separate Memberzone Settings page where you can enable token-based access for particular types of content (individual settings for standard / premium videos and albums) and configure their default pricing. For any particular video / album, you can manually override its price using standalone or mass editing.
Memberzone Settings also offer configuring awards for member activity. An award is an amount of tokens given for a particular activity such as initial signup, avatar upload, posting a comment (with a possibility to limit minimum length), uploading a video (with a possibility to limit minimum duration), creating an album (with possibility to limit minimum image count).
Displaying the list of purchased videos and albums for each member was added.
The much-awaited feature allowing for content with posting date relative to user registration date was added. It lets you configure relative post dates for content so that such content becomes visible to a member after a certain period of their activity in the member area. This option can only be enabled from low-level system configuration because it seriously affects the functionality of the site and admin panels. It is disabled by default. When enabled, this feature lets you configure day offset for every video and album. Positive offset means that this content will become visible on the Nth day after registration (for example, 1 means that content will become visible immediately after registration, 10 means that content will become visible on the 10th day after registration). Negative offset is also allowed and means that (a) this content will be visible all the time, even when a user is not registered / logged in, (b) its post date will always be shifted according to the current date. For example, a relative post date of -10 means that such content will appear to be added 10 days ago, regardless of today's date. Relative post dates can be combined with absolute post dates, e.g. one part of your content may use one, the other part the other.
A KVS site can now be integrated with any affiliate system which works via a .htpasswd files. Now you can easily move any affiliate website to KVS. You only need to upload a special KVS script into a folder protected by the .htpasswd file managed by your affiliate system. This script will automatically create users in the KVS database if required and will log them in. At the same time there is no need for any changes in the way your affiliate system works. It’s only your older site which will be replaced with your new KVS-powered site.
The signup block was enhanced to allow auto-generated unique name / password pairs. Users are not required to enter them manually when they sign up. In this case signup form will be limited to just payment method selection.
Payment processor logging was completely rewritten. All events are now logged into a database which allows for filtering and analysis.
III. Multilanguage Support
One the most drastic changes in version 3 is data localization. You can configure several additional languages in the admin panel and upload translated titles / descriptions for all content and categories. A new UI was added which handles translation, and translating video and album titles is now possible on the editing page.
Website engine was enhanced so that the website can work in a localized mode for any of the additional languages. Displaying the site in localized mode does not mean you need to have 100% of the translation done. If some of the items are not yet translated, they will be displayed with original titles / descriptions. The new version also lets you use language files for template texts (GUI elements, language CSS files and more). See the documentation for more details about localizing your website.
Website comments blocks can now display only comments posted in the current locale. Each comment saves the locale it was posted in. This option is disabled by default so that all comments will be displayed.
Log analyzer plugin for audit logs was added. It summarizes all information about the activity of your content managers. In addition to that, it can also be used to see how much content your staff translated.
IV. Photo Albums
Finally photo albums are using the same storage architecture as videos. Now you can create a separate storage group to store albums source files, formats and ZIP files (albums and videos cannot use the same storage groups, the groups need to be different).
Albums creation is now handled by conversion servers.
Uploading album source images one by one, not only in ZIP file, is now possible.
Overall albums functionality in admin panel was extended to about the same as for videos. The “descwriter” mode is now supported; also, optional image display on album edit page was added. New album list filters were added.
Image gallery import was also added.
Basic support for HTML5 mode was added. The HTML5 mode can only be used when playing MP4 files and will be enabled automatically if the user's device does not support Flash.
Player settings let you choose the embed code mode: iframe (supports HTML5) or standard embed (supports only Flash). This setting affects all embed codes generated by KVS.
If you have multiple video formats displayed in the player, the format user selected last time will be remembered and automatically chosen for other videos.
When the mouse is positioned over a clickable logo, it will cause a blurring effect to emphasize that logo is clickable.
Several Flash-security problems that were previously fixed in a separate patch are now fixed in this update.
VI. Content Import and Feeds
Import usability: cancellable background tasks for import processes were added and protection from main server HDD overflow was implemented. Now, each time you start importing content, you will see a background task which has a completed % and has its own log. You can remove this task if you want to cancel the importing. If the main server’s HDD has less free space than the configured limit, all import processes will pause and wait for more disk space. This can happen if you import a large volume of data which is temporarily downloaded to your main server for future processing.
Text data for all imports will be saved on the main server. Therefore, you will be able to find any data you imported before.
Checking for URL duplicates was added. It can be used to prevent you from importing duplicate sets of data.
Category synonyms support and models aliases during import were added. New categories / models will not be created in case your database already has categories / models with such synonyms / pseudonyms.
When importing pseudo videos, it is now possible to detect the duration and create screenshots automatically based on the given video file URL. This will help you create sites with the same content but different sets of screenshots.
The logic of duplicate videos detection in importing feeds is now different. Older versions used the feed URL domain for building a unique video key which caused problems if there were several different feeds working on the same domain and returning different videos with the same ID. In the new version, you can manually configure a prefix for building unique video keys for every feed.
Feeds logging is very different in the new version. All events are logged into a database, which allows for analysis and filtering.
Exporting feeds how have duration filters and can return only videos with completed screenshot rotation; also, the feeds can now return temporary video file URLs.
VII. Website Engine
Support for defining global blocks was added: these are blocks which are not tied to any particular page. Each global block has only 1 instance of its settings and template which lets you edit the settings in one place in order to affect multiple site pages, i.e. all pages where these blocks are inserted. Global blocks can be used for displaying the same content on different site pages (for example, global list of tags or categories). Previously, you had to insert a block on each page and duplicate its settings on all remaining pages. With global block support, you can set up these settings only once.
You can now group site pages using a title prefix.
For each website page, you can now completely disable it at any time. Also you can configure member access level required to load a page.
Country list can be used in any template now. Also, we can provide you with country flag icons on demand (by default flag icons are not included).
Certain issues with trade script integration were addressed.
Members can now create their channels and manage them. For each channel, they can configure who can post videos there, all users, only friends, or channel owner only. Also, flagging for channels was added.
Playlists are a new community feature. Members can create their own playlists and manage them. Also, support for multiple favorites groups was added. You can use this in many different ways depending on your purposes. These new features let you display a dropdown menu with playlists / favorites groups when users are adding a video / album to their favorites. Content can also be moved between groups of favorites.
Members can now be marked as trusted which means all their activity won’t need to be reviewed by the site administrator.
Displaying content visiting history for any member was added.
Members can now add / change their status message. Changing a status message will trigger a community event.
Mass emailings now feature filtering recipients by status: all active members, only premium members, or only webmasters.
You can now enter a nickname during signup process (in addition to a username). Previously, a nickname was always the same as the username.
Comment storage architecture was completely reworked. Comment section in admin panel was moved to the users section. In the new version, comments for all objects are displayed in a single list. This change helped make the list_comments block dramatically faster.
Anonymous users can now sign their comments with a nickname.
Smileys and bb-code are now supported.
For every comments block, you can now set whether comments from registered members require administrator approval.
X. Admin Panel and Usability
The “enable support access” button was moved to the start page.
Update plugin: for your convenience, we are now using cumulative updates instead sequential. Now, you will need to go through update procedure only once.
The number of remaining login attempts will now be displayed on the admin panel’s login page if you enter invalid credentials and bruteforce protection is enabled.
Each admin panel list supports continuous multiselection with 2 clicks. Click the topmost checkbox for your selection and then click the lowest one while pressing the Shift key. All checkboxes inside this interval will be selected.
Videos / albums mass edit is now possible for any filtered objects list, even if they are not displayed on one page. Now you don't need to adjust pagination in order to be able to select a lot of of objects at a time and mass edit them. Just configure the filter and choose the option in the batch actions list.
When using categories / models selector, you can now create new categories / models on the fly. In order to do that, you just enter a new object name and select the corresponding option in the dropdown list (new object). When saving the current video or album, all new categories / models will be created. Another new feature is that you can copy-paste comma-separated categories / models right into the field.
Objects which support flagging now show all assigned flags on their edit pages in admin panel (videos, albums, DVDs / channels) and let you delete any flags.
Mass tag editing is now possible in the admin panel.
Traffic stats now include page views not only for videos, but for albums as well.
Mass edit enhancements: setting rating to 0 and changing content owner (the admin who ‘owns’ the content) was added. This can be useful to divide content between multiple content managers so that they each work on their own share. In order to do that, configure each content manager’s administrator account as having access only to the owned content. This can be done in administrator settings.
Several new filters and columns for display were added for videos and albums in the admin panel.
The stats section now features improved navigation between different stats pages.
When displaying different images in the admin panel (screenshots, photos), KVS will now adjust to your screen resolution automatically.
Locking a video / album directory field to its title was added. If enabled, this option will make the directory field read-only and will always adjust the object title if changes occur (e.g. it will change automatically each time a title is modified). This makes sense if your content managers assign final titles to the content; in this case you can always be sure that they remember to change directory accordingly.
The admin panel now has a new top level section called Administration which includes pages from older Settings not related to any settings. Some options from System Settings migrated to other subsections; System Settings was renamed to Content Settings.
XI. Site Blocks
System config now features an option which lets you move your site’s JS files to CDN. You can’t do it via templates as JS files are included automatically by the site’s engine.
Showing related videos / albums by title was added. These new modes are available in mode_related parameter of the list_videos and list_albums blocks.
The list_dvds block now can display videos for each DVD / channel in the list. In order to do that, enable pull_videos in block settings and specify limit / sorting in the additional parameters.
The list_albums block now has the show_image_info parameter which lets you display all the images for every album in the list.
The list_videos, list_albums and list_content blocks now feature skip_content_sources and show_content_sources parameters which let you filter displayed content by content sources. The list_videos block now also has skip_dvds and show_dvds parameters which let you filter displayed content by DVDs / Channels.
Now you can place next / previous links on video view and album view pages. These will open next / previous videos or albums based on post date sorting. In order to add these links, enable show_next_and_previous_info parameters which were added to video_view and album_view blocks.
The list_categories block now features the show_only_with_albums_or_videos parameter which can show only the categories which have at least 1 video or album in them.
Dynamic filtering by content source groups was added to the list_videos block.
The new version supports sending over the video file name or the ZIP file name when downloading a photo album. Just add download_filename=yourfilename parameter to the download link.
XII. Other Features
Models now have eye color field.
Categories have more custom fields.
You can now set up white list of IPs in the settings for the video grabbing protection. Now you can configure a list of IPs which will never be blocked. Also, you can now see all IPs which are currently blocked.
Model aliases (similar to synonyms for categories and tags) were added. An extra plugin was added to auto-pick models based on content title / description.
The Category auto-selection plugin was improved; now you can set in which cases it should be triggered. In older versions, this plugin was only triggered if a video / album had no categories.