Kernel Video Sharing quick start / User Guide

Contents

Key features
The concept of video content
Video content storage architecture
Video multiformats support
Video format FFmpeg options
Video screenshots
Video content types
Source files
Video statuses explained
Adding videos: manually
Adding videos: mass import
Adding videos: import via feeds
Videos mass edit
Post-processing video screenshots
Exporting videos: manually
Exporting videos: export via feeds
Antihotlink and memberzone protection for videos
Фотоальбомы
Статусы фотоальбомов
Мультиформатность фотоальбомов
Защита фотографий
Исходники фотографий
Добавление фотоальбомов и работа с ними
Обработка фоновых задач
Фоновые задачи и их типы
Режим паузы
Сервера конвертации
Категоризация контента
Базовая категоризация: категории и тэги
Контент провайдеры, модели и DVD / каналы
Мемберзона
Общая функциональность мемберзоны
Настройка платного доступа
Организация доступа к видео для пользователей
Защита мемберзоны от мультидоступа
Сообщество
Общая функциональность сообщества
Пользователи и профили
Загрузка видео пользователями
Создание фотоальбомов пользователями
Другие аспекты
Ротатор
Ротация видео
Ротация скриншотов видео
Продвинутые вопросы
Создание сайтов сателлитов
Использование embed кода на свои видео
Динамические HTTP параметры и прием вебмастерского трафика
Управление работниками / администраторами
Статистика сайта
Статистика по трафику
Статистика по поиску на сайте
Статистика по использованию ваших embed кодов
Рефереры или источники трафика
Статистика мемберзоны и сообщества
Построение сайта и управление им
Общие концепции
Отладка страниц сайта
Производительность и нагрузка
Общая информация
Защита от перегрузки
Статистика производительности
Плагины
С чего начать...
Что делать если...?

Key features

KVS is one of the leading tube-scripts and video content managers since 2009. Here are the key reasons why KVS is better than all other competitors:

This guide describes KVS features in brief and also provides some information on how you can use them in real life scenarios.

The concept of video content

Video content storage architecture

In most cases all videos are stored on the same server where KVS is installed. This is the simplest topology but not the best one. Content server requires faster HDD / bandwidth, at the same time main server is more dependent on CPU and memory.

If you are going to set up several video projects on different servers, we recommend you storing your videos on one server (with higher bandwidth and speedy HDD) and setting up your websites on another server (with higher CPU performance and managed support).

KVS will allow you to configure storage servers easily. Here is the explanation on how video content storage architecture is working.

Every video which requires content storage (see the section later about video content types) is bound to a storage server group and stores its video files on all physical servers of this server group. In most cases a server group will consist of only one physical server where video files will be stored.

You can create server groups with several physical servers in there. This can be used to load balance the bandwidth between several physical servers. In some cases you will benefit from balancing video bandwidth in comparison to streaming videos from one physical server. Load balancing is performed based on weights and (or) countries. With KVS you can easily create a CDN, where USA visitor will stream videos from physical server located in USA and other visitors will stream videos from another server(s). Content load balancing can also be used to push visitors from non-solvent countries to a slower server.

When HDD of your content server will be utilized, you will need to add a new server(s) in order to store all new videos there. As we just said, a video is bound to a server group (not to individual physical servers), so in this case you should add a new server group and add a new physical server(s) there. After you do that all new videos will be automatically bound to the server group with more free space (unless you configure another behavior by the system option which will be described below).

Video content storage configuration example
Video content storage configuration example.

In this above example the first server group stores 1520 videos and almost completely utilized (0.04% free space which is the minimum among all physical servers of this group). This group contains 2 physical servers and video is being stored on them both. In order to add 916 more videos we created another server group and added a new physical server into it.

If you want to force videos being bound to a particular server group (without free space analysis) you can use the corresponding option in system settings, which allows changing the default behavior. There is also one more option in system settings which specifies the minimum free space limit required for adding videos to a particular server group. This option is designed to warn you about HDD utilization.

Besides functionality to create own CDNs, KVS also supports some public CDNs, such as for example Swiftwill, Inc. CDN. The main difference of public CDN usage is that KVS copies files on once to a single server; all further replication is done by CDN provider.

Video multiformats support

Important! Video multiformats feature is not available in basic package of KVS. In basic package you will be able to set up only one video format.

KVS provides ability to set up a list of different video formats with different settings. Having a list of formats is required for many scenarios, such as:

Important! Video multiformats feature is supported for only those video content types, which store videos on your servers (File upload and Gallery URL - see section about video content types).

Video formats are configured in settings section. You can configure formats in 2 groups: each group is designed for different types of videos. In order to understand that, we should jump to the topic of memberzone creation with KVS. KVS provides ability to separate videos into several types: standard videos (public or private) and premium videos. In memberzone context you can set up that standard videos are available for everyone, but premium videos are fully available for premium members only (this is just an example). More detailed explanation of memberzone features you can find later in this guide. For the sake of video multiformats configuration you should understand that standard videos and premium videos can have completely different sets of video formats. For example standard videos will have only one FLV format and premium videos will have several formats: full FLV format of high quality + limited FLV format + additional formats for download.

You can set up video formats which will be automatically created for every video by convertion engine ( therefore video files of such formats will be reliably available for every video). You can also set up optional formats which will be available only if uploaded manually. This video format behavior is configured by status attribute with the following possible values:

Important! When we say "all videos" or "every video" we mean all videos of the particular type (standard or premium). As every video format is applicable only for one video type, adding a new required format for premium videos will only affect premium videos (if you have them).

When you define video formats for a particular video type you should create at least one Required format. So that every video will have at least one video file. If you want to create additional formats, their files will be created based on source file (if it exists) or based on one of the existing video files with the greatest file size.

Important! When you add a Required video format you should clearly understand that files of this format will be automatically created for all videos (of the particular type). This background operation may take days or even weeks (it depends on your videos count and server settings). In order to prevent you from loosing time we recommend you creating all new formats as Optional, then use videos mass edit to create files of these formats for several videos (in testing purpose). If there are no problems with creating video files for several videos - most probably you can safely change this format's status to Required and wait for all background tasks to finish for all other videos.

There is one important thing about Optional video formats. You can specify such a format to be conditionally-optional, so that video files of this format will be created automatically, but only when source video size and duration allow doing this. For example you want to store videos in 3 sizes: SD, HD and Full HD. Let's suppose that Full HD format can only be created from part of your source files. You should declare such format as conditionally-optional, so that video files are not required but created when possible.

Conditionally-optional video formats are only created when you upload a new video. If you already have videos and want to force conditionally-optional format to be created for videos where possible - you should use mass-edit feature and manually start video format creation.

Every video format may also have timeline screenshots bound to it. Timeline screenshots are screenshots which will be created based on the format video file. You will find more details about screenshots in the next sections.

Let's take a look at simple configuration example, which will be also used later in the next sections of this guide. Our imaginary website will stream standard videos in low and high quality, it will also store premium videos in HD quality using MP4 and WMV format with full length and 1-minute MP4 trailer. WMV format will be optional, because we are going to upload it manually. In this section we will not pay attention to any access rules and we will assume that all video formats are accessible for everyone.

Here are our formats:

Video formats for the example
Video formats for the example.

Video format FFmpeg options

KVS uses FFmpeg, which is the most stable and supportable open source library designed for video conversion. FFmpeg options are specified separately for every video format. Here are the default options:

-vcodec libx264 -vpre lossless_medium -threads 0 -r 25 -g 50 -crf 33 -me_method hex -trellis 0 -bf 8 -directpred auto -acodec libfaac -ar 44100 -ab 128k -f flv

Let's explain the most important from them:

More info about FFmpeg options you can find at its official website. More info about h264 options and presets you can find here.

Video screenshots

KVS separates screenshots into 2 big groups: overview screenshots and timeline screenshots. Overview screenshots are created based on source video files and are mainly used on website pages and for exporting videos into another projects where screenshots of different sizes are required. Timeline screenshots can be (optionally) created for video formats where they are enabled. Every video format will provide a separate set of timeline screenshots. Timeline screenshots are mainly designed for being displayed inside player on mouse move over timeline. This doesn't prevent you from using them wherever you want: display on separate pages and etc.

Similar to videos, the screenshots also support multiformats. You can create several format both for overview and for timeline screenshots. For every screenshot format you can specify its own size, ImageMagick options and watermark. In most cases you will create several screenshot formats of different size in order to use them for website design elements which require images of different sizes. If you want to change options of any screenshots format (for example you decided to use watermark) you can re-create all screenshots of this format for all videos by using the corresponding option in screenshot format context menu.

KVS will not require you to specify the fixed number of screenshots (both overview and timeline). Is it fairly legal that different videos have different number of screenshots. Within one video you will always have the same images count for different screenshot formats, because every screenshot format is just a different form of the same screenshot.

The initial overview screenshot count is configured in system settings:

Specifying screenshots count in system settings
Specifying screenshots count in system settings.

Let's say it once again: in spite of the fact that you can specify the initial overview screenshots count as a fixed number, you will be able to remove or add screenshots manually for any video at any time. If you want to have 5 good screenshots for every video, we recommend you to set the initial count to a bigger number, for example 10. In many cases some screenshots are shot over a bad scene. In you have 10 initially, you will be able to leave 5 which are the best from your point of view.

Timeline screenshots as opposed to overview are always created with dynamic count, because they are bound to video format duration. In order to enable timeline screenshots and configure their duration you should edit video formats, for which you want to create them. When you enable timeline screenshots you should specify creation interval in seconds and name of the folder that will be used to store them. After you enable timeline screenshots for a video format, all existing videos with that format will be post-processed in order to create timeline screenshots for them.

Important! When enabling timeline screenshots you should specify folder name, but not path. We recommend to choose folder name based on video format name, e.g. for Premium MP4 HQ format you can specify premium_mp4_hq folder name for timeline screenshots.

Let's return back to our demonstration formats example and see how it can look like from timeline screenshots perspective. Suppose we want to enable timeline screenshots only for those formats, which will be streamed in our player on website:

Title Postfix Timelines enabled? Folder Timelines interval
Standard videos
MP4 LQ .mp4 no
MP4 HQ _hq.mp4 no
Premium videos
Premium MP4 _premium.mp4 yes premium_mp4 10 sec
Premium WMV _premium.wmv no
Premium Trailer MP4 _premium_trailer.mp4 yes premium_trailer_mp4 10 sec

After you enable timeline screenshots for all required video formats, you can add screenshot formats for timeline screenshots.

Screenshot formats
Screenshot formats.

Every screenshot format has a special option that allows specifying how video file aspect ratio is being translated into a screenshot file. There are 2 possible scenarios:

The comparison of different aspect ratio adjustments
The comparison of different aspect ratio adjustments.

Video content types

At the current time KVS supports 5 video content types which are different in video storage and processing aspects:

As you can see from the above explanation, multiformats feature is supported only for content types that store video files at your servers (File upload and Gallery URL). In order to create videos of these content types you should have at least one storage server group with at least one server there.

When adding videos manually, you should first select a content type and then fill in different fields based on which content type you've chosen. When importing a list of videos, content type for every video will be detected based on the fields you provided for that video (see more info in video import section of this document).

Important! Gallery URLs are only supported during video import.

Source files

Source files are usually uploaded (specified) by you in order to detect video duration and create video formats and overview screenshots from them.

In some cases you may want video duration (which is displayed on website) to be detected from one of the video's formats instead of source files. For example you may have 1-hour source videos, but you want to stream only 3-minutes trailers with your tube site. If duration is detected from source files, your all videos will have 1-hour duration, which is not valid in your case. For these needs you should use Take video duration from option is system settings, which allows you to select one of the video formats that will be used to detect video duration from.

Source files are not saved by default. You can enable saving source files in system settings of admin panel. Source files can be used later for creating new / more format video files and another overview screenshots after the video is successfully created.

For different content types source files are:

Important! Source files are stored on your main server (e.g. source files are not bound to video server group).

Source files storage folder should be defined as internal in Nginx config, so that it can't be accessed from the web:

location ^~ /contents/videos_sources/ {
    root /usr/home/clients/ftp0/domains/kernel-tube.com/html; # specify full path to the root of /contents/videos_sources/ folder
    internal; # disable direct access
}

Video statuses explained

Video has 5 possible statuses:

In admin panel you can only edit videos which are active or disabled.

Adding videos: manually

In order to add a video manually you should go to Videos section of admin panel. You will be able to add videos of all content types, except Gallery URL, which is designed for mass adding.

If you don't want to specify video title (maybe you would like it to be populated by desc-writer), you should create video in Disabled status. Then desc-writer will be able to filter disabled videos only, iterate over them and provide titles / descriptions for them, moving videos into Active status. Remember that videos will be available on website only in Active status.

Directory field is used for se-friendly URLs creation. This field is auto-generated and is present for almost every object in KVS. In most cases you should leave this field empty and let KVS automatically generate it based on object title. If you have a russian-speaking project, you should ensure that transliteration flag enabled in /admin/include/setup.php:

$config['is_translit_directories']="true";

KVS provides ability to schedule video to be visible on website in the future. Datetime of video so-called visibility is configured in Post date field, which can be set to the current date or to any date in past or future. Using this feature you can plan how much videos appear on your website every day (for example 10 videos daily) and you don't need to add them every day. Instead you can add all videos initially scheduled to appear on specific date and time, which is configured by Post date field. Time also matters! If you have a video which is scheduled to appear on January 1st at 18:50, this video will appear exactly after 18:50 server time. There is an option in system settings which provides ability to configure how the time is being auto-generated for the Post date field: random, current server time or 00:00.

Important! One of the often asked questions you ask is: "Why are my videos not visible on website? They are active, they have post date set to today". In this case you probably forgot about time - videos will appear today but later, as their post time has not yet reached.

Type of the video (public, private and premium) gives opportunity to classify video according to its access level. As you remember every video type has a separate set of video formats (public and private subtypes belong to standard type). If you select video type which doesn't have any video formats created for it, you will not be able to add video until you add at least one video format. The main purpose of video types is to help you in organizing premium memberzone. Access to videos is being controlled by specifying the access level of every video format. If a user has no access to every video format file of the specific video - user will not be able to see this video in any way. Find more information about video access limitations in the corresponding section about premium memberzone. Private videos are mostly designed for community: by default only video owner friend's can access his / her private videos (you can change this behavior by providing another logic in video_view block template).

Content source field is used to bind videos to its advertising sponsor. Content sources are created in categorization section of admin panel. When you create a content source you should specify its title and your referral link. Additionally you can upload a screenshot (in default templates it will be rendered as a banner over a video player), specify text description, upload up to 10 additional files. Advertising information from content sources can be used in website templates and as different ads inside a video player (it can be configured in player settings).

Important! Many KVS users design their websites to use content source data for displaying a lot of advertising information about their sponsors: different screenshots, reviews, ratings, feedback and other. We strongly recommend you using this feature for advertising your sponsors. Besides video view page KVS will allow you to create a separate website section with sponsor reviews, ratings / comments and etc.

We should also notice that you will have complete stats about all outgoing clicks to your sponsors (even including clicks for the ads inside player). Please find more information about counting outgoing traffic in statistics section of this document.

DVD / channel field can be used to mark this video as a scene in a DVD or channel. Once you do that, you will be able to display this video at DVD / channel page on your website. This functionality is only available for ultimate package.

User field specifies which user you want this video to be posted from. KVS installation will create the default Admin user, which is also set as a default user for all videos. If you want to change the defaults, you can do that in system settings.

Depending on video content type (Video adding option radio buttons) you will have to fill in different fields, which are related to the content type you choose:

There are certain differences in a way you can upload video overview screenshots when creating new videos. You can upload either one JPG image, or list of JPG images in a ZIP file (of cause its legal to leave this field empty and in this case all video screenshots will be created automatically). Based on the overview screenshots count, configured in system settings KVS will go though one of the following scenarios:

Important! Video screenshots that are uploaded manually are processed differently than screenshots created automatically from video: for manually uploaded screenshots there are no cropping and ImageMagick options used; all the other options including aspect ratio change and watermarking are used in the same way. It means that KVS expects you to manually do cropping and image enhancements for all manually uploaded screenshots.

Besides main data fields there are also 3 custom text fields which can be enabled in customization settings. You can use these fields both in admin panel and website without any limitations for your needs.

Adding videos: mass import

Mass import in comparison to manual video adding provides ability to add hundreds of videos in several clicks. In addition to that mass import gives some outstanding features:

Mass import supports input data in any format. You can specify which row and column separators should be used. Each row should define a single video, each column should define a single data field. Based on your input data format you should select Fields for import in the same order as your input data defines them. Initially there are only 5 possible slots under Fields for import, but when you select them all - new slots will appear.

The following table lists all supported import fields:

Field Description Value example
Video ID Video unique ID, in most cases you won't use this field 18725
Title Video title This is a demo video
Directory Video directory - field, which is used to generate se-friendly URLs. In most cases you won't use this field, because it is autogenerated from title. this-is-a-demo-video
Description Video description Video description
Categories Comma-separated list of video categories titles. If any if the specified categories doesn't exist - it will be created automatically. You may want to modify the autocreated categories later in order to fill in other fields. Auto, Fun, Ads
Models Comma-separated list of video models titles. If any if the specified models doesn't exist - it will be created automatically. You may want to modify the autocreated models later in order to fill in other fields. Brad Pitt, Kis Cole
Tags Comma-separated list of video tags. auto, cars, advertising, fun, brad pitt, kis cole, cool ads
Content source Content source (sponsor) title. If there is no content source with such title - it will be created automatically. The autocreated content sources should always be modified later, because you should specify outgoing URLs for them. YouTube
DVD / Channel DVD / Channel title. If there is no DVD / channel with such title - it will be created automatically. You may want to modify the autocreated DVDs / channels later in order to fill in other fields. Funny Videos Channel
Source video file Video file URL which should be downloaded and used as a source file (which is a base for all video formats and overview screenshots). If you specify this field, the imported video will have File upload content type. http://domain.com/videos_for_import/1643.wmv
Video file "XXX" Video file URL which should be downloaded and used as a file for XXX video format without any conversion. There are similar import fields for all video formats available. You can use these fields as a replacement for source video file or in addition to it (this was described before). If you specify this field, the imported video will have File upload content type. http://domain.com/videos_for_import/1643.flv
Hosted file URL Video file URL which will be hotlinked without storing this file on your server(s). If you specify this field, the imported video will have Hosted file content type. http://domain.com/public_videos/1876.flv
Embed code Embed code with third party player and video. If you specify this field, the imported video will have Embed code content type. <embed>...</embed>
Gallery URL Video page URL which either contains video player or a set of video files embedded into HTML. If you specify this field, the imported video will have Gallery URL content type. http://domain.com/videos/video-page.html
Outgoing URL Video click URL which will be used to redirect users to when they click this video. If you specify this field, the imported video will have Pseudo video content type. http://domain.com/videos/video-page.html
Duration Video duration in HH:MM:SS or MM:SS format, or just a number of seconds. 1:20:43
Post date Date and time when video should become available on your website. The format is either YYYY-MM-DD HH:MM or YYYY-MM-DD. 2012-12-24 14:52
Rating Video initial rating; integer number from 1 to 10 inclusive. 4
User Username (login) of user who will be the owner of this video. If there is no user with such username, the user will be created automatically. admin
Status Video status, one of the following: active or disabled. active
Type Video type, one of the following: public, private or premium. public
Administrator flag The title of flag, which should be set as administrator flag for this video. You can configure flags in categorization section of admin panel. Admin Flag
Main screenshot number The number of main overview screenshot for the video. 3
Main screenshot Main overview screenshot URL for this video (will be downloaded and stored in the internal storage). http://domain.com/videos_for_import/1643.jpg
Overview screenshots Either ZIP file URL, which contains overview screenshots sources, or comma-separated list of overview screenshots URLs (will be downloaded and stored in the internal storage). http://domain.com/videos_for_import/1643.zip

Important! If you upload files for video formats separately by using Video file "XXX" fields, you should note that import will consider only fields which match the current video type (standard or premium. Video type can be specified in Type field. For standard videos (public or private types) the import engine will only consider Video file "XXX" fields related to standard video formats. In similar way it will act for premium videos. If Type field is not specified all videos are considered as public (standard).

The simplest way to define import data is to populate it in Excel table (each row is a video, each column is an import field). After you specify all the required columns and rows, you should select them and copy-paste to the textarea on video import page. You should use new line character (\r\n in Windows and \n in Unix) for Line separator and tab character (\t) for Field separator. Then you should select all fields for import in the correct order and specify any additional options.

Import data example
Import data example. Column names should not be copy-pasted, they are entered for demonstration.
Import fields selection
Import fields selection.

KVS allows you to save import schemas for reuse in future. In order to do that you should specify the new schema name in create new schema field and check the default flag if this schema should be always selected by default. After you start the import process, all selected fields and options will be persisted in this schema. Later you can reuse this schema to avoid filling the same options. Any chnages in import fields and options will be persisted each time you start the import process.

If any of the saved schemas is marked with default flag, this schema will be automatically selected when you enter video import page.

Important! When you select the saved schema do not forget to change post date interval, which will contain dates from the previous import (if you use post date randomization this option). Specify relative number of days instead of exact dates in order to avoid changing dates for each import.

As many sponsors provide ability export their data in different formats, we recommend you to create different import schemas for different sponsors. It will be more easy to reuse them rather than using one schema and modifying import options each time you import data from another sponsor.

After you specify import data and options KVS will validate them. This is a background operation, which may take long time (data URLs and galleries validation usually takes long time). But you will be able to see its progress. After the validation is completed, you will see validation results with all found errors, warnings and information messages. If the result is not OK for you, you can return back and fix import data / options.

Import data validation can result in messages of the following types:

After you confirm the results of import validation - the final import process will be started.

Adding videos: import via feeds

Importing feeds should be used for video adding automation. In comparison to manual import, a feed works fully fully automated once created and activated. You can use feeds for the following tasks:

KVS supports feeds of the following formats:

When creating an importing feed you should specify feed URL with all options, specify feed execution interval and optionally specify the maximum number of videos that can be added during one execution. If you want this feed to be executed only once, you should enable the corresponding checkbox; such feed will be disabled after the first execution.

In addition to basic options, importing feeds provide ability to configure videos adding methodology in various aspects, which are supported by KVS. You can configure that all videos from feed have the same content provider. You can also configure if screenshots should be created by KVS or if screenshots provided by the feed should be used. Moreover you can configure videos post date distribution (when videos will appear on website). Finally you can configure which content type (content type affects how videos are stored and displayed) should be used for imported videos. Let's look into these aspects in more details.

Videos adding mode specifies content type handling for every video from this feed. The following options are supported:

Video post dates allows you to configure when videos from this feed will become visible on website. As you know, videos will appear on website only in active status and only after their post datetime comes. Video post dates setting configures only date part (the time part is populated according to system setting Post time part: random, current server time or 00:00). The following options are supported:

Let's consider a simple example of configuring post dates for feeds. Suppose we have 10 feeds which are executed once a day and contain 5-10 new videos daily. But we don't need so much videos every day, we need only 30 daily. Also we want feeds to populate videos for next 10 days only.

As feeds are executed daily, they will provide 50-100 videos every day. Initially we need to quickly populate the next 10 days interval and then reduce to 30 new videos daily. In order to do that, for every feed we should select Distribute uniformly option in Video post dates field. For days interval we should select 10 days and daily limit we will set into 30 videos. Please note that this should be repeated for every feed. After this is done, during next 4-8 days all feeds will add all their videos in order to pre-populate future 10 days interval, so that there are 300 videos in future.

After that your feeds will come to the point, when they will be able to add only 30 new videos for the last day of 10 days interval. There will be a problem here: not all feeds will be able to add videos, as there is a total limitation of 30 videos. In this case you should specify the maximum number of videos that can be added by a single feed during its execution (Videos limit field). If you specify 3 for each of 10 feeds, you will guarantee that each feed adds only 3 videos at a time and all your 10 feeds will add 30 videos daily.

Important! A feed will not add videos which have already been added by this feed. But if different feeds contain the same video, this video will be added by each feed and thus it will be duplicated in your database.

Массовое редактирование видео

Массовое редактирование видео позволяет проводить широкий спектр одинаковых операций над большим количеством видео. Список операций таков:

Массовое редактирование видео запускается из групповых операций на списке видео в панели администрирования. Вы можете либо выделить галочками нужные для редактирования видео и использовать опцию Массовое редактирование выбранных, либо воспользоваться опцией Массовое редактирование всех видео.

Важно! Массовое редактирование будет проводиться только по видео в Активном или Неактивном статусе.

Работа со скриншотами видео

После первичной обработки видео движок создаст все необходимые форматы для обзорных и таймлайновых скриншотов. Исходники всех скриншотов также будут сохранены для того, чтобы их можно было использовать в дальнейшем для создания новых форматов, поэтому для операций добавления новых форматов скриншотов требуется мало ресурсов и времени.

Ручная работа со скриншотами включает в себя следующие операции:

Важно! Ручная работа со скриншотами - это работа напрямую с исходниками, а не с форматами. Например, если вы заменяете второй скриншот - то на самом деле заменяется исходник второго скриншота, а затем на его основе создаются файлы всех форматов для второго скриншота, т.е. любые действия будут происходить симметрично ко всем форматам.

Если созданные после первичной обработки видео обзорные скриншоты вас не удовлетворяют, вы можете воспользоваться операцией ручного граббинга. Для начала вам необходимо выбрать источник граббинга. Источник может выбираться исходя из нескольких вариантов:

Поскольку исходные файлы, которые будут отображаться для выбора, могут иметь очень большой размер, KVS позволяет указать размер тумбы, до которого необходимо уменьшить все исходники перед отображением.

Настройки ручного граббинга
Настройки ручного граббинга. На выходе будет 3 скриншота, из которых вы сможете выбрать любое количество.

Экспорт данных о видео

Экспорт данных о видео позволяет вам получить текстовый файл нужного формата с любыми данными о видео. Поддерживается большое количество фильтров для тонкой настройки объема данных. В большинстве случаев файл экспорта затем используется для импорта данных в другие скрипты.

Экспорт видео через фиды

Фиды экспорта (доступны во всех пакетах KVS кроме базового и второго) позволяют предоставить публичный или ограниченно-публичный доступ к вашей базе видео для других вебмастеров.

Вы можете создать любое количество фидов экспорта с различными опциями, это делается в разделе Видео. После активизации фида экспорта (Активный статус) он станет доступен по ссылке, которую вы можете увидеть на странице редактирования фида. В дополнительных действиях на списке фидов экспорта вы также найдете опции, позволяющие вам открыть главную страницу фида с информацией о нем и сделать тестовый запрос на фид.

Чтобы предоставить информацию о фиде вашим партнерам, вам достаточно дать им ссылку на фид и, при необходимости, пароль. Пароль нужен в тех случаях, когда вы хотите сделать фид доступным для ограниченного количества партнеров. Для этого просто задайте пароль в настройках фида.

При пустом запросе на фид пользователь может увидеть страницу документации фида, на которой перечислены все поддерживаемые фидом опции, а также приведено несколько примеров. С точки зрения фидов экспорта KVS пошел нестандартным путем, стремясь предоставить как можно больше опций и удобств для конечных пользователей фидов. Основные опции такие:

Непосредственно в настройках фида вы можете указать типы видео и типы контента, которые будут отдаваться фидом. Если с типом видео все ясно (публичный, личный, премиум и возможные комбинации), то для типов контента стоит дать пояснения:

Защита видеофайлов от хотлинка и несанкционированного доступа

Защита видеофайлов от хотлинка базируется на двух уровнях защиты, оба из которых являются обязательными для полноценной защиты:

Для включения первого уровня защиты необходимо настроить Nginx таким образом, чтобы папка где хранятся видео была объявлена внутренней папкой (директива internal в конфиге). Если вы этого не сделаете, то видео не будет доступно через скрипт раздачи. Объявление внутренней папки в конфиге Nginx делается таким образом:

location ^~ /contents/videos/ {
    flv; # включение FLV стриминга
    root /usr/home/clients/ftp0/domains/kernel-tube.com/html; # указание полного пути к корневой папке для /contents/videos/
    internal; # запрет доступа к папке по прямым ссылкам
}

Для того, чтобы убедиться в корректной настройке защиты первого уровня вам необходимо проверить что:

Проверка работоспособности защиты
Проверка работоспособности защиты. Для каждого сервера с видео есть возможность проверить прямую ссылку на видео и ссылку на скрипт раздачи.

Защита первого уровня тем не менее позволяет поставить хотлинк на видео, используя вместо прямой ссылки на видео ссылку на скрипт раздачи. Для того, чтобы ссылки на скрипт раздачи перестали работать вне плеера, необходимо включить защиту второго уровня.

Защита второго уровня включается аналогично защите первого уровня в системных настройках в панели администрирования. После включения этой защиты, возможность хотлинковать скрипт раздачи будет отсутствовать. Кроме защиты скрипта раздачи видео от хотлинка, защита второго уровня позволяет защитить видеофайлы от автоматического граббинга. Дополнительно вы можете также ограничить количество видеофайлов, которое можно просмотреть (скачать) с одного IP адреса за указанный интервал времени.

Защита видео контента
Защита видео контента в системных настройках.

Кроме глобальных настроек защиты от хотлинка, которые применяются сразу для фидеофайлов всех форматов, KVS предоставляет возможность отдельной настройки защиты для отдельных форматов видео. Рассмотрим эти опции подробнее, поскольку они очень важны для реализации некоторых аспектов проекта с мультиформатностью видео. Эти опции находятся на странице добавления / редактирования формата видео:

Опции защиты отдельного формата видео
Опции защиты отдельного формата видео.

Фотоальбомы

Фотоальбомы в KVS являются частью функциональности сообщества, но с течением времени они все больше перерастают в отдельный тип контента в дополнение к видео. Фотоальбомы доступны только в полном пакете KVS.

Статусы фотоальбомов

Фотоальбомы имеют набор статусов, аналогичный видео:

Вы можете редактировать фотоальбомы, которые находятся только в активном или неактивном статусе.

Мультиформатность фотоальбомов

По аналогии со скриншотами видео для фотоальбомов существует понятие мультиформатности. Как и скриншоты видео, фотоальбомы поддерживают 2 группы форматов:

В настройке форматов для фотоальбомов есть несколько отличий от настройки форматов скриншотов видео. Во-первых, форматы для фотоальбомов имеют несколько другие опции для учета аспект ратио изображений:

Сравнение различных вариантов подгона аспект ратио для фотоальбомов
Сравнение различных вариантов подгона аспект ратио для фотоальбомов.

Во-вторых, форматы для фотоальбомов позволяют настраивать уровень доступа к ним. Так, вы можете настроить, чтобы большие фотографии были доступны только зарегистрированным или премиум пользователям, а маленькие (тумбы) - всем. Или вообще сделать чтобы всем были доступны только главные фотографии альбомов (форматы из группы просмотра), а основные изображения всех размеров - только привилегированным пользователям.

Защита фотографий

Ссылки на фотографии альбомов могут быть двух видов: прямые и защищенные. Прямые ссылки - это ссылки непосредственно на сами файлы фотографий. Прямые ссылки должны работать только для тех форматов, которые доступны всем. Использование прямых ссылок для части форматов обусловлено снижением нагрузки на Apache, поэтому мы рекомендуем использовать прямые ссылки для всех форматов, которые доступны всем без исключения.

Защищенные ссылки проводят запросы через скрипт раздачи (как и с видеофайлами), который разрешает или запрещает отображение фотографий исходя из настроек формата и текущего статуса пользователя. Защищенные ссылки имеет смысл использовать для форматов, которые доступны только привилегированным пользователям. В шаблонах по умолчанию так и сделано - защищенные ссылки используются только для больших фотографий.

Приведем примеры прямых и защищенных ссылок, чтобы вы видели разницу:

# прямая ссылка ведет на сам файл
http://domain.com/contents/albums/main/700x525/0/37/225.jpg

# защищенная ссылка перехватывается .htaccess и обрабатывается скриптом раздачи
http://domain.com/get_image/398b4bd3ff0df7e881db01797b456872/main/700x525/0/37/225.jpg/

Кроме использования защищенных ссылок, для полноценной защиты доступа к фотографиям необходимо закрыть возможность прямого обращения к файлам в обход скрипта раздачи и к исходникам. Для этого необходимо в конфиге Nginx объявить внутренними несколько папок:

# защита исходников фотографий
location ^~ /contents/albums/sources/ {
    root /usr/home/clients/ftp0/domains/kernel-tube.com/html; # указание полного пути к корневой папке для /contents/albums/sources/
    internal; # запрет доступа к папке по прямым ссылкам
}

# защита фотографий формата основных ихображений с размером 700x525
location ^~ /contents/albums/main/700x525/ {
    root /usr/home/clients/ftp0/domains/kernel-tube.com/html; # указание полного пути к корневой папке для /contents/albums/main/700x525/
    internal; # запрет доступа к папке по прямым ссылкам
}

В примере выше настроена защита для формата группы основных ихображений с размером 700x525 (он устанавливается в KVS по умолчанию), файлы которого хранятся в папке /contents/albums/main/700x525/. Если вы захотите ограничить доступ для форматов других размеров, то вам необходимо добавить аналогичные правила для каждого формата, заменив 700x525 на размер формата.

Важно! Защиту от прямого доступа имеет смысл делать только для тех форматов альбомов, которые доступны привилегированным пользователям сайта.

Если пользователь пытается получить доступ к фотографии привилегированного формата через скрипт раздачи, то он получит либо саму фотографию, либо ошибку, если его привилегий не хватает для доступа к этой фотографии. Для каждого привилегированного формата вы можете загрузить свое изображение, которое будет показано пользователю вместо ошибки (например, изображение с надписью, что для просмотра этой фотографии необходимо зарегистрироваться).

Исходники фотографий

Исходники фотографий в отличие от исходников видео сохраняются всегда. На сайте вы можете отображать исходники фотографий через защищенные ссылки, как будто они являются одним из форматов основных изображений. Если вы хотите, чтобы пользователи могли иметь доступ к исходникам фотографий через защищенные ссылки - вам следует настроить уровень доступа к исходникам в разделе системных настроек панели администрирования. По умолчанию пользователи не имеют доступа к исходникам фотографий.

Добавление фотоальбомов и работа с ними

При создании фотоальбомов в панели администрирования вам необходимо загрузить ZIP файл со всеми фотографиями, после чего создание фотоальбома продолжится и завершится фоновой задачей. После создания фотоальбома вы можете заменить вручную любую из фотографий, удалить какие-либо фотографии, а также загрузить новые. При этом обработка новых загруженных фотографий также будет выполнена на фоне.

Фотографии альбомов в KVS являются самостоятельными сущностями, поэтому вы можете указывать разные описания для разных фотографий, ставить отдельный рейтинг по каждой фотографии, добавлять комментарии к отдельным фотографиям. Можно даже отобразить глобальный список фотографий из всех альбомов (блок list_albums_images).

Импорт, экспорт и массовое редактирование фотоальбомов работают одинаково с аналогичными функциями для видео.

Фотоальбомы можно привязывать к видео таким образом, что для одного видео может существовать несколько связанных с ним фотоальбомов.

Обработка фоновых задач

Фоновые задачи и их типы

Вся обработка контента происходит на фоне. При добавлении новых видео, фотоальбомов и многих других операциях создаются задачи, которые помещаются в очередь. На главном сервере по расписанию работает скрипт, который управляет задачами в очереди: некоторые задачи выполняются сразу на основном сервере, некоторые загружаются на сервера конвертации для обработки видео и (или) создания скриншотов.

Вы можете настраивать приоритет выполнения ресурсоемких фоновых задач на главном сервере при помощи опции Приоритет ресурсоемких операций, которая находится в системных настройках. Аналогичным образом для каждого сервера конвертации вы можете настраивать приоритет операций на этом отдельно взятом сервере.

В KVS используются задачи многих типов. Некоторые задачи (в основном это обработка видеофайлов) выполняются в том числе и на серверах конвертации. Для большинства типов задач сервера конвертации не требуются, и задачи полностью выполняются на главном сервере. Существует несколько типов задач, которые могут выполняться длительное время (до нескольких суток), тем самым полностью подвешивая выполнение всех остальных фоновых процессов. Это происходит при создании новых форматов скриншотов и фотоальбомов, когда одна задача проходит по всем видео / фотоальбомам и создает (пересоздает) файлы изображений. Несложно представить, что при большом количестве видео / фотоальбомов такая задача может выполняться длительное время. Для вашего удобства KVS показывает процент выполнения таких задач прямо на списке задач в панели администрирования.

Любая задача при успешном завершении удаляется из списка задач. В случае же ошибки, задача остается висеть со статусом ошибки. Если это задача по конкретному видео / фотоальбому, то детали ошибки будут доступны в логе видео / фотоальбома: его можно посмотреть прямо из контекстного меню задачи. Если задача общего плана (нарезка нового формата скриншотов, например), то посмотреть информацию об ошибке можно наведя курсор мыши на название задачи в таблице.

Любую задачу, завершенную с ошибкой, можно перезапустить. Делать это нужно после исправления причины, которая привела к ошибке (например, устранен сбой FTP соединения, исправлена ошибка в опциях ffmpeg формата и т.д.), в противном случае задача снова выдаст ошибку.

Если какая-то задача на списке помечена оранжевым цветом, то это значит что задача не может быть выполнена в настоящий момент, но может быть выполнена в будущем при устранении временной проблемы, которая может решиться сама по себе. Детали проблемы вы можете получить наведя курсор мыши на название задачи в таблице. Наиболее частая проблема, при которой возникает данная ситуация - невозможность подключиться к серверам хранения для разноса контента. В этом случае движок конвертации не сможет завершить эту задачу до тех пор, пока соединение с серверами хранения не восстановится.

Режим паузы

Задачи начинают выполняться в течение минуты со времени, когда они попали в очередь. Иногда вам может понадобиться перевести движок конвертации в режим паузы. Например, вы хотите поменять какие-то настройки форматов видео, скриншотов или фотоальбомов. Движок не позволяет это делать при наличии фоновых задач. Получается, вам придется ждать пока все текущие фоновые задачи завершатся, что может быть очень и очень долго. В этом случае вам следует воспользоваться режимом паузы.

Опция перевода движка конвертации в режим паузы находится в системных настройках и называется Включить режим паузы для фоновых задач. Как только вы включите эту опцию, движок начнет переводиться в состояние паузы. Это произойдет не сразу - сначала движок должен закончить все уже начатые задачи, только потом он сможет перейти в состояние паузы, т.е. никакие новые задачи из очереди запускаться не будут. В шапке панели администрирования и на странице старта при этом появятся подсказки о том, что задачи находятся в состоянии паузы. Начиная с этого момента, вы можете вносить любые изменения в форматы видео, скриншотов и фотоальбомов. После того, как все изменения внесены - вы должны выключить режим паузы, чтобы задачи из очереди начали обрабатываться.

Сервера конвертации

Важно! Сервера конвертации недоступны владельцам базового и второго пакетов KVS. В этих пакетах в качестве сервера конвертации автоматически будет использоваться текущий сервер.

KVS позволяет задать любое количество серверов конвертации, которые будут использоваться параллельно для выполнения наиболее ресурсоемких задач (обработка видео и создание скриншотов). Управлять серверами конвертации можно в разделе настроек панели администрирования.

Для задания сервера конвертации на него предварительно должен быть скопирован скрипт обработчика и поставлен на cron (/admin/tools/remote_cron.php). После копирования вы должны убедиться, что в скрипте обработчика настроены корректные пути ко всем необходимым серверным библиотекам:

Важно! В настройках сервера вы можете указать максимальное количество задач, которые могут быть загружены на данный сервер конвертации. Все задачи в пределах одного сервера конвертации выполняются последовательно. Если вы хотите, чтобы на одном физическом сервере у вас параллельно работало несколько процессов конвертации, то вам следует создать второй сервер конвертации в панели администрирования KVS и настроить его на другую папку с другим скриптом, работающем по крону.

Категоризация контента

Базовая категоризация: категории и тэги

Тэги являются наиболее простыми элементами категоризации видео контента и фотоальбомов в KVS. Предварительное создание тэгов не требуется, вы просто набираете нужный вам список тэгов через запятую - и они будут создаваться / удаляться по мере надобности.

Тэги поддерживают массовую работу с ними. Зайдя на список тэгов вы можете переименовать любой из тэгов - результат этого затронет все объекты, использующие данный тэг. При переименовании тэга отдельно обрабатывается операция слияния, если тэг с новым названием уже существует. Это можно использовать для устранения различных опечаток или слияния нескольких похожих тэгов в один. Также вы можете удалить любой тэг, при этом он удалится для всех объектов, которые его используют.

Категории, в отличие от тэгов, должны быть созданы заранее, таким образом вы сможете выбирать только существующие категории (при импорте категории могут быть созданы автоматически с предупреждением). Кроме того, категории поддерживают большее количество полей и могут быть разбиты на группы категорий. Категории и группы категорий поддерживают аватары (размер настраивается в системных настройках), описания и дополнительные поля, которые вы можете использовать под свои нужды.

В шаблонах сайта по умолчанию используются 2 дополнительных поля категорий. Одно называется HTML title и предназначено для вывода в тэг <title> на странице списка видео по какой-либо категории. Второе называется HTML description и имеет аналогичное предназначение. Таким образом, в данных полях для каждой категории вы можете указать значения, которые вы хотите выводить в метаданные страницы списка видео по каждой категории. При пустых значениях в метаданных страницы будут выводиться название и описание категории (из базовых полей).

Кроме использования в видео и фотоальбомах, категории могут назначаться для контент провайдеров и рефереров (трейдеров).

Контент провайдеры, модели и DVD / каналы

Контент провайдеры составляют основу рекламных возможностей KVS. В базовом понимании отдельный контент провайдер представляют из себя набор рекламной информации о каком-либо сайте-спонсоре, который вы хотите рекламировать. Для каждого контент провайдера вы можете задать огромное количество промо данных: вашу реф- ссылку, картинки и баннеры любых размеров. Контент провайдеры поддерживают самое большое количество дополнительных полей среди всех сущностей KVS.

Контент провайдеры могут быть привязаны к видео и фотоальбомам, но в то же время они доступны как отдельные сущности сайта, что позволяет, например, сделать раздел сайта полностью посвященный обзору ваших спонсоров. Кроме того, контент провайдеры (как впрочем модели и DVD / каналы) поддерживают пользовательские комментарии и пользовательский рейтинг.

С точки зрения видео вы можете использовать рекламную информацию контент провайдеров для рекламы в плеере. Самый простой пример - скажем, у вас есть трейлеры, полные видеофайлы которых находятся в платной премиум зоне сайта вашего спонсора. Практически любую рекламу в плеере вы можете посвятить убеждению пользователя перейти на сайт спонсора и зарегистрироваться там. При использовании рекламы из контент провайдеров вы можете рекламировать разных спонсоров через разные видео.

Важно! Мы настоятельно рекомендуем использовать контент провайдеров для привязки рекламы к видео и фотоальбомам.

Модели являются элементами категоризации видео и фотоальбомов похожими на категории и тэги. Кроме базовых стандартных полей, для моделей может быть задано 2 скриншота фиксированных размеров, а также такие параметры как рост, вест, цвет волос и т.д. Как мы уже сказали, модели поддерживают комментарии и рейтинг от пользователей. Модели недоступны в базовом пакете функциональности KVS.

DVD / Каналы не являются элементами категоризации, однако имеют сходное предназначение. DVD / каналы позволяют сгруппировать несколько видео вместе, представив их как части одного большого фильма (серии сериала и т.д.). Для того, чтобы это сделать необходимо сначала создать DVD / канал в панели администрирования, затем либо при добавлении видео, либо массовым редактированием выбрать для конкретных видео нужный DVD / канал. Таким образом несколько видео будет привязано к одному DVD / каналу. DVD / Каналы доступны только в полном пакете функциональности KVS.

Мемберзона

Общая функциональность мемберзоны

Мемберзона доступна во всех пакетах софта, кроме базового. KVS поддерживает большое количество всевозможных настроек и ограничений, которые вы можете использовать для построения сайта, приносящего максимум прибыли. Основой таких настроек является поддержка нескольких типов (статусов) пользователей:

Таким образом, мемберзона KVS позволяет использовать бесплатную регистрацию наряду с платной регистрацией Премиум пользователей.

Настройка платного доступа

Платный доступ настраивается в панели администрирования в разделе пользователей. KVS поддерживает несколько процессоров SMS оплат и оплат по кредитным картам. При необходимости использовать другие процессоры, пожалуйста, обратитесь в службу поддержки для обсуждения возможности бесплатного подключения нужного вам процессора (или помощи).

Вы можете совмещать использование процессоров по кредитным картам и SMS сообщениям. Также вы можете разрешить либо запретить возможность бесплатной регистрации. KVS позволяет пользователям в любой момент проапгрейдить свой Стандартный доступ на Премиум.

В панели администрирования для выбранного вами процессора биллинга вы должны задать хотя бы один пакет доступа (или несколько). Созданные в KVS пакеты доступа должны соответствовать созданным пакетам на стороне процессора биллинга (в каждом случае на стороне биллинга это задается по разному). После задания всех пакетов доступа вы должны активировать хотя бы один процессор биллинга и выбрать процессор, который будет использоваться по умолчанию. Остальные активные процессоры будут использоваться в качестве альтернативных.

После того, как вы создали и настроили пакеты для выбранного процессора биллинга, в настройках сайта в блоке signup на странице регистрации вам необходимо включить несколько опций:

После того, как вы добавите пакеты доступа и включите соответствующие опции в блоке signup - на странице регистрации вы сможете увидеть выбор типа доступа (бесплатный или оплата по кредитке, или SMS), при выборе определенного типа доступа страница будет обновляться и отображать информацию о доступных пакетах доступа (странах и операторах для SMS биллинга). Далее в зависимости от выбранного типа доступа логика процесса регистрации различается:

Важно! Подтверждение регистрации по email (если настроено в параметрах блока signup) будет требоваться только для пользователей, которые регистрируются бесплатно.

Организация доступа к видео для пользователей

В основе платного доступа к сайту с видео контентом обычно лежит несколько различных концепций:

С точки зрения длительности платного доступа также существует несколько концепций:

KVS позволяет вам организовать доступ пользователей к видео по всем вышеперечисленным концепциям, а также используя любую их комбинацию.

Вернемся к нашей демонстрационной конфигурации форматов видео и рассмотрим их с точки зрения доступа к ним пользователей. Предположим, что мы хотим, чтобы стандартные видео хорошего качества были доступны только зарегистрированным пользователям нашего сайта. Также мы хотим, чтобы трейлер к премиум видео мог быть доступен всем без исключения пользователям, а полные премиум видео (в форматах MP4 и WMV) были доступны только премиум пользователям сайта с возможностью скачивать их.

Для этого в каждом из форматов видео выберем нужное значение в поле Уровень доступа. Включим возможность скачивания для 2-х полных премиум форматов. В списке форматов видео переключимся на режим отображения Доступ и защита и посмотрим, что у нас получилось:

Отображение доступа и защиты форматов видео
Отображение доступа и защиты форматов видео.

Мы видим, что незарегистрированным пользователям доступны только файлы 2 форматов видео: MP4 LQ и Premium Trailer MP4.

Теперь, когда форматы видео настроены как нужно, требуется перейти к настройкам их отображения в плеере на сайте. Плеер Kernel Team поддерживает особые опции управления отображением форматов видео в плеере. Для каждого типа видео (стандартные и премиум) есть набор из 5 слотов, для которых вы можете выбирать, будут ли в них отображаться существующие форматы видео, либо вместо форматов видео в них будет содержаться редирект. Более подробная информация о настройке плеера содержится в отдельном руководстве.

В самом плеере слоты отображаются как выпадающий список с названиями слотов и пометкой текущего выбранного слота. При выборе другого слота (не текущего) плеер может либо показать видеофайл из этого слота, либо сделать редирект на настроенный URL в 2 случаях: (а) пользователь не имеет достаточного уровня доступа для просмотра видеофайла по выбранному слоту; (б) в слоте выбран статический редирект и видеофайла там нет.

Слоты видео при отображении в плеере
Слоты видео при отображении в плеере.

Рассмотрим настройку слотов плеера для стандартных видео:

Настройка слотов плеера для стандартных видео
Настройка слотов плеера для стандартных видео.

Мы использовали 3 слота и выбрали в них 2 существующих формата видео и статический редирект в последнем слоте. Рядом с каждым слотом выводится подсказка, что произойдет с пользователем определенного уровня доступа при выборе каждого из слотов. Например, при выборе слота High quality видеофайл по слоту будет показан зарегистрированным пользователям (активным и премиум), в то время как незарегистрированные пользователи будут перенаправлены по настроенному URL-у. Этот URL задается в настройках плеера в поле URL редиректа. Для нашего примера воспользуемся ссылкой на страницу регистрации и апгрейда доступа (signup.php). Таким образом, вот что произойдет для каждого типа пользователя при попытках переключаться на слоты в плеере:

Поведение слотов в плеере для каждого типа пользователя
Поведение слотов в плеере для каждого типа пользователя.

Обратим внимание на 2 нюанса, которые видны на скриншоте выше:

Остановимся подробнее на втором нюансе. KVS позволяет устанавливать отдельные настройки плеера для всех типов пользователей. Эта возможность позволяет не только, например, по-разному настроить рекламу для разных типов пользователей, но и по-разному настроить слоты отображения видео, предоставляя хорошее поле для творчества. Для того, чтобы включить отдельные настройки плеера для отдельных типов пользователей, необходимо переключить отображение уровеня доступа сверху страницы настроек плеера и включить галочку перекрытия настроек:

Перекрытие настроек плеера для премиум пользователей
Перекрытие настроек плеера для премиум пользователей.

Важно! При перекрытии настроек плеера для какого-либо типа пользователей вы перекрываете абсолютно все настройки (рекламу, логотип и т.д.), а не только настройки слотов видео.

После перекрытия настроек плеера для премиум пользователей, рассмотрим нашу финальную конфигурацию слотов видео:

Настройка слотов плеера для всех пользователей
Настройка слотов плеера для всех пользователей.

Для премиум пользователей мы оставили только 2 слота в стандартных видео. К форматам видео в обоих слотах у премиум пользователей есть доступ, это значит что для них не будет никаких редиректов (что также видно по подсказкам). В слотах премиум видео мы указали только один слот с полным MP4 форматом. В таких случаях при отображении в плеере у премиум пользователей вообще не будет видно никаких слотов, поэтому название слота можно не указывать.

Для остальных пользователей (активных и незарегистрированных) мы оставили настройку слотов стандартных видео такой же, как она и была. В слотах премиум видео мы выбрали 2 формата видео, из которых только к одному есть доступ у данных пользователей (к трейлеру). Таким образом, при выборе слота Full video HD в плеере на сайте - пользователи перейдут на страницу регистрации и апгрейда доступа.

Финализируя, составим небольшой список нюансов отображения слотов в плеере:

Защита мемберзоны от мультидоступа

Если вы организовали премиум мемберзону, вы рано или поздно столкнетесь с проблемой защиты мемберзоны от большого количества разных людей, которые входят на сайт под одними и теми же данными. Это случается довольно часто, поскольку пользователи выкладывают пароли к платным ресурсам на форумах, в социальных сетях и т.д. KVS предоставляет встроенные средства защиты от мультидоступа под одними и теми же данными.

При каждом входе пользователя логгируется такая информация как IP адрес, страна (если у вас установлен GEOIP) и браузер. Имея набор таких данных за какой-то интервал времени можно с большой долей вероятности рассматривать некоторые аккаунты как "проходные".

KVS позволяет указать условия, при которых аккаунт считается "проходным", а также настроить политику блокирования таких аккаунтов:

Для анализа входов отдельных пользователей можно воспользоваться статистикой входов в разделе статистики панели администрирования. Также по каждому заблокированному пользователю на странице информации об этом пользователе приводятся данные анализа за период анализа (либо с даты регистрации, либо с момента последней разблокировки).

Анализ статистики входа пользователей
Анализ статистики входа пользователей.

Настройка защиты мемберзоны от мультидоступа осуществляется в настройках сайта в блоке logon на странице входа. Вы можете использовать следующие критерии срабатывания защиты, каждый из которых является самодостаточным для блокировки:

Прежде чем включать и настраивать защиту мы рекомендуем вам провести небольшой анализ имеющихся данных для определения наилучшего варианта ограничений. Для этого по статистике активности пользователей определите наиболее активных по просмотрам видео пользователей. По каждому из таких пользователей посмотрите статистику его входов, и вы однозначно сможете дать оценку, является ли аккаунт "проходным" или нет. Затем, исходя из полученных данных, вы сможете грамотно подобрать критерии оценки, необходимые для блокировки.

Информация о заблокированных аккаунтах доступна на странице старта KVS. Кликая по ссылкам вы сможете получить список временно и навсегда заблокированных аккаунтов. Для снятия блокировки вы можете воспользоваться страницей информации о пользователе, либо опцией меню дополнительных действий на списке пользователей, либо опцией групповых операций.

Сообщество

Общая функциональность сообщества

Сообщество позволяет дополнить мемберзону и сделать сайт более известным и посещаемым. Развитие сообщества это непростая задача и требуется далеко не всем, поэтому мы сделали несколько пакетов софта с различными функциями сообщества. Таким образом, полная функциональность сообщества доступна только в полной комплектации KVS.

Основу сообщества составляют пользователи, зарегистрированные на сайте. Пользователи могут заполнять свои профили, общаться с другими пользователями, заводить друзей, загружать свои видео и создавать фотоальбомы.

Вы можете ограничить любой функционал сайта и сделать его доступным только для пользователей сообщества. Так, например, вы можете настроить, могут ли анонимные посетители оставлять комментарии или нет. При необходимости, вы также можете убрать возможность рейтинга видео для анонимных посетителей. Весь функционал подобного рода настраивается в разделе настроек сайта: либо в шаблоне, либо в параметрах соответствующих блоков сайта (как правило в шаблонах настраивается лишь отображение данных и интерфейса, а в параметрах блоков настраивается поведение этих самых блоков).

Пользователи и профили

После завершения процесса регистрации пользователи становятся полноправными членами сообщества. Процесс регистрации (также как и изменение email) по умолчанию требует подтверждения с email. До подтверждения регистрации пользователь имеет статус Не подтвержден и не может входить в свой аккаунт. Если вы не хотите, чтобы при регистрации требовалось подтверждение с email, вы можете выключить эту функциональность в параметрах блока signup в разделе настроек сайта. В этом случае вам, скорее всего, следует выключить аналогичный функционал при изменении email в параметрах блока member_profile_edit.

Пользователи появляются в списках на сайте только после того, как они стали активными (подтвердили свою регистрацию по email, если это настроено) или оплатили платный доступ (Премиум пользователи). Любые списки пользователей выводятся блоком list_members. Этот блок поддерживает большое количество фильтров (таких как например, выводить только с аватаром, фильтр по стране и др.), а также возможность текстового поиска по данным пользователей.

Изменение данных профайла пользователя осуществляется блоком member_profile_edit, который работает в режиме трех форм: форма редактирования профиля (основные данные, аватар), форма редактирования email (необходимость подтверждения изменения email настраивается параметром блока) и форма редактирования пароля входа в личную зону.

Для того, чтобы пользователи могли запросить удаление своих профилей, вам следует создать страницу с блоком member_profile_delete (в шаблонах по умолчанию он не используется). В этом случае пользователи смогут отправлять запросы на удаление своих профилей администратору, а он будет их видеть на странице старта и принимать решение об удалении профилей.

Загрузка видео пользователями

По умолчанию загрузка видео доступна только членам сообщества. При необходимости разрешить загрузку анонимным посетителям сайта вам следует включить соответствующий параметр блока video_edit, чтобы страница с этим блоком на ней была доступна всем посетителям - в противном случае при попытке незарегистрированного пользователя обратиться к этой странице он будет перенаправлен на страницу логина (куда перенаправлен - тоже настраивается в этом блоке).

Независимо от того, загружается ли видео анонимным посетителем или членом сообщества, - IP посетителя будет сохранен в базе данных и вы всегда сможете увидеть его в панели администрирования для любого видео, загруженного с сайта.

Блок загрузки видео (video_edit) позволяет вам настроить также несколько аспектов проверки загружаемого видео:

После загрузки видео попадает в очередь на конвертацию. По умолчанию в настройках блока video_edit включен параметр, который переводит видео в неактивный статус, чтобы оно не появлялось на сайте после того, как будет обработано. При этом все видео, которое загружается (либо редактируется) с сайта помечается специальным флагом "для проверки", чтобы администратор мог легко отфильтровать все новые видео, загруженные с сайта. Таким образом, администратор должен проверить видео, сбросить у него флаг "для проверки" и перевести в активный статус, если видео его устраивает.

При желании вы можете выключить параметр, который устанавливает неактивный статус для всех видео, загружаемых с сайта (в настройках блока video_edit, конечно же). Если этот параметр будет выключен, то видео после загрузки появится на сайте, но также оно появится и в списке администратора "для проверки". Таким образом администратор сможет проверить его и при необходимости удалить.

Параметр блока, который переводит видео в неактивный статус применяется также и при редактировании пользователем своего загруженного видео (пользователь может поменять практически все поля, кроме самого видеофайла). Если этот параметр включен, то видео переводится в неактивный статус и пропадает с сайта. В любом случае видео попадает в список администратора "для проверки".

Блок загрузки видео поддерживает возможность блокировать редактирование видео целиком или только его главных скриншотов. За это отвечают несколько параметров в настройках блока. Если вы хотите заблокировать только определенные видео для редактирования (а заодно и удаления, правда удаление видео с сайта контролируется другим блоком - списком видео), вы можете пометить данные видео как заблокированные в панели администрирования. После этого данные видео невозможно будет удалить либо отредактировать с сайта.

Создание фотоальбомов пользователями

Создание фотоальбомов пользователями во многом похоже на загрузку видео пользователями. За логику создания и изменения данных фотоальбомов отвечает блок album_edit. Блок поддерживает несколько опций, позволяющих настроить логику блока:

После создания фотоальбом попадает в очередь фоновых процессов и становится активным только после завершения процесса на фоне. При этом все созданные фотоальбомы (а также измененные) с сайта помечаются специальным флагом "для проверки", чтобы администратор мог легко отфильтровать новые / измененные фотоальбомы и проверить их. Таким образом, администратор должен проверить фотоальбом, сбросить у него флаг "для проверки" и перевести в активный статус, если фотоальбом был деактивирован.

Несмотря на то, что по умолчанию фотоальбомы всегда активны после создания / изменения, вы можете настроить блок album_edit таким образом, чтобы фотоальбомы становились неактивны до тех пор, пока их не проверит и не активирует администратор.

Также вы можете запретить пользователям редактирование уже созданных фотоальбомов целиком, либо запретить редактирование только фотографий. Запрет редактирования может быть настроен как глобально (в параметрах блока album_edit), так и для каждого фотоальбома отдельно (включить галочку запрета редактирования в данных фотоальбома в панели администрирования).

Другие аспекты

Кроме заполнения профилей, загрузки видео и создания фотоальбомов (это описано далее) KVS также предоставляет основные возможности организовать полноценное общение внутри сообщества.

Во-первых, это внутренняя почта, которая позволяет пользователям обмениваться между собой сообщениями. На основе внутренней почты работает система дружеских отношений. Пользователи могут вступать в дружеские отношения между собой и, таким образом, открывать доступ к своим личным видео и фотоальбомам.

Во-вторых, это события сообщества, которые накапливаются по основным действиям пользователей (таким как, например, загрузка видео, создание фотоальбома, написание комментария и т.д. На сайте есть возможность вывести глобальную ленту событий, события отдельных пользователей и события друзей пользователя.

В-третьих, это возможность оставлять свои комментарии на так называемой стене пользователя, т.е. по сути комментарии к профилю пользователя.

Ротатор

KVS поддерживает двухуровневый модуль ротации видео:

Важно! Использование ротатора повышает нагрузку на ваш сервер (HDD и CPU).

Ротация видео

Для включения данного уровня ротации необходимо включить соответствующую опцию в разделе системных настроек KVS.

Ротация видео заключается в постоянном сборе и анализе статистики показов видео на различных списках сайта и кликов по ним. В ротации одновременно участвуют все списки видео (блоки list_videos), кроме списков видео, привязанных к пользователям (любимые видео пользователя и загруженные видео пользователя).

Здесь важно понимать, что включение ротации видео (первого уровня) абсолютно ничего не меняет на сайте. Ротация первого уровня занимается исключительно сбором статистики и рассчетом CTR каждого видео, значение которого вы можете в последующем использовать в качестве сортировки видео на каких-либо списках. Так, например, вы можете сделать отдельную страницу для принятия трафика и поместить на нее 50 лучших по CTR видео. Для этого вам всего лишь нужно будет вставить блок list_videos и включить в нем сортировку по CTR.

В отличие от типичных ротаторов, которые представлены на рынке, ротация видео в KVS может требовать более длительного оборота трафика. Это вызвано несколькими факторами:

Ротация скриншотов видео

Ротация скриншотов видео может быть включена только при включении первого уровня ротации видео, поскольку ротатор использует статистику, собираемую по видео на первом уровне ротации. Таким образом, для нормальной работы ротатора скриншотов необходимо какое-то время предварительно "покрутить" ротацию видео, чтобы ротатор собрал всю необходимую статистику. Для просмотра и сброса статистики ротатора есть плагин.

Ротация скриншотов в отличие от ротации видео первого уровня - это процесс, который имеет начало и конец для каждого видео. После завершения ротации скриншотов у какого-либо видео, KVS сделает следующие шаги:

При таком подходе очевидно, что необходимо выбрать некий критерий, на основе которого ротация скриншотов для видео будет считаться завершенной. В качестве критерия мы выбрали 2 значения: минимальное кол-во показов видео на списках сайта и минимальное кол-во кликов по нему. Таким образом, ротация скриншотов любого видео заканчивается как только наступает его критерий завершенности.

Для наиболее оптимального выбора критерия завершенности KVS отображает небольшую гистограмму завершенности ротации скриншотов, где показывает распределение видео по дискретным интервалам завершенности. Если скорость ротации вас не устраивает (например, через сутки после включения ротации только 10% видео попали в диапазон завершенности 0%-20%), вы можете снизить значения критерия и посмотреть как изменится график. Через несколько аналогичных итераций вы сможете подобрать себе оптимальные значения критерия.

Критерий завершенности ротации скриншотов и распределение видео по интервалам завершенности
Критерий завершенности ротации скриншотов и распределение видео по интервалам завершенности.

Со временем скриншоты у большинства видео сротируются и такое видео выйдет из ротации. В гистограмме завершенности такое видео будет находиться в интервале 100%.

Важно! Прежде чем включать ротацию скриншотов видео, убедитесь что ротация видео собрала необходимую статистику. Для этого откройте плагин статистики ротатора и убедитесь в ненулевых цифрах там.

Во время включенной ротации скриншотов каждое видео будет менять свой главный скриншот на сайте случайным образом для того, чтобы обеспечить равномерное покрытие показов. Соответственно, если у видео 10 скриншотов, то все они будут показываться случайным образом на всех страницах сайта, где показывается данное видео (кроме любимых видео пользователя и загруженных видео пользователя). Это может быть нежелательным для некоторых страниц сайта, на которых стоило бы в любой момент времени показать только лучшие скриншоты на текущий момент для поднятия продуктивности (страница Index, например, либо другая страница, на которую вы принимаете трафик). Для того, чтобы добиться такого эффекта, вам необходимо включить параметр блока show_best_screenshots в конкретных блоках list_videos, где вы хотите всегда показывать только лучшие по CTR скриншоты (т.е. ротация скриншотов в этих блоках идти не будет).

KVS также позволяет показывать отдельные страницы, на которых будут находиться только видео, скриншоты которых еще не сротировались. Вы можете использовать такие страницы для сливания "мусорного" трафика, который позволит прокрутить ротацию быстрее. Для этого в блоке list_videos на такой странице вам необходимо включить параметр блока under_rotation.

Аналогично вы можете создавать страницы, на которых будут показываться только видео со сротированными скриншотами. Для этого в блоке list_videos на такой странице вам необходимо включить параметр блока finished_rotation.

Продвинутые вопросы

Создание сайтов сателлитов

KVS поддерживает несколько подходов к созданию сайтов сателлитов.

Подход первый. Вы можете использовать несколько копий KVS на одной и той же базе данных. Часть таблиц с данными будет общей (например, таблицы контента, пользователей), другая часть таблиц будет различаться (например, таблицы статистики). Одна из копий будет первичной и будет иметь полную функциональность, все остальные копии будут вторичными и большинство данных в них будет представлено в режиме просмотра.

Таким образом, все копии KVS будут отображать одни и те же видео, комментарии, пользователей - но могут иметь абсолютно различные дизайны и компановки, а также полностью различную статистику. Вплоть до того, что одна из копий может быть полноценным тюб сайтом с социалкой и премиум зоной (полный пакет), а все остальные - продвигающие ее псевдо-тюбы (базовые пакеты). Не забывайте также, что KVS позволяет гибко настраивать любой список видео на сайте. Это можно использовать, например, чтобы на сайтах-сателлитах были представлены видео только из отдельных категорий, а на основном сайте - видео из всех категорий.

Подход второй. Разные базы данных, но одинаковый набор видеофайлов. Если у вас есть сайт на KVS и вы хотите сделать к нему дополнительные сателлиты, вы можете хотлинковать часть своего видео с сателлитов таким образом, что хотлинк будет работать только с ваших сателлитов и нигде более. Если вам нужно выключить защиту от хотлинка для ваших сателлитов - просто обратитесь к нам в сапорт, и мы поможем это настроить.

При этом подходе вам придется синхронизировать базу видео на сателлитах, но эта задача легко решается путем фидов экспорта / импорта.

Использование embed кода на свои видео

KVS предоставляет огромные возможности для управления embed кодами на свои видео. Продвижение сайта через embed коды имеет ряд преимуществ перед таким методом как, например, предоставление hosted видео:

Оговоримся также, что KVS имеет возможности предоставлять и hosted видео, если вы видите смысл в его использовании (по аналогии с embed кодами через фиды экспорта).

Для того, чтобы в плеере на сайте появилась возможность получить embed код на данное видео, вам необходимо убедиться, что в настройках embed плеера выбран формат видео, который будет показываться через embed код: таким образом, при желании вы можете создать отдельные форматы для стандартных и премиум видео для отображения их в embed коде (например, урезанные по времени и / или качеству).

Важно! В embed плеере вы можете выбрать только те форматы видео, уровень доступа которых позволяет незарегистрированным пользователям смотреть их.

Если вы не хотите публичного распространения ваших embed кодов, вы можете выключить возможность копировать embed код в настройках плеера (эта опция находится в настройках НЕ-embed плеера). Это не даст вам гарантии, что кто-то не сможет использовать embed коды на ваши видео (сможет если правильно сформирует embed код самостоятельно) - но это не позволит вашим embed кодам распространяться публично и бесконтрольно.

Реклама для embed плеера задается в настройках embed плеера.

Динамические HTTP параметры и прием вебмастерского трафика

Движок сайта KVS рассчитан на большую нагрузку трафиком, поэтому он использует двухуровневое кэширование для оптимизации работы и снятия нагрузки с базы данных. Кэширование, однако, накладывает некоторые ограничения на шаблоны сайта, одним из которых является невозможность отображать (или использовать как-либо иначе) HTTP параметров, которые приходят в ссылках на страницы вашего сайта.

Приведем простой пример: вам необходимо разрешить партнерам передавать свой идентификатор, чтобы затем этот идентификатор подставился в ссылку на биллинг. Обычно ссылка на ваш сайт будет вышлядеть так:

http://domain.com/path/to/page/?refid=123456

В шаблоне страницы, где нужно подставить переданный идентификатор, вы можете просто вывести его через Smarty:

<a href="https://secure.payment-processor.com/?reseller_code={{$smarty.request.refid}}">Get premium access!</a>

При включенном кэшировании такая методика работать не будет! Каждый раз при устаревании кэша страницы (для каждой страницы задается свое время жизни кэша) происходит полный цикл генерации контента этой страницы. При использовании подхода, приведенного выше, в момент полного цикла на странице сгенерируется ссылка с партнерским идентификатором, переданным в тот самый момент, и затем эта ссылка будет жить на странице до момента следующего полного цикла генерации страницы. При этом, какой бы идентификатор не передавался в параметрах HTTP запроса - в ссылке он не изменится.

Для нивелирования данного недостатка кэширования KVS позволяет настроить до 3-х динамических HTTP параметров, которые будут подставляться в нужные места на страницах независимо от кэширования страниц. Настройка данных параметров осуществляется в разделе системных настроек KVS. Вы можете указать как название самих параметров, так и значения по умолчанию для них, которые будут использоваться если значения параметра не было передано движку в какой-либо из ссылок на сайт.

Динамические HTTP параметры передаются движку сайта аналогично обычным HTTP параметрам, т.е. ссылка на сайт будет иметь такой же вид (предполагается, что вы задали refid как один из динамических HTTP параметров):

http://domain.com/path/to/page/?refid=123456

При обработке такого запроса движок KVS увидит, что было передано значение для динамического HTTP параметра refid, и сохранит это значение в сессию пользователя и его cookies (на 360 дней), тем самым это значение будет сохраняться при последующих запросах и визитах данного пользователя до тех пор, пока данный пользователь не придет по ссылке с новым значением данного параметра или пока не удалится cookies.

Для использования значения данного динамического HTTP параметра на сайте либо в других местах (см. таблицу ниже) вам необходимо использовать токен %refid%, который в нашем примере везде заменится на 123456. Ниже приведен список мест, где можно использовать токены динамических HTTP параметров:

Место Пример использования
Шаблоны сайта <a href="https://secure.payment-processor.com/?reseller_code=%refid%">Get premium access!</a>
Поле URL-а контент провайдеров http://my-sponsor.com/?reseller_code=%refid%
Поле URL-а рекламы http://my-sponsor.com/?reseller_code=%refid%
URL-ы в настройках плеера и embed плеера http://my-sponsor.com/?reseller_code=%refid%
Поле URL-а страницы оплаты в настройках пакета биллинга по кредиткам https://secure.payment-processor.com/?eticket_id=123&reseller_code=%refid%

Важно! Указывайте только те динамические HTTP параметры, которые реально используются вами, т.к. они несколько замедляют работу движка.

Таким образом, для того чтобы принимать партнерский трафик и передавать идентификатор партнера далее на биллинг или сайты спонсоров, вам необходимо указать динамический HTTP параметр (название может быть любым) и проставить нужный токен во всех местах, где вы хотите подставлять переданный идентификатор партнера.

Кроме непосредственно ссылок с переданным партнерским кодом, вы можете позволить партнерам передавать свой реф-идентификатор через embed код на ваши видео. При использовании такого embed кода, плеер будет пытаться заменить токен партнерского идентификатора на его значение во всех рекламных ссылках внутри плеера. Для того, чтобы это работало, в настройках embed плеера вам необходимо выбрать, какой из динамических HTTP параметров используется для передачи реф-идентификаторов.

Получить embed коды с проставленным реф-идентификатором ваши партнеры могут 2-мя путями:

Управление работниками / администраторами

Для поддержания больших проектов вам может понадобиться использовать наемных работников для работы с панелью администрирования KVS.

Важно! Никогда не предоставляйте сторонним работникам доступ суперадминистратора в панель администрирования. Вместо этого, создавайте ограниченных администраторов и старайтесь выделять им только те права, которые требуются для их ежедневной работы (например, человеку, который работает с контентом, ни к чему иметь права для работы со страницами и шаблонами сайта).

При использовании ограниченных администраторов в KVS вы можете контролировать их работу, используя данные Лога активности и Лога аудита, которые находятся в разделе настроек панели администрирования. Лог активности позволяет получить информацию обо всех входах в панель администрирования и о длительности сессий. Лог аудита собирает детальную статистику по операциям с видео и фотоальбомами (кто и когда создавал, изменял или удалял). Используя данные аудита вы можете проверить, сколько видео и / или фотоальбомов было создано / обработано вашими работниками за день, нелделю, месяц и т.д.

При работе нескольких администраторов одновременно (один переводит, другой обрабатывает скриншоты и т.д.) желательно избежать пересечение их фронта работы. Для этого можно использовать флаггирование видео: каждый администратор при сохранении видео может установить в нем любой из флагов на выбор. Список видео в панели администрирования можно отфильтровать по наличию какого-то флага. Таким образом администраторы могут переключать флаг видео в нужной последовательности для координации своей работы.

Статистика сайта

KVS предоставляет полноценную статистику по всем аспектам сайта, мемберзоны и сообщества.

Статистика по трафику

Подсчет статистики по трафику базируется на связке Javascript + Cookie для разделения трафика на основной и nocookie. В качестве nocookie могут определяться роботы поисковых систем, хитботы и, в некоторых случаях, настоящие пользователи при наличии у них ограничений на выполнение Javascript или хранение cookie.

Статистика запросов и выходов рассчитывается по крону раз в 5 минут и хранится с дискретностью в одни сутки.

Основными показателями статистики запросов к сайту являются:

Статистика входящих запросов учитывает страны. Таким образом вы можете получить распределение входящего трафика по странам. Для выходов на контент провайдеров и рекламу страны не учитываются.

Для того, чтобы учитывалась статистика по выходам на контент провайдеров вам необходимо использовать ссылки специального формата. Переходя по этим ссылкам, пользователь будет перенаправлен на сайт контент провайдера по указанной в настройке контент провайдера ссылке. Вы можете использовать ссылки 2 форматов:

ссылка на php скрипт: http://your_domain.com/redirect_cs.php?dir=%директория_контент_провадера%
или
ссылка через mod_rewrite: http://your_domain.com/cs/%директория_контент_провадера%/

KVS собирает внутреннюю статистику по поиску видео и фотоальбомов на сайте. Статистика поисковых запросов собирается только в том случае, когда запрос на поиск приходит с вашего сайта (вы, возможно, захотите поставить внешние ссылки на страницу с результатами поиска по определенным ключевым фразам). Это сделано для того, чтобы не перегружать статистику поиска большим количеством данных, т.к. наибольший интерес предоставляют фразы и слова, введенные самими пользователями на сайте.

Важно! Для целей оптимизации отображения статистики поисковых запросов в панели администрирования выводятся только такие запросы, которые были введены 2 и более раз.

Статистика по использованию ваших embed кодов

При каждом отображении вашего embed кода на сторонних сайтах KVS сохраняет домен, на котором показывается ваш embed код. Таким образом, вы всегда сможете видеть, какие сайты наиболее успешно раскручивают ваш ресурс посредством embed кодов.

Рефереры или источники трафика

Для получения среза статистики по отдельным источникам трафика (сайты, с которых трафик приходит на ваш сайт) вам необходимо добавить интересующие вас источники трафика в список рефереров, который находится в разделе статистики. По умолчанию список содержит только одного системного реферера - Пустой реферер (закладки). Под этим реферером учитываются посетители, которые приходят на ваш сайт без информации о сайте, с которого они пришли (проще говоря - набирают URL вашего сайта в адресной строке или добавили ваш сайт в закладки).

KVS не собирает информацию по всем источникам трафика, с которых приходят пользователи на ваш сайт (для этого есть серверная статистика). Вместо этого KVS позволяет вам указать именно те источники трафика, статистику по которым вы хотите мониторить. При добавлении источника трафика (реферера) вы должны указать строку соответствия, по которой будут определяться пользователи, пришедшие с данного источника (как можно догадаться, определение будет происходить сравнением с заголовком HTTP Referer).

Таким образом, после создания всех интересующих вас рефереров, вы будете видеть полный срез статистики по этим реферерам. Это может использоваться для анализа качества трафика из различных источников (например, с какого источника больше кликают по сайту, выходят на рекламу или контент провайдеров и т.д.).

Если вы знаете ресурсы, на которых используется embed код с вашими видео - вы можете добавить эти ресурсы в качестве рефереров, и вы будете видеть статистику по просмотрам вашего видео на других ресурсах.

Кроме непосредственно анализа статистики, вы можете использовать рефереров для вывода на сайте топа ваших трейдеров по различным критериям. Топ трейдеров выводится блоком top_referers. Данный блок позволяет вам не только непосредственно вывести список рефереров с нужной сортировкой (более 10 различных вариаций), но и также поддерживает несколько вспомогательных опций:

Статистика мемберзоны и сообщества

При использовании мемберзоны и сообщества вам будет доступна следующая статистика:

Построение сайта и управление им

KVS предоставляет своим владельцам уникальный движок модульного построения и кастомизации сайта. Вкратце, движок позволяет создавать любые страницы с любым контентом на них. На каждую страницу вы можете добавить любое количество логических блоков (из почти 40 в полной версии, например, список видео, список категорий и т.д.) и настроить опции и шаблоны их отображения.

Кроме непосредственного создания страниц сайта, движок может использоваться для создания любых XML фидов. XML фид в данном случае - это страница сайта, которая отображается в XML формате. Поскольку вы можете полностью настраивать содержимое любых страниц сайта, то вы можете создавать абсолютно любые фиды!

Работа с движком сайта является темой отдельного руководства. Если вы не хотите вникать в детали работы с движком, вы можете обратиться к третьим лицам (дизайнерам, верстальщикам), которые имеют опыт работы с кастомизацией KVS и смогут помочь вам. В данном руководстве мы лишь рассмотрим поверхностные сведения о движке сайта KVS.

Общие концепции

Сайт строится на основе набора страниц, которые заданы в движке KVS. Для каждой страницы создается свой PHP файл в корне проекта, который просто переадресовывает запрос на движок KVS, и шаблон в папке /template, который задает контент страницы (отображаемую информацию). Контент страницы может быть абсолютно любым - например, статический HTML текст, вывод информации из базы данных, XML код.

Таким образом, вы в любой момент времени можете создавать любые страницы сайта с нужным вам контентом на них. Делать это нужно в разделе UI сайта (Website UI) панели администрирования. Создание новых страниц сайта - это единственная операция, которая требует установки менее строгих прав доступа на папку корня домена (777). После того, как страница создана, вам необходимо вернуть назад более строгие права на папку корня домена в целях безопасности.

Важно! Мы не рекомендуем устанавливать публичные или групповые права на запись в какие-либо PHP файлы. Возможность изменять PHP файлы должна быть только у пользователя, который загружал эти файлы по FTP. Владельцем PHP файлов должен являться пользователь, который загружал эти файлы по FTP.

При необходимости создать страницу, похожую на уже существующую, вам будет проще всего сделать копию существующей страницы и внести в копию требуемые изменения. Сделать копию любой страницы можно на списке страниц сайта, применив опцию Сделать копию (Duplicate) из контекстного меню страницы (аналогично можно сделать копию любого компонента страницы). Копирование страницы создаст другую страницу, которая будет доступна по другой ссылке (при копировании вы указываете идентификатор для новой страницы), но будет выглядеть и работать один в один как оригинал. Вот несколько сценариев, когда вам может пригодиться функция копирования страницы:

Если вы хотите сделать страницу, которая отображает какие-то данные KVS (например, список видео, или профиль пользователя, или все вместе), вам необходимо добавить на страницу те или иные блоки сайта, которые умеют выводить нужные вам данные. В разделе UI сайта (Website UI) вы можете посмотреть полный список всех блоков и определиться какие блоки вам нужны на данной странице. Добавление блока на страницу KVS осуществляется при помощи специальной директивы в шаблоне страницы, которая при обработке запроса заменится на результат выполнения блока. Результат выполнения блока - это всегда HTML код, который генерируется блоком.

Структура блоков страницы Index сайта - 4 блока на странице
Структура блоков страницы Index сайта - 4 блока на странице.

Таким образом, вставляя директиву подключения блока в шаблоне страницы KVS вы на самом деле вставляете HTML код, который сгенерирует этот блок на этой странице. При необходимости директива позволяет не выводить сгенерированный код в место шаблона, где находится эта директива, а поместить его в переменную, которую можно будет использовать в других местах страницы.

Разные блоки сайта генерируют разный HTML код в результате своего выполнения (например, блок list_videos генерирует HTML код списка видео, а блок member_profile_view генерирует HTML код профиля пользователя). При подключении блока на какой-либо странице вы имеете 2 опции управления этим блоком на этой странице:

Параметры конфигурации блока логина задают поведение разных аспектов блока на странице логина
Параметры конфигурации блока логина задают поведение разных аспектов блока на странице логина.

Добавляя блоки на страницы сайта вы неформально разбиваете страницы на логические участки: здесь будет шапка, там будет 2 списка видео один под другим, в этом углу выпадающий список со всеми моделями отсортированный по популярности и т.д. Каждый логический участок генерируется либо каким-то блоком, либо просто статическим HTML кодом (например, шапка и футер сайта). Страница должна собирать все кусочки вместе, составляя целостную картинку для конечного пользователя, который набрал адрес вашей страницы в браузере.

Отладка страниц сайта

Для того, чтобы заметно упростить разработку и кастомизацию сайта, KVS предоставляет "отладчик" страниц, который может помочь вам быстро и без детального штудирования документации внести как небольшие коррективы в уже заданные шаблоны, так и полностью создавать новые страницы под ваши нужды. Отладчик может быть запущен для любой страницы сайта и что самое главное - отладчик показывает детали и данные именно той страницы, которую вы видите на экране в настоящий момент.

Важно! Доступ к отладчику страниц доступен только для залогиненных в панель администрирования пользователей.

Для того, чтобы открыть отладчик страницы сайта, на которой вы в данный момент находитесь, вам необходимо к адресу страницы добавить HTTP параметр debug=true, после чего KVS выведет всю отладочную информацию по данной странице:

http://domain.com/videos/path_to_video/?debug=true

Отладчик отображает следующие отладочные данные:

Отладочная информация страницы просмотра видео. Информация по блоку video_view, который находится на данной странице.
Отладочная информация страницы просмотра видео. Информация по блоку video_view, который находится на данной странице.

Как видно из скриншота выше, отладчик отображает реальные значения всех существующих переменных блока на данной конкретной странице. Имя переменной отображается в том виде, в котором эта переменная должна быть вставлена в шаблон (страницы или блока), например для названия видео:

{{$storage.video_view_video_view.title}}

Для итерации по переменной-массиву следует использовать конструкцию {{foreach}}:

{{foreach name=data item=item from=$storage.video_view_video_view.tags}}
    {{* Обращение к элементу массива идет через переменную item *}}
    {{$item.tag_id}}
    {{$item.tag}}
{{/foreach}}

Производительность и нагрузка

Общая информация

Используя KVS, вы можете быть уверены в том, что он сможет держать большое количество трафика на сайте. По нашим наблюдениям KVS со стандартной конфигурацией сайта без проблем работает при суточном трафике в 1.000.000 запросов на сервере средней конфигурации. На некоторых проектах пиковая нагрузка достигает более 3.500.000 запросов в сутки, что позволяет нам говорить о большом запасе производительности в целом.

Основным показателем нагрузки является LA (load average). Это значение показывается в шапке панели администрирования. При нормальной работе сервера LA не должен превышать 3-5 (исключая моменты, когда на этом же сервере конвертится видео, т.к. в эти моменты LA может подниматься выше).

При постоянно большом LA ваш сервер не справляется с трафиком на сайте. Причины этого могут быть следующими:

Кроме нагрузки, вызванной движком KVS, на вашем сервере могут быть другие проблемы, которые напрямую не связаны с KVS. В этом случае помочь вам могут только ваши администраторы. Вот некоторые примеры таких проблем:

Защита от перегрузки

Движок KVS имеет встроенную защиту от перегрузки. У вас может возникнуть резонный вопрос: если в самом движке все хорошо, тогда для чего нужна такая защита? Ответ на этот вопрос прост: для того, чтобы в экстренной ситуации дать возможность вашему серверу "остаться в живых".

По нашим наблюдениям за высоконагруженными проектами при достижении LA значения порядка 250 наступает состояние "клинической смерти" сервера, из которого вывести сервер очень проблематично (в большинстве случаев только ребутом). Чтобы этого избежать, KVS всеми силами старается не допустить поднятия LA до столь высокого уровня, постепенно отключая различные аспекты движка с ростом LA.

Экстренные ситуации роста LA могут возникать по различным причинам, в частности по таким:

В ответ на постепенный рост LA, KVS принимает следующие действия:

Пороговые значения LA, приведенные выше, могут быть изменены в файле конфигурации /admin/include/setup.php.

Статистика производительности

Движок KVS осуществляет непрерывный мониторинг производительности всех страниц сайта. Статистика производительности предназначена в первую очередь для вас, чтобы вы могли видеть, насколько быстро срабатывает та или иная страница и подстраивать кэширование соответствующим образом. Во-вторых, статистика производительности высоконагруженных проектов дает информацию о слабых местах сайта (в частности блоках), которые можно в последующим оптимизировать.

Анализ статистики производительности
Анализ статистики производительности.

Статистика характеризуется 3 показателями:

Плагины

Несмотря на то, что KVS является довольно сложным и многогранным софтом - нет предела совершенству. Мы стараемся добавлять новую функциональность в софт, в том числе многие ваши просьбы. Не всегда новые вещи целесообразно добавлять в уже существующий код, т.к. это сильно усложняет и разработку, и тестирование, и вашу ежедневную работу с софтом. Поэтому мы решили сделать поддержку плагинов - небольших обособленных модулей в админке на разные темы.

Здесь мы сделаем небольшой обзор по всем плагинам KVS:

С чего начать...

Мы надеемся, что данное руководство помогло вам понять основные возможности KVS и осознать, какие именно возможности софта помогут вам в достижении поставленных целей. В заключение мы хотели бы привести перечень действий, с которых, по нашему мнению, стоит начать работу с софтом, после того как он установлен и проверен.

После проведения всех вышеперечисленных действий вы можете загружать видео и работать над шаблонами сайта.

Что делать если...?

В данной главе рассмотрены наиболее типичные проблемы, с которыми вы можете столкнуться.