We have started "nextgen" architecture for KVS and this update contains it with very low exposure in production projects for now. We started with replacing rarely used site blocks, such as list_dvds_groups, list_models_groups, list_categories_groups, list_content_sources_groups, dvd_group_view and content_source_group_view. Here are major highlights of the new features for the changed blocks; in future versions these features will be applied to other blocks as well.
More sorting options.
Added skip_default_filter parameter that allows displaying object list without applying its default filtering (for example list blocks display active objects by default, this parameter can be used to allow inactive objects as well).
Added skip_ids / show_ids parameters that can be used to display lists with specific objects only, referred by their numeric IDs or external IDs where supported.
Other skip_xxx and show_xxx parameters, typical for all list blocks, are now allowed to be specified not only in numeric IDs, but also in external IDs and titles.
In dynamic filters we added support for filtering by multiple objects with specifying their directories (previously it was only possible to specify their IDs). For example it will now be possible to build SEO-friendly URLs when filtering objects by multiple tags, for example /prefix/tag1/tag2/tag3/. Previously such URL would only allow to specify numeric tag IDs, e.g. /prefix/1/2/3/.
Text search will be supported in all list blocks.
Set of conversion engine enhancements:
In video format settings it will now be possible to connect pre-roll and post-roll intros to video content source custom files. This will provide ability to have different intros for videos from different content sources.
In conversion server settings we previously added ability to configure which types of background tasks were allowed to run on a specific conversion server. But there was one exclusion that if conversion server was empty and had no running tasks, KVS would anyway put a task into it, even if this task has other type. Now we added additional option to configure whether you want this server to accept any types of tasks when free, or you want this server to exclusively work with specific task types and not accept other tasks.
In previous update we added ability to truncate video duration via mass edit. In the current update we extended this functionality and added support to also truncate videos from start and / or end.
We did a major optimization of how multiple video files are re-created for the same video. Previously re-creating multiple files submitted a separate background task for each video file, now KVS will submit a single task for each video to re-create multiple formats if needed. This will also provide optimization for semi-processing feature, when for new videos KVS is configured to create only required formats first, and then submits separate tasks to create other formats.
Improvements in exporting feeds:
Exporting feeds can now be configured to only export active categorization objects (e.g. categories, tags and etc).
Added support to export data in JSON format, which could be easier to parse from the outside rather than XML or CSV.
Added support to set random sorting.
Added support to specify custom date formatting in CSV feed format.
Added ability to download as file rather than display as text.
Player and player advertising enhancements:
We renamed "VAST profiles" into "Advertising profiles" and made them usable not only for pre-roll and post-roll player ads, but also for popunder and video click ads.
Player advertising profiles will now also support filtering by device types and categories, so that you can show different player advertising for mobile and desktop devices, or for different video categories.
Player logo text and controlbar text will now support binding to video content source title.
It will be possible to configure player popunder to be triggered for every video (previously it required minimum 1 minute timeout to be triggered again).
We added support for WEBP format in player preview images; plus player will now automatically choose the best-sized preview image based on device screen size. This is very important for Google Performance Index that highly depends on the loaded player preview image, which is considered as Largest Contentful Paint object. This feature will be activated on update for all projects automatically, because we think it is rather important. Please make sure your server's imagemagick has support for WEBP format, otherwise your project will not be switched. WARNING! If you are using 3rd-party player, please read update notes on KVS forum for more details on the potential issue with this change.
On Android devices player will be locked to landscape orientation when going to fullscreen.
We did a set of changes to the way how videos and albums are deleted by site users and how deleted status is handled by KVS site engine:
Previously any content deleted by site users would be deleted using full delete method. We decided to change this to mark deleted by default (this means that content files will be deleted, but content records will be kept in database and their direct URLs will still be available). If you want to restore previous behavior, you can use delete_mode parameter that was added into list_videos and list_albums blocks.
In addition to that, it will be possible to configure that content in deleted status returns HTTP 410 status instead of HTTP 200 status. This can be configured in Settings -> Website settings under Content statuses availability option.
Mark deleted functionality will now allow to use %ORIGIN_URLS% token in email message, that will list content URLs it was grabbed from (only for content that was grabbed from 3rd-party websites).
Usability enhancements in admin panel:
In Personal settings you can now switch off non-important admin panel notifications.
In the whole admin panel we changed the global logic of displaying object references in lists. Previously references were clickable to display their corresponding editors, e.g. in comment list if you click username it would show user editor for the clicked user. The new behavior will filter the list by the clicked value rather than open its editor. We also added an option in Personal settings if you want to restore the old behavior.
Everywhere in stats we added filtering by today and yesterday periods.
In comments it will now be possible to delete all new comments with 1 click. Useful if your site was spammed with lots of comments.
In playlists we added support for "Activate and delete" and "Delete and activate" batch operations.
Importing feeds will now support Duplicate action, so that you don't have to manually duplicate all options if you need to create many similar feeds.
Site feedbacks can now be re-opened if needed and replied again.
One of the major features in 5.5.0 is integration with DigiRegs.com, DMCA service provider. The main reason of adding this is the increased number of DMCA requests that many tube sites now have to deal with every day. DigiRegs.com provides a paid access to their video copyright API that allows detecting video copyright holder for every uploaded video. Basically this is the same model they use to automatically scan your sites for videos that infringe copyrights and then send you requests for deleting copyrighted videos. The plugin is designed to interfere with video conversion process and identify copyrighted videos before they actually get converted and then such videos could be either deleted, or truncated to maximum duration allowed by copyright holder, or deactivated so that you decide manually for each of them.
Support for synonyms was added to content sources similar to synonyms in categories, models and tags.
Terminology filter in grabbers and importing feeds will now also check content categorization in addition to title. For example you can add some category names into terminology filter and no videos from that categories will be imported.
In FTP content uploader plugin we added ability to specify admin flag for all imported content.
Site engine was updated to automatically disallow displaying site in iframe by default. WARNING! This behavior may break some projects that are using KVS upload functionality on other domains via iframes, or using specific playlist embedding techniques that rely on specific pages created in Website UI section. If you are affected by this, you can restore the old behavior in Settings -> Website settings. Standard KVS embed codes are not affected by this change, only public parts of your site will stop allow embedding.
In video_edit block we added support for configuring minimum and maximum video quality validation for the uploaded video files.
If embedding option is allowed in video_edit block, it will also support grabbers and can be used to automatically grab embed codes from the supported sites. Thus it will be possible to simply specify video URL from youtube.com for example, and have KVS automatically grab its embed code, screenshot and duration within few seconds.
Text search in list_videos and list_albums blocks will now also load query info from database if exists. This data can be used to disallow indexing of search result pages for queries that do not exist in your database.
Search stats in admin panel will now support filtering by number of results and by whether they were added by admins or by site users.
Neuroscore plugin was extended with ability to allow repeated scoring execution for videos that have already been scored, if for any reason you need to score then manually again.
A new parameter was added into list_videos block to prevent using external search plugin for this specific block. This can be useful if you use separate blocks to search with specific options that are not supported by external search.
Ability to filter events by type was added into list_members_events block.
Bugs that have been fixed:
[SEVERE] KVS didn't update the number of found videos when using external search (since 5.3.0).
[MEDIUM] KVS embed codes did not allow cookies correctly.
[MEDIUM] When using player popunder it could work incorrectly on mobile devices when scrolling page.
[LOW] Some VPAID ads didn't allow pause videos in them.
[LOW] Duration filter in importing feeds didn't work when duration value was not specified in feed data.
[LOW] Activating or deactivating content via list actions didn't create audit log records.
[LOW] Mass select GUI did not support content URLs from satellite domains.
[LOW] Start page on satellites would show wrong number of content in some cases.
[LOW] Password fields in KVS admin panel were limited to max 32 symbols.
[LOW] Usages of [rand] or [pseudorand] structures were limited to max 32 tokens per text.