Документация KVS

Основные аспекты работы с KVS

Содержание

Преимущества
Хранение контента и его обработка
Мультисерверное хранение контента
Защита видео контента от хотлинка и несанкционированного доступа
Защита фотографий от несанкционированного доступа
Фоновые задачи и их типы
Режим паузы
Сервера конвертации
Учет свободного дискового пространства
Видео контент и работа с ним
Мультиформатность видео
Разница форматов MP4 и FLV
Опции ffmpeg конвертации видео
Скриншоты видео
Типы видео контента
Исходные файлы видео
Статусы видео
Ручное добавление и редактирование видео
Массовый импорт видео
Импорт видео через фиды
Массовое редактирование видео
Работа со скриншотами видео
Экспорт данных о видео
Экспорт видео через фиды
Фотоальбомы и работа с ними
Мультиформатность фотоальбомов
Исходники фотографий
Статусы фотоальбомов
Ручное добавление фотоальбомов и работа с ними
Массовый импорт фотоальбомов
Массовое редактирование фотоальбомов
Экспорт данных о фотоальбомах
Категоризация контента
Базовая категоризация: категории и тэги
Контент провайдеры, модели и DVD / каналы
Флаги
Мемберзона
Общая функциональность мемберзоны
Настройка платного доступа
Организация доступа к видео для пользователей
Организация доступа к фотоальбомам для пользователей
Использование токенов
Защита мемберзоны от мультидоступа
Сообщество
Общая функциональность сообщества
Пользователи и профили
Закладки пользователей
Загрузка видео пользователями
Создание фотоальбомов пользователями
Другие аспекты
Ротатор
Общая информация о ротаторе
Ротация видео
Ротация скриншотов видео
Продвинутые вопросы
Создание сайтов сателлитов
Использование embed кода на свои видео
Динамические HTTP параметры и прием вебмастерского трафика
Управление работниками / администраторами
Локализация сайта и контента
Статистика сайта
Статистика по трафику
Статистика по поиску на сайте
Статистика по использованию ваших embed кодов
Рефереры или источники трафика
Статистика мемберзоны и сообщества
Построение сайта и управление им
Общие концепции
Отладка страниц сайта
Производительность и нагрузка
Общая информация
Защита от перегрузки
Статистика производительности
Плагины
С чего начать...
Что делать если...?

Преимущества

KVS является одним из лидеров рынка tube-скриптов и менеджеров видео контента. Вот основные причины, по которым мы справедливо считаем наш скрипт лучшим:

  • Архитектура KVS изначально рассчитана на сайты с большим количеством посетителей. Встроенный мониторинг производительности сайта позволяет нам быстро и адекватно реагировать на любые проблемы клиентов с нагрузкой и, при необходимости, оптимизировать работу скрипта "на лету".
  • KVS не заточен под узкий круг проектов, в отличие от многих других скриптов. Вы можете использовать KVS для создания концептуально разных ресурсов: сиджетубы, обзоры спонсорских сайтов, тубы, мемберзоны, проекты с социальной направленностью, DVD магазины.
  • KVS предоставляет самые широкие возможности кастомизации сайта по сравнению со скриптами конкурентов. Вы можете не просто изменить внешний вид сайта (что позволяет большинство современных скриптов), а сделать концептуально другой сайт, полностью уникальный, который не будет похож ни на один из сайтов ваших конкурентов.
  • Не существует ни одного аналогичного скрипта, который бы позволял более широкий спектр возможностей с точки зрения конвертации и хранения контента.
  • Полная локализация сайта и контента - возможность, которая позволит вам создать полноценный мультиязыковой сайт, где вся информация может быть переведена на несколько языков, включая и объекты в базе данных.
  • Открытый исходный PHP код. Благодаря этому вы можете быть уверены в своей независимости от нас и дорабатывать любой, нужный вам функционал.
  • В отличие от всех конкурентов мы постоянно работает над усовершенствованием скрипта по всем направлениям. Мы прислушиваемся к мнению наших клиентов и вносим поправки, которые нам предлагают. На первый взгляд вам может показаться, что в софте много лишнего и бесполезного функционала - но это не так! Все что было сделано и делается в настоящее время - востребовано и необходимо. Поэтому мы надеемся, что вы сможете воспользоваться большей частью функционала KVS.

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

Хранение контента и его обработка

Мультисерверное хранение контента

В большинстве случаев весь контент хранится на том же сервере, на котором установлен скрипт и работает сайт. Это самый простой вариант. Но не самый идеальный, поскольку для хранения и отдачи контента нужен сервер с более быстрыми винчестерами и более широким каналом, в то же время для основного сервера, на котором работает сайт и, вероятно, происходит конвертация, куда важнее мощность процессора и объем оперативной памяти.

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

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

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

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

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

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

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

Пример конфигурации серверов хранения видео
Пример конфигурации серверов хранения видео.

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

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

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

Для использования CDN вам необходимо скопировать скрипт управления CDN в директорию /admin/cdn и указать его название в настройках сервера хранения, например ucnd.php. Скрипт управления CDN реализуется для каждого CDN-провайдера в отдельности. Мы можем предоставить скрипты для некоторых провайдеров, в остальных случаях вам нужно либо обратиться к провайдеру, чтобы они реализовали скрипт с нужными функциями, либо сделать это самостоятельно. Шаблон управляющего скрипта находится в файле /admin/toools/cdnapi.php. Скрипт должен реализовывать несколько функций, предназначенных для редиректа на видеофайлы / файлы фотоальбомов, а также инвалидацию файлов. Инвалидация в большинстве случаев является обязательной, т.к. при изменении файлов контента на стороне KVS - эти файлы не изменятся на CDN без инвалидации.

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

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

  • Первым (нижним) уровнем защиты является защита видеофайлов от прямого скачивания. Организация защиты первого уровня зависит от того, какой тип стриминга используется на вашем сервере хранения. Для серверов хранения, которые работают на голом Apache защита контента невозможна, поэтому мы не рекомендуем использовать данный вид стриминга (кроме этого он содержит еще множество других проблем). При использовании CDN защита контента организуется средствами CDN. При использовании Nginx защита построена на технологии X-Accel-Redirect. Более подробную информацию о настройке защиты на уровне сервера вы найдете в руководстве по настройкам KVS в разделе о серверах хранения.
  • Вторым (верхним) уровнем защиты является защита скрипта отдачи видео.

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

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

  • Прямая ссылка на файл не должна работать.
  • Cсылка на файл через скрипт отдачи должна работать.
  • Для стриминговых форматов (FLV, MP4) должен работать стриминг.

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

Проверка работоспособности сервера хранения
Проверка работоспособности сервера хранения.

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

Если во время попытки запроса видеофайла срабатывает защита от хотлинка, либо ограничение по IP, то скрипт отдачи сделает редирект на видеофайл, указанный в опции Отображать файл по указанному URL-у.

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

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

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

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

location ^~ /contents/videos_sources/ {
    root /path/to/domain/root; # указание полного пути к корневой директории для contents/videos_sources
    internal; # запрет доступа к директории по прямым ссылкам
}

Если у вас на главном сервере не установлен Nginx, то защитить директорию исходников вы не сможете. Чтобы не допустить несанкционированного доступа к директории исходников вы можете переименовать ее во что-то случайное и указать новый путь в /admin/include/setup.php:

$config['content_path_videos_sources']="/path/to/domain/root/contents/videos_sources";

Для финальной проверки защиты фотографий воспользуйтесь опцией Проверить защиту контента в плагине аудита, которая проверит все уровни защиты.

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

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

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

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

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

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

Все файлы фотоальбомов (форматы, исходники) хранятся на серверах хранения, поэтому закрывать прямой доступ к ним нужно для каждого сервера в отдельности. Организация защиты зависит от того, какой тип стриминга используется на вашем сервере хранения. Для серверов хранения, которые работают на голом Apache защита контента невозможна. При использовании CDN защита контента организуется средствами CDN. При использовании Nginx защита построена на технологии X-Accel-Redirect.

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

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

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

Настройка доступа к форматам фотоальбомов
Настройка доступа к форматам фотоальбомов.

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

Настройка доступа к исходникам фотоальбомов
Настройка доступа к исходникам фотоальбомов.

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

location ^~ /contents/albums/sources/ {
    root /path/to/domain/root; # указание полного пути к корневой директории для contents/albums/sources
    internal; # запрет доступа к директории по прямым ссылкам
}

При необходимости закрытия прямого доступа к какому-либо формату фотографий, можно использовать такое правило (800x600 - размер формата):

location ^~ /contents/albums/main/800x600/ {
    root /path/to/domain/root; # указание полного пути к корневой директории для contents/albums/main/800x600
    internal; # запрет доступа к директории по прямым ссылкам
}

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

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

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

Проверка работоспособности сервера хранения
Проверка работоспособности сервера хранения.

Для финальной проверки защиты фотографий воспользуйтесь опцией Проверить защиту контента в плагине аудита, которая проверит все уровни защиты.

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

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

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

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

Любая задача при успешном завершении удаляется из списка задач и попадает в лог задач. В случае же ошибки, задача остается висеть со статусом ошибки. Все задачи имеют свой лог выполнения - его можно посмотреть через контекстное меню списка задач. В большинстве случаев ошибки будут связаны с конвертацией видео (ошибки ffmpeg, код ошибки 07). В случае возникновения таких ошибок вам необходимо посмотреть лог задачи в поисках деталей ошибки, которая возникла в библиотеке ffmpeg. Как правило такие ошибки связаны с некорректной сборкой ffmpeg, либо некорректными опциями ffmpeg в настройках формата видео. Другой класс ошибок, который может возникать - ошибки соединения с удаленными серверами хранения или конвертации (коды ошибок 02 и 04). Большинство таких ошибок временные и не должны повториться при перезапуске задачи. Если такая ошибка повторяется постоянно, это говорит о сбое соединения между серверами; в таком случае KVS как правило выведет глобальную ошибку на страницу старта.

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

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

Режим паузы

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

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

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

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

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

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

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

Учет свободного дискового пространства

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

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

Видео контент и работа с ним

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

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

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

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

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

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

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

  • Неактивный - файл формата не создается при загрузке нового видео и не может быть загружен вручную. Этот статус может потребоваться, если вы не хотите больше использовать один из старых форматов, но при этом также не хотите, чтобы файлы этого формата удалились у тех видео, у которых они есть. Установив этот статус для формата вы сохраните файлы этого формата для тех существующих видео, у которых они уже были, но для будущих видео этот формат использоваться не будет.
  • Активный обязательный - файлы формата будут создаваться для всех загруженных видео. Если вы создаете новый формат с таким статусом и уже существует загруженное в систему видео, то для видео, у которого нет файлов этого формата, автоматически произойдет донарезка файлов. Таким образом, после донарезки для существующих видео будет гарантия того, что файлы этого формата будут присутствовать у всех видео.
  • Активный необязательный - файлы формата не будут создаваться автоматически, а также для существующих видео донарезки не произойдет. Этот статус позволяет вам загружать файлы формата вручную для любого видео при необходимости. Таким образом, для некоторых видео файлы такого формата могут не присутствовать.
  • Удаление - файлы формата в данное время удаляются для всех видео. Если вы хотите удалить какой-либо из форматов, то удаление произойдет не сразу: формат переведется в статус Удаление и удалится только после того, как файлы форматов будут удалены со всех серверов хранения.

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

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

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

В отношении Активных необязательных форматов есть один нюанс. Вы можете указать, что формат является условно-необязательным - в этом случае файлы этого формата будут создаваться движком автоматически, но только в тех случаях, когда длительность и размеры исходника видео позволяют это сделать. Например, вы хотите иметь видео в 3 размерах: SD, HD и Full HD. Предположим, что только часть исходников позволяет создать Full HD формат. Такой формат вам нужно объявить как условно-необязательный, и тогда он будет присутствовать в тех случаях, когда это возможно.

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

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

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

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

Вот структура наших форматов:

Структура форматов видео
Структура форматов видео.

Разница форматов MP4 и FLV

Несмотря на то, что и MP4 и FLV форматы создаются на базе одного кодека (h264), между ними есть существенная разница в том, как они отображаются клиентскими устройствами.

  • MP4 файлы воспроизводятся любыми современными мобильными устройствами, FLV файлы - только через Flash плеер. Некоторые устаревшие мобильные устройства (iphone v3, android v1) не смогут воспроизводить MP4 файлы, если при их кодировании не использовался baseline профиль (опция ffmpeg -profile baseline), который предназначен для уменьшения вычислительной нагрузки при воспроизведении.
  • Проигрывание FLV файлов начинается быстрее и чем больше длительность видео, тем больше заметна разница. Это также касается и скроллинга видео.

Чтобы правильно выбрать формат, вам нужно заранее знать прогнозируемую длительность ваших видео. Если у вас в основном будут 5-10-20 минутные ролики, то даже не имеет смысла рассматривать FLV формат. Если у вас в основном будут полнометражные фильмы (60 минут и более), то вам, возможно, стоит использовать одновременно 2 формата: FLV для показа в плеере и MP4 для показа на мобильных устройствах (настройки плеера KVS позволяют указать отдельный формат для отображения на не-Flash устройствах). Плюсом мультиформатного подхода также будет и то, что мобильный MP4 формат можно кодировать в baseline профиле и уменьшенном разрешении, что позволит ему проигрываться на некоторых старых устройствах. В любом случае, прежде чем сделать финальный выбор, вы можете создать несколько форматов и загрузить тестовые видео, чтобы проверить их отображение на разных устройствах.

Опции ffmpeg конвертации видео

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

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

Рассмотрим наиболее существенные опции:

  • Параметр -vcodec libx264 указывает кодек, который будет использоваться для кодирования выходного файла. В настоящее время наибольшее распространение имеет кодек h264, который и используется по умолчанию.
  • Параметр -r 25 указывает 25 кадров в секунду.
  • Параметр -crf 33 указывает фактор качества видео (чем меньше значение, тем выше качество). При использовании данного параметра видео будет кодироваться с постоянным качеством, но динамическим битрейтом. Это значит, что фрагменты видео, где потеря качества несущественна (например, движение), будут кодироваться менее качественно, в то время как более существенные фрагменты, где потеря качества заметна более ощутимо, - будут иметь большее качество и сл-но более высокий битрейт. Недостаток этого метода в том, что он не позволяет прогнозировать размер файла, а также требует несколько итераций проб, прежде чем выявить наиболее подходящее для вас значение. Мы рекомендуем использовать значения в диапазоне от 20 до 35.
  • Параметр -acodec libfaac указывает кодек аудио, который будет использоваться для кодирования выходного файла. В настояшее время наибольшее распространение имеют кодеки libfaac (AAC) и libmp3lame (LAME). Мы рекомендуем использовать кодек AAC.
  • Параметр -ar 44100 указывает частоту дискретизации аудио потока (44100 герц, Audio CD).
  • Параметр -ab 128k указывает битрейт аудио потока (128 килобит в секунду).
  • Параметр -f mp4 указывает какой формат контейнера использовать для выходного файла. Если вам необходимо создавать FLV файлы, то следует использовать -f flv.

Больше информации о опциях ffmpeg вы можете получить на офиц. сайте библиотеки. Информацию о опциях h264 и пресетах качества можно получить здесь.

Скриншоты видео

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

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

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

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

  • Фиксированное количество скриншотов для всех видео. Например, если вы укажите 5, то для каждого видео будет создаваться 5 скриншотов. При этом интервал между скриншотами будет вычисляться исходя из длительности видео.
  • Интервал снятия скриншотов (в секундах). Например, если вы укажите 10, то для каждого видео будет создаваться по скриншоту через каждые 10 секунд. Таким образом, очевидно, что для видео разной длительности будет создано разное количество скриншотов.
Указание количества скриншотов в настройках контента
Указание количества скриншотов в настройках контента.

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

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

Важно! Для таймлайновых скриншотов вы должны указать именно название директории, а не путь к ней. Выбирайте название директории исходя из названия формата видео, например, для формата видео Premium MP4 HQ можно указать название директории premium_mp4_hq и т.д.).

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

Название Постфикс Таймлайновые включены? Директория Интервал снятия
Стандартные видео
MP4 LQ .mp4 нет
MP4 HQ _hq.mp4 нет
Премиум видео
Premium MP4 _premium.mp4 да premium_mp4 10 сек
Premium WMV _premium.wmv нет
Premium Trailer MP4 _premium_trailer.mp4 да premium_trailer_mp4 10 сек

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

Форматы скриншотов
Форматы скриншотов.

У каждого формата скриншотов есть специальная опция, которая позволяет указать соотношение аспект ратио видео к аспект ратио скриншотов этого формата. Существуют 2 варианта использования этой опции:

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

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

Типы видео контента

На сегодняшний день KVS поддерживает 5 типов видео контента, которые отличаются по способу обработки и хранения:

  • Загрузка файла (поддерживает мультиформатность). Вы загружаете исходный видеофайл (при желании и / или файлы форматов) с локального диска или с любого места на сервере (указывая URL-ы к файлам). С загруженного исходного файла при необходимости происходит нарезка всех активных обязательных и условно-необязательных форматов видео и создаются скриншоты. После этого файлы всех форматов сохраняются на всех серверах группы, к которой было привязано данное видео при создании. Еще раз повторимся, при Загрузке файла видео хранится на ваших серверах.
  • Хотлинк файла (мультиформатность не поддерживается). Вы указываете ссылку на файл, который хостится где-то не у вас. При этом KVS может временно скачать видеофайл для того, чтобы создать по нему скриншоты или определить длительность. Таким образом, при использовании хотлинка видео не хранится на ваших серверах. При просмотре в плеере проигрывается файл по ссылке.
  • Embed код (мультиформатность не поддерживается). Вы указываете embed код плеера с видео. Если у вас есть ссылка на сам видеофайл, который будет показываться по этому embed коду - вы можете указать и ее. В этом случае KVS может временно скачать видеофайл для того, чтобы создать по нему скриншоты или определить длительность. Если прямой ссылки на видеофайл нет, то вам нужно вручную указать длительность видео и загрузить скриншоты, в противном случае вы не сможете создать видео этого типа. В подавляющем большинстве случаев вы сможете получить прямую ссылку на видеофайл, имея embed код. Аналогично Хотлинку файла на ваших серверах ничего не хранится. На сайте вместо плеера KVS отображается указанный embed код.
  • Видео галерея (поддерживает мультиформатность). Вы указываете ссылку на галерею с видео (галерея - это страница, где содержится плеер с целостным видео, либо несколько плееров с видео, порезанным на части). Галерея парсится, на ней определяются все видеофайлы, которые скачиваются и склеиваются в один целостный файл. Этот видеофайл конвертируется во все активные обязательные и условно-необязательные форматы и с него создаются скриншоты (т.е. аналогично загрузке файла). Хранение такого видео происходит аналогично хранению загруженных файлов, т.е. все видеофайлы хранятся на ваших серверах.
  • Псевдо-видео (мультиформатность не поддерживается). Вы указываете ссылку выхода, на которую будет перенаправлен пользователь, при клике на видео у вас на сайте. Если у вас есть ссылка на сам видеофайл, который соответствует данной ссылке выхода - вы можете указать и ее. В этом случае KVS может временно скачать видеофайл для того, чтобы создать по нему скриншоты или определить длительность. Если прямой ссылки на видеофайл нет, то вам нужно вручную указать длительность видео и загрузить скриншоты, в противном случае вы не сможете создать видео этого типа.

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

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

Важно! Видео галереи поддерживаются только при массовом добавлении (импорте).

Исходные файлы видео

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

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

Для рассмотрения стратегий хранения исходных файлов необходимо сделать разделение типов контента на 3 группы: в первую группу войдут те, которые не поддерживают мультиформатность (Хотлинк файла, Embed код и Псевдо-видео), во вторую группу войдет Видео галерея и в третью - Загрузка файла.

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

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

Важно! По умолчанию исходные файлы не сохраняются. Вы можете включить сохранение исходных файлов в настройках контента.

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

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

  • Хранение исходных файлов на главном сервере. Это та же самая стратегия, которую мы рассматривали выше в отношении других типов контента. Для того, чтобы при создании видео исходный файл сохранился на главном сервере, вы обязательно должны загружать его в специальное поле исходного файла (а не в поле какого-либо формата). Плюсом этой стратегии является более быстрая начальная обработка видео, а также любые последующие обработки, которые требуют исходного файла (ручное пересоздание обзорных скриншотов, создание любых новых форматов видео). Выигрыш в скорости достигается за счет того, что исходные файлы хранятся на главном сервере и нет необходимости копировать их на сервера хранения или обратно. Минусы - невозможность отдавать исходные файлы пользователям, забивание дискового пространства на главном сервере.
  • Если ваши исходные файлы выступают в роли одного из формата, который вы хотите показывать на сайте (здесь имеется ввиду не только показывать в плеере, но и, например, давать возможность скачать), вы можете хранить такие исходные файлы на серверах хранения, как файлы данного формата. Для этого вам нужно создать в настройках соответствующий формат видео, а исходные файлы загружать в поле данного формата, а не в поле исходного файла. В этом случае все другие форматы видео при необходимости создадутся на базе загруженного файла. Если вы загружаете несколько файлов форматов одновременно (например вы их конвертируете локально), то в настройках формата видео вам нужно включить галочку для формата, который вы хотите чтобы учитывался как исходный файл. Важно! При загрузке исходного файла в качестве одного из форматов видео файл сохранится "как есть" без операций конвертации. Это означает, что никакие настройки формата видео не будут применены к нему: ни ватермарк, ни ограничение длительности, ни настройки размера. Плюсы данной стратегии: возможность показывать исходные файлы на сайте как файлы одного из форматов, экономия дискового пространства на главном сервере, не происходит операция кодирования видео. Основным минусом является тот факт, что файлы загружаются "как есть". Если вам нужно, чтобы у файла формата были урезаны геометрические размеры, либо чтобы поверх видео наложился ватермарк - данная стратегия вам не подойдет.
  • Если вы хотите хранить исходные файлы на серверах хранения, но при этом вы не хотите загружать их в качестве одного из форматов, то вам следует создать "фейковый" формат и загружать их в качестве этого формата. Фейковый формат должен иметь необязательный статус, у него должна быть включена опция исходного файла, он может иметь любой допустимый постфикс, например, .dat. В качестве опций ffmpeg можно ввести любую строку, поскольку автоматического создания такого формата никогда происходить не будет. Необязательный статус также позволит вам при необходимости удалять файлы этого формата для любых видео. При создании новых видео вы должны загружать исходные файлы в поле этого формата. Минусы данной стратегии: необходимость дополнительного копирования исходных файлов между серверами хранения и главным сервером, невозможность показывать исходные файлы на сайте. Основной плюс - экономия дискового пространства на главном сервере.

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

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

Статусы видео

Видео может находиться в одном из 5 статусов:

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

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

Ручное добавление и редактирование видео

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

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

Поле Директория используется для создания se-friendly ссылок на страницы видео. Это поле является служебным и существует практически у всех объектов, доступных на сайте. Обычно оно оставляется пустым и его значение подбирается автоматически, как только у объекта задается название (его значение генерируется из названия). Если вы запускает русскоязычный сайт, вам понадобится транслитерация директорий (т.к. названия будут на русском языке). Для включения транслитерации вам необходимо убедиться, что при установке в файле конфигурации скрипта /admin/include/setup.php был включен флаг траслитерации:

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

Логика транслитерации производится файлом /admin/include/translit.php и заточена под русский язык. Если вам нужна транслитерация с другого языка, вы можете изменить этот файл. Используйте редактор, который понимает UTF-8 кодировку, в противном случае после сохранения файла он может перестать работать как нужно. Если не знаете какой редактор выбрать - используйте бесплатный редактор Notepad2 для Windows.

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

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

KVS поддерживает отложенное появление видео на сайте. Дата (и время) появления видео устанавливается полем Дата постинга, которое может быть установлено как в текущую дату, так и в любую дату в прошлом и будущем. Используя эту возможность, вы можете планировать появление видео на сайте по дням (например, чтобы видео добавлялось по 10 в день). При этом не требуется каждый день добавлять по 10 видео - достаточно добавить все видео сразу и настроить их Дату постинга на нужную вам дату. Время появления (время суток за указанную дату) также играет большую роль. Например, если Дата постинга видео установлена в 1 января 2010 года, а время в 18:50, то это видео появится на сайте сразу после 18:50 1 января 2010 года (по серверному времени, которое показывается в панели администрирования). В настройках контента есть опция, которая позволяет вам указать какое время должно выбираться по умолчанию при добавлении видео (случайное, текущее серверное или 00:00).

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

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

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

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

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

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

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

В зависимости от выбранного типа контента (поле Опция добавления), вам необходимо заполнить разные поля, которые относятся к контенту:

  • Загрузка файла. Для данного типа контента вы должны загрузить либо Исходный файл, либо один из форматов, который будет использоваться в качестве исходника. Файлы всех Активных обязательных форматов будут созданы движком на основе загруженного файла. Опционально вы можете загрузить файлы любых форматов; если вы это сделаете, то файлы данных форматов пересоздаваться не будут (кроме файлов стриминговых форматов - FLV и MP4 - данные файлы будут загружены на сервера конвертации для подготовки их к стримингу). В случае, если вы обрабатываете видео локально, вы можете вручную загрузить все нужные файлы форматов и не использовать движок конвертации (кроме подготовки к стримингу). При необходимости вы также можете загрузить главный скриншот или все скриншоты в ZIP файле. Важно! При ручной загрузке файлов форматов мы не можем проверить, является ли загруженный файл корректным файлом этого формата (например, является ли загруженный файл корректным MPG файлом). Вам необходимо самостоятельно убедиться что вы загружаете нужные файлы в нужные поля. При редактировании видео с типом Загрузка файла вы можете заново загрузить его исходный файл, чтобы пересоздать все форматы видео, либо обзорные скриншоты.
  • Хотлинк файла. В случае хотлинка вам необходимо указать URL на файл, который будет хотлинковаться. На сайте этот URL будет подставляться в плеер.
  • Embed код. Вам необходимо указать embed код, который будет отображаться на странице просмотра видео. Далее вы можете пойти двумя путями. Первый способ: вы можете указать прямую ссылку на видеофайл, чтобы на его основе была определена длительность видео и созданы скриншоты. Второй способ: вместо ссылки на видеофайл вы можете указать длительность и загрузить скриншот(ы) вручную.
  • Псевдо-видео. Вам необходимо указать URL выхода, который будет использоваться для редиректа посетителей. По аналогии с Embed кодом вы можете либо указать прямую ссылку на видеофайл, либо вручную прописать длительность и загрузить скриншот(ы).

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

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

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

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

Массовый импорт видео

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

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

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

Данная таблица содержит описание и примеры всех полей импорта:

Поле Описание Пример
ID видео (Video ID) Уникальный идентификатор видео, в большинстве случаев это поле вам не нужно. 18725
Название (Title) Название видео. Если видео с таким названием уже существует в базе, то по данному видео на этапе проверки выдастся предупреждение. В опциях импорта вы можете использовать опцию Пропускать видео с повторяющимися названиями, при включении которой по видео с существующими названиями вместо предупреждений будут выданы ошибки, в результате чего эти видео будут пропущены во время импорта. This is a demo video
Директория (Directory) Директория видео - это поле, на основе которого генерируются se-friendly ссылки на страницы видео. В большинстве случаев оно вам не нужно, т.к. директория по умолчанию генерируется из названия. this-is-a-demo-video
Описание (Description) Описание видео. Video description
Категории (Categories) Названия категорий видео, разделенные запятыми. При сопоставлении категорий KVS также анализирует и синонимы, указанные в существующих категориях. Если категории с каким-либо названием не найдено, а также не найдено подходящего синонима ни у одной из существующих категорий - такая категория будет создана автоматически и на этапе проверки вы получите предупреждение об этом. Поиск существующих категорий производится без учета регистра. Auto, Fun, Ads
Модели (Models) Названия моделей видео, разделенные запятыми. При сопоставлении моделей KVS также анализирует и псевдонимы, указанные в существующих моделях. Если модели с каким-либо названием не найдено, а также не найдено подходящего псевдонима ни у одной из существующих моделей - такая модель будет создана автоматически и на этапе проверки вы получите предупреждение об этом. Поиск существующих моделей производится без учета регистра. Brad Pitt, Kis Cole
Тэги (Tags) Тэги видео, разделенные запятыми. Тэги всегда создаются по мере необходимости. auto, cars, advertising, fun, brad pitt, kis cole, cool ads
Контент провайдер (Content source) Название контент провайдера (спонсора). Если контент провайдера с указанным названием не найдено - он будет создан автоматически и на этапе проверки вы получите предупреждение об этом. Поиск существующих контент провайдеров производится без учета регистра. YouTube
DVD / Канал (DVD / Channel) Название DVD / канала. Если DVD / канала с указанным названием не найдено - он будет создан автоматически и на этапе проверки вы получите предупреждение об этом. Поиск существующих DVD / каналов производится без учета регистра. Funny Videos Channel
Исходный видеофайл (Source video file) Ссылка на видеофайл, который должен скачаться и использоваться в качестве исходного файла (с которого будут создаваться все форматы видео и обзорные скриншоты при необходимости). Если указана эта ссылка, то видео будет иметь тип контента Загрузка файла. http://domain.com/videos_for_import/1643.wmv
Видеофайл "XXX" (Video file "XXX") Ссылка на видеофайл, который должен скачаться и использоваться в качестве файла формата XXX. Такие поля присутствуют для каждого формата видео. Вы можете использовать эти поля как замену исходному видеофайлу, а также в дополнение к нему (см. главу о исходных файлах). Если указана эта ссылка, то видео будет иметь тип контента Загрузка файла. http://domain.com/videos_for_import/1643.flv
URL хотлинка (Hosted file URL) Ссылка на видеофайл, который будет хотлинковаться. Если указана эта ссылка, то видео будет иметь тип контента Хотлинк файла. http://domain.com/public_videos/1876.flv
Код embed (Embed code) Embed код стороннего плеера с видео. Если заполнено это поле, то видео будет иметь тип контента Embed код. При выборе этого поля вы также должны либо указать прямую ссылку на видеофайл в поле URL хотлинка, либо указать длительность видео и скриншот(ы) любым образом. <embed>...</embed>
URL галереи (Gallery URL) Ссылка на страницу видео, которая содержит либо плеер с видео, либо ссылки на несколько видеофайлов. Если заполнено это поле, то видео будет иметь тип контента Видео галерея. http://domain.com/videos/video-page.html
URL выхода (Outgoing URL) Ссылка на страницу видео, которая будет использоваться для редиректа пользователей. Если заполнено это поле, то видео будет иметь тип контента Псевдо-видео. При выборе этого поля вы также должны либо указать прямую ссылку на видеофайл в поле URL хотлинка, либо указать длительность видео и скриншот(ы) любым образом. http://domain.com/videos/video-page.html
Длительность (Duration) Длительность видео в формате HH:MM:SS, или MM:SS, или просто количество секунд. 1:20:43
Дата постинга (Post date) Дата / время появления видео на сайте в формате YYYY-MM-DD HH:MM или YYYY-MM-DD. 2012-12-24 14:52
Относительная дата постинга (Relative post date) Поле доступно только в случае включения в конфигурации функциональности относительных дат постинга (подробнее об этом читайте в отдельном разделе). Количество дней до (отрицательное значение) или после регистрации (положительное значение), когда видео появится на сайте для текущего пользователя. -30 или 30
Рейтинг (Rating) Рейтинг видео; целое число от 1 до 10. 4
Пользователь (User) Имя (логин) пользователя, от чьего лица добавляется видео. Если пользователя с таким именем не существует - он будет создан автоматически. admin
Статус (Status) Статус видео, одна из следующих констант: active (активный) или disabled (неактивный). active
Тип (Type) Тип видео, одна из следующих констант: public (публичный), private (личный) или premium (премиум). public
Стоимость в токенах (Price in tokens) Поле доступно только начиная с расширенного пакета. Число токенов, необходимое для получения премиум доступа к данному видео. 100
Флаг администратора (Administrator flag) Название флага видео, который должен быть установлен для видео в качестве флага администратора. Флаги, которые можно использовать в этом поле, настраиваются в разделе категоризации. Admin Flag
Номер главного скриншота (Main screenshot number) Номер главного скриншота видео среди всех его скриншотов. 3
Главный скриншот (Main screenshot) Ссылка на исходный файл главного скриншота видео. http://domain.com/videos_for_import/1643.jpg
Обзорные скриншоты (Overview screenshots) Cсылка на ZIP архив с исходными файлами обзорных скриншотов, либо прямые ссылки на исходные файлы, разделенные запятыми. http://domain.com/videos_for_import/1643.zip

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

Наиболее простой способ составления данных импорта - это заполнить все данные в Excel в виде таблицы (одна строка - это одно видео, один столбец - это одно из полей видео). После заполнения данных нужно выделить все ячейки заполненной таблицы и скопировать их в текстовую область на странице импорта. В качестве Разделителя строк следуют использовать символ переноса строк (\r\n для Windows и \n для Unix), в качестве Разделителя полей следует использовать символ табуляции (\t). После этого остается только выбрать в нужном порядке список Полей для импорта и указать дополнительные опции.

Пример данных для импорта
Пример данных для импорта. Названия стобцов приведены для примера и копировать их не нужно.
Выбранные поля данных
Выбранные поля данных.

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

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

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

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

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

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

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

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

Данные каждого импорта сохраняются в директорию /admin/logs/import/ в отдельный текстовый файл. При необходимости посмотреть данные ваших старых операций импорта вы можете поискать подходящий файл в этой директории.

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

Импорт видео через фиды

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

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

KVS поддерживает фиды следующих форматов:

  • Собственный формат на основе XML.
  • Формат SmartScripts на основе XML.
  • Формат RSS (видео галереи).
  • Практически любой CSV формат. При выборе данного формата вам также будет необходимо указать список столбцов, который должен однозначно соответствовать структуре данных из фида, и выбрать ключевой столбец, на основе которого фид будет отфильтровывать уже добавленные ранее видео из этого фида.

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

Поле Префикс дубликатов позволяет указать префикс для определения дубликатов видео. Каждое видео, которое отдается фидом, имеет свой уникальный идентификатор (для CSV формата вы самостоятельно выбираете поле, которое выступает в роли идентификатора). Поскольку в разных фидах идентификаторы могут пересекаться, KVS использует связку "префикс дубликатов фида + идентификатор видео" для построения глобального идентификатора, чтобы видео с одинаковым идентификатором, но от разных фидов не считались дубликатами. Как правило у разных фидов должны быть разные префиксы. Однако в ситуациях, когда несколько фидов могут содержать одинаковые видео, вам следует устанавливать для них одинаковые префиксы дубликатов, чтобы такие видео не добавлялись несколько раз и не дублировались у вас в базе.

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

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

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

Режим добавления видео устанавливает тип видео контента и способ хранения для каждого видео, добавленного данным фидом. Поддерживаются такие варианты:

  • Как embed код - все видео из данного фида будут добавлены на ваш сайт как embed коды. Для работы этого варианта необходимо чтобы фид предоставлял embed код для каждого видео. Большиство современных фидов этого не позволяют, однако embed код может предоставляться грабберами других сайтов.
  • Как псевдо-видео - все видео из данного фида будут добавлены на ваш сайт как псевдо-видео. Для работы этого варианта необходимо чтобы фид предоставлял ссылки на страницы с видео.
  • Хотлинковать видео (части обрабатываются как отдельные видео) - все видео из данного фида будут добавлены на ваш сайт с хотлинком на указанный в фиде видеофайл. Если фид предоставляет видео, разбитое на несколько частей, то эти части будут добавлены как отдельные видео. В дополнение к этому варианту вы должны также указать постфикс названия, который будет добавляться к названию видео по каждой части (например, если вы укажете "Part %N%", то видео из 3 частей добавится как 3 отдельных видео с названиями "Video Title Part 1", "Video Title Part 2" и "Video Title Part 3", где "Video Title" - это название видео из фида).
  • Скачивать видео (части обрабатываются как отдельные видео) - все видео из данного фида будут добавлены на ваш сайт с сохранением указанного в фиде видеофайла на ваш сервер. Если фид предоставляет видео, разбитое на несколько частей, то эти части будут добавлены как отдельные видео. Как и для предыдущего варианта, вы должны указать постфикс названия. Кроме этого вам необходимо выбрать формат для сохранения видеофайлов на ваш сервер. Здесь действуют такие же правила, как и при ручном добавлении видео: если вы сохраняете в качестве исходного файла, то движок конвертации автоматически создаст файлы всех необходимых форматов; если же вы выбираете один из форматов видео, то скачанный видеофайл сохранится как файл этого формата, файлы остальных форматов создадутся автоматически по необходимости.
  • Скачивать видео (части склеиваются в один файл) - все видео из данного фида будут добавлены на ваш сайт с сохранением указанного в фиде видеофайла на ваш сервер. Если фид предоставляет видео, разбитое на несколько частей, то эти части будут склеены в один видеофайл (как при обработке видео галереи). Для данного варианта вам необходимо только выбрать формат для сохранения видеофайлов на ваш сервер.
  • Как видео галереи - все веб-страницы из данного фида будут обработаны и добавлены как видео галереи (если на галерее найдено несколько видеофайлов, то они будут склеены в один). Данная опция доступна только для RSS фидов и является единственной возможной опцией.

Даты появления видео на сайте позволяет задать методику распределения дат появления видео на сайте. Как известно, видео на сайте появляется только в активном статусе и только после наступления даты и времени, указанного в поле Дата постинга видео. Опция фида Даты появления видео на сайте настраивает непосредственно дату постинга (временная часть даты устанавливается исходя из значения настройки контента Время появления на сайте: случайно, текущее серверное время или 00:00). Опция фида имеет такие варианты:

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

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

Поскольку фиды срабатывают раз в день, то за день всеми фидами может быть добавлено от 50 до 100 видео. Первоначально нам необходимо, чтобы фиды заполнили интервал в 10 дней в будущем по 30 видео ежедневно. Для этого в настройках каждого фида нам необходимо выбрать вариант Распределять равномерно для опции Даты появления видео на сайте, в качестве интервала в будущем указать 10 дней и в качестве максимального кол-ва видео за день указать 30. Таким образом в течение нескольких дней работы (4-8) фиды будут добавлять все имеющееся у них видео, чтобы заполнить 10-дневный интервал в будущем (суммарно нужно будет иметь 300 видео в будущем).

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

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

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

  • Изменить статус, пользователя, стоимость в токенах, контент провайдера и DVD / канал для всех выбранных видео.
  • Сделать публичное видео личным и наоборот.
  • Изменить дату постинга для всех выбранных видео на случайную дату в указанном диапазоне. Эта функциональность позволяет вам, например, взять сотню самых старых видео на вашем сайте и перекинуть их на появление в ближайшем будущем. Вместе с датами постинга видео изменятся и даты написания всех комментариев, событий и др. связанных объектов.
  • Изменить рейтинг для всех выбранных видео на случайное число в указанном диапазоне.
  • Добавить или удалить указанные тэги, категории, модели у всех выбранных видео.
  • Обнулить значение указанного флага у всех выбранных видео.
  • Пересоздать обзорные скриншоты для выбранных видео, у которых есть в наличии исходные файлы.
  • Удалить исходные файлы у всех выбранных видео. Здесь речь идет об исходных файлах, которые хранятся на главном сервере.
  • Создать (пересоздать) видеофайлы указанного формата (работает только для тех типов контента, которые поддерживают мультиформатность). Если у вас не хранятся исходные файлы, то выбранный формат будет создаваться на основе одного из существующих форматов, который отмечен галочкой Исходные файлы, либо с самым большим размером файла. Если для создаваемого формата требуется наложение ватермарка, а файлы исходного формата уже содержат ватермарк, то вам может понадобиться включить опцию не накладывать ватермарк, чтобы избежать повторного наложения ватермарка.
  • Удалить видеофайлы указанного формата (только для тех типов контента, которые поддерживают мультиформатность).
  • Смигрировать все видеофайлы выбранных видео с одной группы серверов на другую. При этом удаление видеофайлов на старой группе серверов произойдет не ранее чем через сутки (отложенная задача). Это требуется для того, чтобы на всех страницах сайта успели обновиться ссылки на видеофайлы, т.к. после физического удаления видеофайлов на старой группе серверов все старые ссылки перестанут работать.
  • Сбросить статистику ротатора у всех выбранных видео.
  • Обработать выбранные видео плагинами пост-обработки.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Ссылка на сайт - при выборе этого типа контента фид будет предоставлять видео в виде ссылок на ваш сайт. Ваши партнеры не получат возможности получать из фида embed коды и прямые ссылки на видео для хотлинкования. Они смогут добавлять видео из фида как псевдо-видео к себе на ресурсы, при этом имея возможность использовать реф-ссылки (если фид поддерживает).
  • Хотлинк - при выборе этого типа контента фид будет предоставлять не только ссылки на ваш сайт, но и ссылки на ваши видеофайлы с возможностью их хотлинкования. Для того, чтобы это работало для видео, которое хранится на ваших серверах, вам необходимо выключить защиту от хотлинка для форматов видео, которые вы хотите разрешить хотлинковать (смотрите главу о защите видеофайлов). Например, у вас есть 3 формата для стандартных видео: High Quality MP4, Low Quality MP4 и Low Quality FLV. High Quality MP4 предназначен для просмотра только на вашем сайте, а Low Quality MP4 и Low Quality FLV вы хотите разрешить хотлинковать вашим партнерам. Если вы выключите защиту от хотлинка для Low Quality форматов - фид предоставит ссылки для хотлинкования. Поскольку доступных для хотлинкования форматов два - ваши партнеры смогут выбрать удобный для их сайта формат. По умолчанию фид будет давать ссылки на первый из доступных форматов. Если же видео у вас добавлено как хотлинк сторонних видеофайлов - то для таких видео фид будет отдавать ссылки как они есть.
  • Embed код - при выборе этого типа контента фид будет предоставлять не только ссылки на ваш сайт, но и embed код на ваши видео (при этом для видеофайлов, хранящихся у вас, никаких возможностей для хотлинка не будет). Более подробную информацию о нюансах использования embed кода для своих видео вы найдете в соответствующей главе.
  • Временная ссылка - этот тип контента позволяет получить временные ссылки на ваши видеофайлы. Это может потребоваться, если вы хотите импортировать контент в другую систему и вам требуются рабочие ссылки для скачивания видеофайлов.

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

Фотоальбомы и работа с ними

Фотоальбомы доступны только в полном пакете KVS.

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

Мультиформатность фотоальбомов во многом схожа с мультиформатностью скриншотов видео. Фотоальбомы поддерживают 2 группы форматов:

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

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

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

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

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

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

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

Настройка доступа к исходникам фотоальбомов
Настройка доступа к исходникам фотоальбомов.

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

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

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

Ручное добавление фотоальбомов и работа с ними

Ручное добавление фотоальбомов осуществляется из раздела Альбомы панели администрирования (ссылка в боковом меню).

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

Поле Директория используется для создания se-friendly ссылок на страницы фотоальбомов. Это поле является служебным и существует практически у всех объектов, доступных на сайте. Обычно оно оставляется пустым и его значение подбирается автоматически, как только у объекта задается название (его значение генерируется из названия). Если вы запускает русскоязычный сайт, вам понадобится транслитерация директорий (т.к. названия будут на русском языке). Для включения транслитерации вам необходимо убедиться, что при установке в файле конфигурации скрипта /admin/include/setup.php был включен флаг траслитерации:

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

Логика транслитерации производится файлом /admin/include/translit.php и заточена под русский язык. Если вам нужна транслитерация с другого языка, вы можете изменить этот файл. Используйте редактор, который понимает UTF-8 кодировку, в противном случае после сохранения файла он может перестать работать как нужно. Если не знаете какой редактор выбрать - используйте бесплатный редактор Notepad2 для Windows.

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

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

KVS поддерживает отложенное появление фотоальбомов на сайте. Дата (и время) появления фотоальбома устанавливается полем Дата постинга, которое может быть установлено как в текущую дату, так и в любую дату в прошлом и будущем. Используя эту возможность, вы можете планировать появление фотоальбомов на сайте по дням (например, чтобы фотоальбомы добавлялись по 10 в день). При этом не требуется каждый день добавлять по 10 фотоальбомов - достаточно добавить все фотоальбомы сразу и настроить их Дату постинга на нужную вам дату. Время появления (время суток за указанную дату) также играет большую роль. Например, если Дата постинга фотоальбома установлена в 1 января 2010 года, а время в 18:50, то этот фотоальбом появится на сайте сразу после 18:50 1 января 2010 года (по серверному времени, которое показывается в панели администрирования). В настройках контента есть опция, которая позволяет вам указать какое время должно выбираться по умолчанию при добавлении фотоальбома (случайное, текущее серверное или 00:00).

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

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

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

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

Отметим дополнительно, что у вас будет вся статистика по кликам на контент провайдеры. Более подробно о том, как учитывать выходы на сайты контент провайдеров смотрите в разделе о статистике.

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

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

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

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

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

Массовый импорт фотоальбомов

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

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

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

Данная таблица содержит описание и примеры всех полей импорта:

Поле Описание Пример
ID фотоальбома (Album ID) Уникальный идентификатор фотоальбома, в большинстве случаев это поле вам не нужно. 18725
Название (Title) Название фотоальбома. Если фотоальбом с таким названием уже существует в базе, то по данному фотоальбому на этапе проверки выдастся предупреждение. В опциях импорта вы можете использовать опцию Пропускать фотоальбомы с повторяющимися названиями, при включении которой по фотоальбомам с существующими названиями вместо предупреждений будут выданы ошибки, в результате чего эти фотоальбомы будут пропущены во время импорта. This is a demo album
Директория (Directory) Директория фотоальбома - это поле, на основе которого генерируются se-friendly ссылки на страницы фотоальбомов. В большинстве случаев оно вам не нужно, т.к. директория по умолчанию генерируется из названия. this-is-a-demo-album
Описание (Description) Описание фотоальбома. Album description
Категории (Categories) Названия категорий фотоальбома, разделенные запятыми. При сопоставлении категорий KVS также анализирует и синонимы, указанные в существующих категориях. Если категории с каким-либо названием не найдено, а также не найдено подходящего синонима ни у одной из существующих категорий - такая категория будет создана автоматически и на этапе проверки вы получите предупреждение об этом. Поиск существующих категорий производится без учета регистра. Auto, Fun, Ads
Модели (Models) Названия моделей фотоальбома, разделенные запятыми. При сопоставлении моделей KVS также анализирует и псевдонимы, указанные в существующих моделях. Если модели с каким-либо названием не найдено, а также не найдено подходящего псевдонима ни у одной из существующих моделей - такая модель будет создана автоматически и на этапе проверки вы получите предупреждение об этом. Поиск существующих моделей производится без учета регистра. Brad Pitt, Kis Cole
Тэги (Tags) Тэги фотоальбома, разделенные запятыми. Тэги всегда создаются по мере необходимости. auto, cars, advertising, fun, brad pitt, kis cole, cool ads
Контент провайдер (Content source) Название контент провайдера (спонсора). Если контент провайдера с указанным названием не найдено - он будет создан автоматически и на этапе проверки вы получите предупреждение об этом. Поиск существующих контент провайдеров производится без учета регистра. YouTube
Дата постинга (Post date) Дата / время появления фотоальбома на сайте в формате YYYY-MM-DD HH:MM или YYYY-MM-DD. 2012-12-24 14:52
Относительная дата постинга (Relative post date) Поле доступно только в случае включения в конфигурации функциональности относительных дат постинга (подробнее об этом читайте в отдельном разделе). Количество дней до (отрицательное значение) или после регистрации (положительное значение), когда фотоальбом появится на сайте для текущего пользователя. -30 или 30
Рейтинг (Rating) Рейтинг фотоальбома; целое число от 1 до 10. 4
Пользователь (User) Имя (логин) пользователя, от чьего лица добавляется фотоальбом. Если пользователя с таким именем не существует - он будет создан автоматически. admin
Статус (Status) Статус фотоальбома, одна из следующих констант: active (активный) или disabled (неактивный). active
Тип (Type) Тип фотоальбома, одна из следующих констант: public (публичный), private (личный) или premium (премиум). public
Стоимость в токенах (Price in tokens) Поле доступно только начиная с расширенного пакета. Число токенов, необходимое для получения премиум доступа к данному фотоальбому. 100
Изображения (Images) Cсылка на ZIP архив с исходными файлами фотографий, либо прямые ссылки на исходные файлы, разделенные запятыми. http://domain.com/albums_for_import/1643.zip
Номер главного изображения (Main image number) Порядковый номер главной фотографии среди всех исходных фотографий. 12
Главное изображение (Preview image) Ссылка на исходный файл главной фотографии. Может быть загружена отдельно, и никак не соотносится с основным набором фотографий альбома. http://domain.com/albums_for_import/1643.jpg
URL галереи (Gallery URL) Ссылка на страницу фотоальбома, которая содержит набор тумб со ссылками на изображения. Если заполнено это поле, то фотоальбом создастся на основе скачанных изображений. http://domain.com/albums/album-page.html

Наиболее простой способ составления данных импорта - это заполнить все данные в Excel в виде таблицы (одна строка - это один фотоальбом, один столбец - это одно из полей фотоальбома). После заполнения данных нужно выделить все ячейки заполненной таблицы и скопировать их в текстовую область на странице импорта. В качестве Разделителя строк следуют использовать символ переноса строк (\r\n для Windows и \n для Unix), в качестве Разделителя полей следует использовать символ табуляции (\t). После этого остается только выбрать в нужном порядке список Полей для импорта и указать дополнительные опции.

Пример данных для импорта
Пример данных для импорта. Названия стобцов приведены для примера и копировать их не нужно.
Выбранные поля данных
Выбранные поля данных.

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

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

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

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

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

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

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

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

Данные каждого импорта сохраняются в директорию /admin/logs/import/ в отдельный текстовый файл. При необходимости посмотреть данные ваших старых операций импорта вы можете поискать подходящий файл в этой директории.

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

Массовое редактирование фотоальбомов

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

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

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

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

Экспорт данных о фотоальбомах

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

По историческим причинам так сложилось, что для реализации функциональности каналов / DVD используется один тип объектов. По умолчанию в панели администрирования используется функциональность каналов, как наиболее часто применяемая. Если вы хотите вместо каналов использовать функциональность DVD, вы можете переключить флаг в скрипте конфигурации /admin/include/setup.php на dvds:

$config['dvds_mode']="dvds";

Каналы / DVD поддерживают их дальнейшее разбиение на группы, которые являются отдельными объектами. Благодаря группам вы можете создавать трехуровневые структуры данных вида: Сериал (Группа каналов / DVD) -> Сезоны (Каналы / DVD) -> Серии (Видео). На сайте имеется возможность вывести список сериалов (блок list_dvds_groups), для каждого сериала вывести страницу с его информацией (блок dvd_group_view) и со списком его сезонов (блок list_dvds) или сразу со списком серий (блок list_videos).

Каналы / DVD могут создаваться пользователями на сайте; данная функциональность представлена блоком dvd_edit.

Флаги

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

Мемберзона

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

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

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

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

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

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

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

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

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

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

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

  • Использовать ли возможность оплаты кредитной картой.
  • Использовать ли возможность оплаты посредством SMS сообщений.
  • Предоставлять ли возможность бесплатной регистрации.
  • Какая опция оплаты должна быть выбрана по умолчанию.

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

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

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

<!-- username input -->
<input type="text" name="username" maxlength="100" value="{{$generated_username}}"/>

<!-- password input -->
<input type="password" name="pass" value="{{$generated_password}}"/>

<!-- password confirmation input -->
<input type="password" name="pass2" value="{{$generated_password}}"/>

<!-- email input -->
<input type="text" name="email" maxlength="100" value="{{$generated_email}}"/>

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

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

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

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

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

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

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

  • Безлимитная длительность доступа.
  • Доступ, ограниченный по длительности (например, в течение месяца).

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Первое. Порядок отображения слотов для незарегистрированных пользователей не такой, как указано в настройках плеера. Это обусловлено тем, что у незарегистрированных пользователей нет доступа к первому слоту (формат MP4 HQ), поэтому самым первым и выбранным по умолчанию слотом становится слот с форматом MP4 LQ, к которому у незарегистрированных пользователей есть доступ. Для остальных же типов пользователей порядок не нарушается, поскольку как у активных, так и у премиум пользователей есть доступ к слоту с форматом MP4 HQ.
  • Второе. Для премиум пользователей отображение слота HD quality не имеет смысла, поскольку этот слот содержит статический редирект на страницу регистрации, но для премиум пользователей уже невозможно осуществить регистрацию.

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

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

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

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

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

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

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

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

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

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

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

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

{{if $smarty.session.status_id==3}}
    это премиум пользователь
{{elseif $smarty.session.user_id>0}}
    это залогиненный не-премиум пользователь
{{else}}
    это незалогиненный пользователь
{{/if}}

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

Токены могут использоваться одновременно с обычным премиум доступом. Существует 3 пути получения токенов:

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

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

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

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

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

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

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

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

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

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

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

  • Количество уникальных IP адресов за единицу времени. Не является надежным критерием, поскольку во многих случаях IP адреса регулярно меняются у одного и того же человека.
  • Количество уникальных масок IP адресов за единицу времени. Под маской подразумеваются первые 3 цифры IP адреса, например 192.168.12.xxx.
  • Количество уникальных стран за единицу времени (имеет смысл только если у вас установлен GEOIP).
  • Количество уникальных браузеров за единицу времени.

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

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

Сообщество

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

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

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

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

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

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

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

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

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

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

Закладки пользователей

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

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

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

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

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

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

  • Является ли описание видео обязательным полем или нет (по умолчанию - обязательное).
  • Является ли указание тэгов обязательным или нет (по умолчанию - обязательное).
  • Является ли указание категорий видео обязательным или нет (по умолчанию - обязательное).
  • Какое максимальное кол-во категорий можно выбрать одновременно (по умолчанию - 3).
  • Указать минимальную длительность видео в секундах (по умолчанию настроено 5 секунд).
  • Указать максимальную длительность видео в секундах.

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

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

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

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

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

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

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

Блок создания и редактирования фотоальбомов (album_edit) позволяет вам настроить также несколько аспектов проверки:

  • Является ли описание фотоальбома обязательным полем или нет (по умолчанию - обязательное).
  • Является ли указание тэгов обязательным или нет (по умолчанию - обязательное).
  • Является ли указание категорий фотоальбома обязательным или нет (по умолчанию - обязательное).
  • Какое максимальное кол-во категорий можно выбрать одновременно (по умолчанию - 3).
  • Указать минимальные размеры загружаемых фотографий (по умолчанию 800x600).

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

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

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

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

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

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

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

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

Ротатор

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

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

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

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

Важно! После включения ротатора в ссылки на страницы просмотра будут добавлены параметры ротатора, исходя из которых будут анализироваться клики. Это поведение может быть изменено за счет учета кликов посредством ajax запросов, которые отсылают данные о кликах без подстановки их в URL-ы. Более подробную информацию об этом методе вы можете найти в руководстве по настройкам, а также в FAQ.

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

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

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

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

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

  • В KVS видео на сайте отображается многими списками с разными сортировками и фильтрами. Исходя из этого у ротатора нет возможности свободного выбора, какие видео должны быть выведены на списке, т.к. вывод осуществляется строго по настроенной сортировке. Поскольку разные списки видео имеют разную посещаемость (пример: на список видео с категорией cat1 заходят в 10 раз чаще, чем на список видео с категорией cat2), это вызывает дисбалансы показов, что приводит к неравномерному сбору статистики.
  • Кэширование в KVS играет огромную роль в работе сайте. Этот факт также влияет на дисбалансы показов видео, поскольку из-за кэша одно видео может показываться на одном и том же месте сайта до суток (в реальности максимальная длительность показа зависит от времени кэширования страницы / блока, которое настраивается вами).

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

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

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

  • Если в настройках ротации скриншотов у вас включено удаление части худших по CTR скриншотов - эти скриншоты будут удалены.
  • Будет выбран новый главный скриншот с лучшим CTR.
  • Ротация скриншотов для этого видео закончится.

При таком подходе очевидно, что необходимо выбрать некий критерий, на основе которого ротация скриншотов для видео будет считаться завершенной. В качестве критерия мы выбрали 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 видео:

  • Вашим партнерам не требуется платить за канал, как и при использовании hosted видео.
  • При использовании hosted видео у вас нет гарантии, что будет показана ваша реклама. При использовании embed кодов KVS ваша реклама не может быть перекрыта или убрана.
  • Рекламные возможности embed плеера KVS не зависят от самого embed кода. Embed код содержит только идентификатор видео и некоторые параметры презентации, такие как preview изображение, скин, размеры. Настройка рекламы задается глобально в настройках embed плеера в панели администрирования KVS и может быть изменена в любой момент - при этом изменения мгновенно отразятся на всех местах, где стоят ваши embed коды.
  • При желании вы можете позволить партнерам передавать свой партнерский реф-идентификатор через embed код и получать % от ваших доходов. Для этого удобно использовать фиды экспорта, которые выдают ваши видео в виде embed кодов - партнер может передать свой идентификатор и получить embed коды с уже проставленным везде идентификатором.
  • Embed коды, в отличие от hosted видео, могут распространяться самостоятельно пользователями.
  • KVS предоставляет статистику по показам ваших embed кодов.

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

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

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

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

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

KVS поддерживает 2 возможных варианта embed кодов:

  • Стандартный <embed> код - типовой embed код для Flash приложений. Основным его минусом является невозможность показывать альтернативный плеер для устройств, которые не поддерживают Flash.
  • Код iframe - iframe, в котором отображается специальная страница вашего сайта с плеером. Такой подход более современный, позволяет не только показывать альтернативный HTML5 плеер для устройств без поддержки Flash, но и использовать JavaScript рекламу, а также гибко настраивать внешний вид embed кода, редактируя HTML код. Основной минус использования iframe кодов - настороженное отношение вебмастеров к установке iframe на своих сайтах.

Выбрать режим 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 позволяет настроить до 5-х динамических 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-мя путями:

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

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

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

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

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

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

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

Функциональность владельцев контента можно использовать в нескольких сценариях:

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

Локализация сайта и контента

KVS поддерживает полную локализацию сайта и контента в Ultimate версии. К локализации есть несколько подходов, которые мы здесь рассмотрим.

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

После этого работа с переводами контента и объектов категоризации станет возможна в разделе Администрирование -> Локализация данных панели администрирования. Этот раздел предоставляет унифицированный интерфейс для перевода всех типов объектов, которые поддерживают локализацию в KVS. Если переводить видео и альбомы вам удобнее в основных редакторах этих объектов, то в персональных настройках вы можете включить отображение языковых полей на страницах редактирования видео / альбомов и работать там. Все действия по переводу объектов пишутся в лог аудита и могут быть обработаны плагином Анализ лога аудита. Таким образом вы запросто сможете контролировать работу переводчиков и рассчитывать их оплату.

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

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

Само подключение локализации к сайту может быть осуществлено исходя из нескольких подходов:

  • Все-в-одном. При использовании этого подхода языковые версии сайта обрабатываются одной инсталяцией KVS. На любую страницу сайта может быть передан параметр kt_lang=%code% для переключения отображения в режим языка с кодом %code%, также движок будет автоматически предлагать посетителю языковую версию сайта в связи с его языковыми настройками браузера. Если код языка передается в параметре kt_lang, то он запоминается в куках посетителя и будет использоваться независимо от языковых настроек браузера. У данного подхода есть 2 основных недостатка: (а) необходимость переносить все шаблоны сайта на языковые ключи, чтобы текстовки дизайна сайта соответствовали текущей локали сайта; и (б) одинаковые URL-ы страниц сайта будут использоваться для отображения информации на разных языках, что плохо для SE-оптимизации. Для включения данного подхода после того, как вы добавили все необходимые языки в панели администрирования, вам необходимо добавить такую строчку в файл /admin/include/setup.php: $config['locales']=array('de','fr','es','it'); // перечислите все поддерживаемые коды языков, порядок не имеет значения После этого ваш сайт начнет автоматически отображаться в локали текущего пользователя (если она есть в списке поддерживаемых).
  • Языковые сателлиты. Этот подход подразумевает установку отдельных копий KVS в языковые директории или на языковые субдомены и подключение их сателлитами к основной базе. Поскольку сателлиты содержат разные наборы страниц и шаблонов сайта, это позволяет подключить новые языки сайта без переноса основных шаблонов сайта на языковые ключи (т.е. скопировать основные шаблоны и заменить в них текстовки на новый язык), что может быть проще в случае подключения 1 языка. При необходимости подключения нескольких дополнительных языков проще будет переводить шаблоны сайта на языковые ключи, т.к. после этого для подключения нового языка достаточно перевести только языковой файл. Основным плюсом данного подхода является SE-оптимизация, поскольку языковые сателлиты имеют отдельные, непересекающиеся с основным, наборы URL-ов с информацией на разных языках. Дополнительным плюсом также может служить наличие отдельной статистики по каждому языковому сателлиту. Минусы данного подхода - необходимость поддержки дополнительных инсталляций KVS (включая обновление каждого в отдельности), а также необходимость отдельно вносить изменения в шаблоны сайта. Последний недостаток можно устранить при использовании языковых ключей на основном сайте. В этом случае можно настроить автоматическую серверную репликацию всех изменений шаблонов и конфигурации страниц с основного сайта на сателлиты. Таким образом вручную нужно будет только внести изменения в языковые файлы. Для перевода сателлита в одну из поддерживаемых локалей вам необходимо добавить такую строчку в файл /admin/include/setup.php: $config['locale']='de'; // укажите один из поддерживаемых языковых кодов, который назначается для данного сателлита После этого сателлит будет отображаться в указанной локали.

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

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

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

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

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

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

  • Уники - количество уникальных посетителей сайта за указанный период. Уникальным посетителем признается пользователь, у которого нет установленной cookie в течение последних 24 часов.
  • Всего - количество всех запросов к сайту, которые создали уникальные посетители за указанный период.
  • Видео - количество запросов к странице просмотра видео (а точнее к блоку просмотра видео на ней; если блок просмотра видео будет использоваться на других страницах, то статистика заходов на них будет прибавляться к этому числу) за указанный период.
  • Альбомы - количество запросов к странице просмотра альбома (а точнее к блоку просмотра альбома на ней; если блок просмотра альбома будет использоваться на других страницах, то статистика заходов на них будет прибавляться к этому числу) за указанный период.
  • Загрузок embed - количество загрузок вашего embed кода на сторонних сайтах.
  • Без cookie - количество nocookie трафика. Данное число содержит всех, кто не прошел проверку на наличие cookie.
  • Выходы на КП - количество выходов на контент провайдеров видео. Учитывается везде, где вместо прямых ссылок на сайты контент провайдеров вы используете специально предназначенный внутренний скрипт редиректа, который подсчитывает статистику. Учитываются также клики на любую рекламу внутри плеера (прерол, построл, пауза и т.д.), которая привязана к URL-у контент провайдера. Также дополнительно показывается процентное соотношение выходов к количеству уникальных посетителей сайта.
  • Выходы на рекламу - количество выходов на рекламу. Учитывается только для рекламных блоков, которые вставляются на страницы сайта через настройки рекламы в панели администрирования, если в настройках рекламы отдельно задан URL выхода. Также дополнительно показывается процентное соотношение выходов к количеству уникальных посетителей сайта.

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

Для того, чтобы учитывалась статистика по выходам на контент провайдеров вам необходимо использовать ссылки специального формата. Переходя по этим ссылкам, пользователь будет перенаправлен на сайт контент провайдера по указанной в настройке контент провайдера ссылке. Вы можете использовать ссылки 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 различных вариаций), но и также поддерживает несколько вспомогательных опций:

  • Каждого реферера можно привязать к определенной категории (в настройках реферера). Используя блок top_referers на странице информации о категории, вы можете выводить список рефереров исключительно из данной категории. Используя блок top_referers на странице просмотра видео вы можете выводить список рефереров исключительно по категориям открытого видео.
  • Вы можете настроить блок top_referers таким образом, чтобы он работал в стиле "списка видео", тогда для каждого реферера будет выбираться подходящее по категории видео. Это можно использовать для вывода списков по типу "Лучшие видео на сайтах наших друзей" и т.д.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Параметры конфигурации блока - позволяют вам настроить поведение данного блока на данной странице. Параметры отвечают за то, какие данные будут отображаться блоком, либо какие проверки будут происходить при отправке формы блока пользователем, т.е. они отвечают за логику блока. Например, блок list_videos на странице Index может выводить 50 последних видео, а на странице In Traffic блок list_videos может выводить 100 лучших видео с лучшими по CTR скриншотами. В обоих случаях используется один и тот же тип блока - list_videos - но благодаря разным параметрам конфигурации блок ведет себя по разному на разных страницах. Аналогичным образом по-разному могут вести себя блоки одного типа, находящиеся на одной и той же странице KVS.
  • Шаблон блока - позволяет настроить каким образом отображаются данные блока, т.е. транслируют данные блока в HTML код, который вставится на странице KVS. Например, блок list_videos на странице Index может выводить видео по 5 элементов в строке, а на странице In Traffic блок list_videos может выводить видео по 10 на одной строке. Это полностью зависит от шаблона блока.
Параметры конфигурации блока логина задают поведение разных аспектов блока на странице логина
Параметры конфигурации блока логина задают поведение разных аспектов блока на странице логина.

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

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

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

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

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

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

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

  • На какой странице KVS вы находитесь в данный момент.
  • Список всех компонентов страниц (общих шаблонов со статическим HTML кодом), которые используются в шаблоне данной страницы, с возможностью открыть редактирование любого компонента.
  • Список всех HTTP параметров, которые передаются на данную страницу.
  • Список всех переменных сессии текущего пользователя.
  • Список всех блоков, которые используются на данной странице, с возможностью открыть редактирование любого из них. По каждому блоку отображаются его включенные параметры конфигурации, значения всех переменных $storage данного блока (переменные, которые могут использовать в шаблоне страницы KVS), значения всех локальных переменных данного блока (переменные, которые могут использоваться в шаблоне данного блока).
Отладочная информация страницы просмотра видео. Информация по блоку 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 запросов на сервере средней конфигурации. На некоторых проектах пиковая нагрузка достигает более 10.000.000 запросов в сутки, что позволяет нам говорить о большом запасе производительности в целом.

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

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

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

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

  • Сайт жутко тормозит. Оказалось, что медленная скорость работы была вызвана плохой работой винчестеров.
  • Сильная нагрузка на apache. Оказалось, что отдача видео через Nginx была настроена некорректно, в результате чего видео отдавалось через apache.
  • Большую часть времени сайт работает с минимальной нагрузкой, несколько раз в сутки происходит сильный скачок нагрузки на apache. Оказалось, что есть проблема на уровне библиотек операционной системы, в результате которой дочерние процессы apache зависали и "съедали" много ресурсов процессора.

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

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

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

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

  • Сброс кэша сайта при большом трафике. В этом случае возникает внезапная нагрузка на MySQL и LA растет лавинообразно.
  • DoS атака на ваш сервер.
  • Сбой различных библиотек операционной системы или другого серверного софта, приводящий к росту LA.

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

  • При значении LA > 10 останавливается выполнение главного cron-а. Тем самым останавливается обновление всей статистики, обработка фоновых процессов конвертации и другие задачи, выполняемые по расписанию.
  • При значении LA > 30 движок отдает только те страницы, которые имеют действующую версию кэша в MemCache. Это значит, что полностью снимается нагрузка с MySQL, которую вызывает отображение страниц сайта. При запросе страниц, у которых в данный момент времени нет версии в кэше, движок делает редирект на файл /overload.html, который находится в корне сайта (если этот файл существует). Вы можете отредактировать контент этого файла по своему усмотрению.
  • При значении LA > 50 движок делает редирект на файл /overload.html для всех запросов.

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

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

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

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

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

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

Плагины

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

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

  • Автоподбор категорий. Используется для подбора категорий у видео и альбомов на основе полей названия, описания и тэгов. Для того, чтобы этот плагин начал работу, вам необходимо создать базу категорий, т.к. плагин не создает новые категории - он лишь выбирает из существующих категорий. Поиск категорий осуществляется не только по названиям, но и по всем синонимам категорий.
  • Автоподбор моделей. Используется для подбора моделей у видео и альбомов на основе полей названия и описания. Для того, чтобы этот плагин начал работу, вам необходимо создать базу моделей, т.к. плагин не создает новые модели - он лишь выбирает из существующих моделей. Поиск моделей осуществляется не только по названиям, но и по всем псевдонимам моделей.
  • Автоподбор тэгов. Используется для подбора тэгов у видео и альбомов на основе полей названия и описания. Для того, чтобы этот плагин начал работу, вам необходимо создать базу тэгов, т.к. плагин не создает новые тэги - он лишь выбирает из существующих тэгов. Поиск тэгов осуществляется не только по названиям, но и по всем синонимам тэгов.
  • Анализ лога аудита. Основное назначение этого плагина - это вычислить объем работы, выполненный вашими контент менеджерами / дескописателями / переводчиками за любые периоды времени. Вычисления базируются на логе аудита, куда попадает вся информация о создании и изменении контента.
  • Аудит системы. Плагин аудита осуществляет полную проверку многих жизненноважных аспектов KVS: от проверки необходимых привилегий на различные файлы и директории до полной проверки доступности всего контента. Если вы запустили аудит со всеми опциями и не получили ни одной ошибки - скорее всего ваш проект работает без каких-либо проблем (это, однако, не дает 100% гарантий). Если у вас много видео и / или фотоальбомов, то будьте готовы к тому, что полное сканирование контента может занять несколько часов. Вам не обязательно ждать конца проверки, т.к. проверка происходит на фоне. Вы можете закрыть страницу и вернуться через некоторое время. Результат проверки будет доступен в списке недавних проверок.
  • Видео по картинке. Используйте этот плагин для создания видео указанной длительности и качества по загруженной картинке. Плагин создаст MP4 видеофайл, который в течение указанного времени будет показывать загруженную картинку. Такое видео можно использовать, например, в настройках защиты от хотлинка: оно будет отдаваться всем пользователям, для которых сработала защита.
  • Внешний поиск. Этот плагин позволит вам использовать внешний API для организации поиска. Вы можете настроить условия, при которых результаты внешнего поиска полностью заменят результаты внутреннего поиска или дополнят его. Используйте этот плагин для поднятия доходов с вашего сайта путем продажи кликов с результатов поиска за относительно большую цену. Свяжитесь со службой поддержки для получения деталей по настройке плагина.
  • Генерация аватаров. Плагин генерации аватаров создает аватары категорий на основе видео в этих категориях. Для каждой категории выбирается только одно видео, главный скриншот которого (точнее его исходник) будет использоваться как аватар данной категории. В настройках плагина вы можете выбрать сортировку, которая будет использоваться для поиска главного видео категории. Вы также должны указать строку опций ImageMagick, которая будет использоваться для ресайза исходников скриншотов видео до нужного размера аватаров.
  • Загрузка контента по FTP. Плагин может значительно упростить загрузку видео и фото контента на ваш сервер. Все что вам нужно сделать - это загрузить файлы в директории на сервере в нужной структуре и запустить плагин, настроив его на данные директории. Плагин проанализирует указанные директории и предоставит вам обзор найденного в них контента. При финальном запуске выбранный контент будет добавлен. Плагин поддерживает 3 разных директории для загрузки в них стандартных видео, премиум видео и фотоальбомов. Желательно использовать постоянно одни и те же директории, поскольку дубликаты контента определяются непосредственно в привязке к директории (т.е. при загрузке в одну и ту же директорию контента, который уже был добавлен ранее и не удален с вашего сайта, этот контент посчитается дубликатом). В целях безопасности директории с загруженными файлами должны являться дочерними для корневой директории проекта. В обе директории для видео вы можете загружать как просто одиночные видеофайлы в корень, так и поддиректории с несколькими файлами в них. Поддиректории могут содержать видеофайлы, а также скриншоты в ZIP архиве или в виде набора из JPG файлов. В качестве видеофайлов вы можете загружать не только исходники, но и файлы отдельных форматов. При необходимости вы можете загружать только исходник, либо только файлы форматов, либо комбинировать различным образом. По аналогии с видео, в директорию для альбомов плагин позволяет загружать как одиночные файлы в корень, так и поддиректории с несколькими файлами в них. Фотографии могут быть загружены либо в ZIP архиве, либо как набор из JPG файлов. После завершения работы плагина загруженные файлы удаляться не будут. Вы можете удалить их самостоятельно, либо оставить. При повторном запуске плагина файлы (или поддиректории), которые уже были загружены будут считаться дубликатами.
  • Исправление базы данных. Этот плагин можно использовать в случаях, когда в таблицах вашей базы данных возникли ошибки, и вам необходимо их исправить.
  • Новости KVS. Раз в сутки опрашивает сайт KVS на наличие новостей и новых версий.
  • Обновление KVS. Плагин позволяет частично автоматизировать процесс обновления. Вы должны загрузить полученный архив с обновлением и указать MD5 хэш архива, который должен быть выведен в личной зоне клиента на сайте KVS. Плагин проверит, предназначен ли данный архив для обновления вашего проекта, после чего будет выводить пошаговые инструкции и проверять ход их выполнения. Если на каком-либо шаге плагин выдает ошибку о некорректном выполнении шага, повторите выполнение инструкций.
  • Очистка кэша шаблонов. Плагин очистки кэша шаблонов подчищает файловый кэш вручную или по расписанию. Этот плагин может также использоваться для получения информации о размере файлового кэша и количества файлов в нем. Файловый кэш используется в KVS повсеместно, но он не может самоочищаться. Со временем работы сайта файловый кэш будет разрастаться и разрастаться. Мы рекомендуем изредка чистить его в ручном режиме. Если же мемберзона вашего сайта используется большим количеством пользователей, то мы рекомендуем настроить очистку кэша по расписанию. Обратите внимание, что при ручном запуске реальный запуск произойдет в течение 5 минут после отправки формы.
  • Просмотр весовых матриц ротатора. Вы можете использовать этот плагин для анализа распределения кликов по вашим страницам. Если ротатор поддерживается каким-либо блоком списка (пока это только list_videos), этот блок будет собирать статистику по всем кликам, сделанным на нем. На основе статистики создаются матрицы распределения кликов, которые используются ротатором для определения веса любого конкретного клика. Эта информация может быть полезна вам в качестве определения наиболее кликабельных мест на сайте и т.д.
  • Резервное копирование. Используя этот плагин вы можете сделать резервные копии базы данных, системных файлов KVS, а также шаблонов и дизайна сайта. Вам обязательно необходимо указать директорию, в которой будут сохраняться резервные копии. Эта директория должна иметь достаточные привилегии для записи в нее из PHP / Apache.
  • Сброс статистики ротатора. Вы можете использовать этот плагин для сброса всех данных ротатора, кроме весовых матриц распределения кликов. Вам необходимо выбрать опции, которые вы хотите сбросить. Фоновая операция может занять некоторое время.
  • Синонимайзер. Вы можете воспользоваться этим плагином для создания уникальных названий и описаний объектов контента, таких как видео и фотоальбомы. Вам необходимо задать список известных слов и их синонимов. На основе этого списка плагин будет заменять найденные в названии и / или описании объекта слова на случайные синонимы. Словоформы с большим / маленьким регистром будут определяться автоматически, поэтому вам лишь необходимо задать словарь автозамены в маленьком регистре.
  • Статистика контента. Этот плагин отображает суммарную статистику по всем видео и альбомам с группировкой по форматам. Таким образом, вы сможете увидеть, сколько дискового пространства освободится в случае удаления того или иного формата.

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

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

  • В настройках контента укажите размеры всех изображений, с которыми будет иметь дело KVS (размеры аватаров и т.д.). Это важно сделать с самого начала, поскольку в последующем изменить размер будет сложно (не происходит автоматическое изменение размера этих изображений).
  • Определитесь с необходимостью сохранения исходников видео. Исходники видео могут вам понадобиться, если через некоторое время вы захотите добавить новые форматы видео. Если же исходников нет, то новые форматы будут создаваться на основе уже существующих. Скорее всего вам не понабится сохранение исходников видео, поэтому оно выключено по умолчанию. В случае необходимости сохранения - вам следует внимательно разобраться с различными стратегиями хранения исходных файлов и выбрать подходящую для вас (исходные файлы могут храниться на главном сервере, либо на серверах хранения).
  • Определитесь с первоначальным количеством скриншотов и настройте соответствующую опцию в настройках контента. Количество скриншотов у видео не играет большой роли в софте и в дизайне сайта по умолчанию используется только для их прокрутки при наведении мышкой. Если вам необходимо, чтобы у каждого видео было минимум, например, 5 хороших скриншотов, то вам лучше всего поставить начальное количество 8-10. Затем для каждого добавленного видео вы сможете удалить плохие ракурсы, оставив только 5 лучших скриншотов. Если вы не планируете вручную просматривать скриншоты каждого видео - то вам нет необходимости первоначально создавать больше 5 скриншотов, поэтому смело ставьте количество 5.
  • Определитесь какие форматы видео вам нужны и настройте их в разделе форматов видео в настройках. Вам не обязательно задавать сразу все форматы, если вы не уверены, понадобятся они вам или нет. В будущем вы сможете всегда добавить новые форматы, и они автоматически создадутся на базе исходников, а при отсутствии исходников - на базе уже существующих форматов. Помните, что форматы видео имеют смысл только для тех типов видео контента, которые хранят свои файлы на вашем сервере. Если вы планируете запускать сайт на хотлинках, embed кодах и/или псевдо-видео - форматы видео вам не нужны. Если вы точно не знаете, какой формат использовать (FLV или MP4), используйте MP4. Информацию о различиях между форматами можно найти в соответствующем разделе этого руководства.
  • Определитесь, нужна ли вам поддержка таймлайновых скриншотов. Если да - то настройте создание таймлайновых скриншотов для нужных форматов видео (обычно это форматы, которые отображаются в плеере). Вам необязательно включать таймлайновые скриншоты сразу: они будут созданы для всех нужных видео как только вы их включите.
  • Определитесь, какие форматы скриншотов вам нужны и настройте их в разделе форматов скриншотов в настройках. Новые форматы скриншотов могут быть добавлены в любое время, и будут созданы автоматически. Если вы хотите показывать на сайте скриншоты другого размера, чем настроено в шаблонах по умолчанию - вам будет необходимо исправить CSS-стили и заменить размер в шаблонах. Чтобы быстро заменить существующий размер в шаблонах (например, 240x180) на новый, вы можете воспользоваться функцией поиска по шаблонам в разделе UI сайта панели администрирования. В поле поиска по содержимому вам необходимо ввести "240x180" без кавычек, и вы получите список всех шаблонов, где была найдена такая строка. Далее пройдясь по каждому найденному шаблону замените указанную строку на аналогичную со своим размером.
  • По умолчанию при инсталяции KVS создается локальный сервер конвертации и локальные сервера хранения для видео и альбомов. Если вы планируете выносить хранение на CDN или отдельные сервера - вам лучше сделать это сразу, иначе в будущем придется мигрировать уже загруженный контент. Удаленные сервера могут быть подключены в любое время без особых проблем.
  • Если вы хотите, чтобы при добавлении контента он автоматически категоризировался тэгами, категориями или моделями - вам необходимо создать их вручную в панели администрирования и включить соответствующие плагины.
  • Загрузите несколько видео и проверьте, что они были обработаны движком конвертации корректно. Проверьте все созданные форматы видео и скриншотов.
  • Настройте нужные вам опции плеера и embed плеера. Если вы хотите показывать в плеере рекламу, привязанную к спонсорам видео - используйте дополнительные поля контент провайдеров для загрузки рекламных файлов и привязывайте рекламу в плеере к данным полям (настройте адекватные названия полей в разделе кастомизации в настройках, чтобы не путаться между доп. полями). Таким образом, вы сможете получить статистику по всем кликам на рекламу (выходы на контент провайдеров).
  • Перед окончательным запуском сайта обязательно проверьте защиту контента. Это можно сделать в плагине аудита.

Важно! При обращении в службу поддержки убедитесь, что в панели администрирования включен доступ службе поддержки. Эта информация содержится на странице старта, там же есть опция для быстрого включения / выключения доступа.

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

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

  • Забыли пароль в панель администрирования - посмотрите FAQ на нашем сайте, там есть ссылка для скачивания скрипта сброса пароля.
  • На странице старта появилось предупреждение о том, что некоторые фоновые задачи были завершены с ошибками. Перейдите по ссылке из предупреждения на список фоновых задач. В дополнительных действиях задачи, которая была завершена с ошибкой, выберите опцию отображения лога задачи. В конце лога вы найдете запись об ошибке. Если ошибка вызвана ffmpeg или imagemagick - сообщите эту информацию администратору. Если исходя из лога вы не можете понять из-за чего возникла ошибка - создайте тикет и скопируйте лог файл полностью.
  • Видео находятся в статусе Ошибка. Вам необходимо открыть лог видео, используя соответствующее дополнительное действие данного видео на списке. В конце лога вы найдете запись об ошибке. Если ошибка вызвана ffmpeg или imagemagick - сообщите эту информацию администратору. Если исходя из лога вы не можете понять из-за чего возникла ошибка - создайте тикет и скопируйте лог файл полностью.
  • На странице старта появилось предупреждение о том, что последний запуск Cron-а был более 15 минут назад. Вам необходимо немедленно связаться с администратором, т.к. остановка Cron-а это серьезная проблема. У вас остановится обсчет всей статистики, биллингов, плагинов, защиты от перегрузки и других фоновых процессов.
  • На странице старта появилось предупреждение о том, что Cron запускается из некорректной директории. Обратитесь к администраторам сервера с просьбой проверить команду запуска Cron-а. Команда должна сначала заходить в директорию со скриптом крона (cd /path/to/admin/include), а затем находясь в этой директории вызывать скрипт cron.php.
  • На странице старта появилось предупреждение о том, что обнаружены сбои в таблицах базы данных. Перейдите по ссылке из предупреждения на плагин исправления базы данных. По информации плагина вы получите статус всех таблиц базы данных, некоторые из них будут иметь ошибки. Воспользуйтесь плагином для исправления ошибок.
  • На странице старта появилось предупреждение о том, что возникли ошибки при проверке серверов хранения. Перейдите по ссылке из предупреждения на список серверов хранения. Там вы можете увидеть детали ошибки. Ошибок может быть несколько: (a) Не работает запись в директорию хранения. Скорее всего поменялись права файловой системы на директорию хранения, указанную в настройках сервера. KVS не сможет использовать данный сервер хранения и будет выдавать ошибки при попытках загрузить контент или других операциях, связанных с серверами хранения. (b) Управляющий скрипт не отвечает. Эта ошибка может возникнуть только у удаленных серверов хранения и вызвана тем, что скрипт remote_control.php, который копируется в корень удаленного сервера не доступен или не выполняется корректно. В результате этого контент не будет отдаваться с данного сервера. Вам необходимо убедиться, что при вызове управляющего скрипта вы получаете от него ответ connected. (c) Время не синхронизировано. Эта ошибка возникает в случае, когда время на удаленном сервере хранения не совпадает с временем главного сервера. В настройках сервера хранения вам необходимо указать корректное смещение для данного сервера. (d) Сервер либо недоступен, либо некорректно настроен. Эта ошибка возникает в результате постоянной фоновой проверки отдачи контента с сервера. Запустите вручную тестирование отдачи контента с проблемного сервера и посмотрите детали ошибок. (e) Скрипт управления CDN не существует. Эта ошибка говорит о том, что по какой-то причине был удален управляющий скрипт CDN для данного сервера. Скрипт находился в директории /admin/cdn и должен был быть скопирован туда при настройке сервера хранения. Вам необходимо связаться с поставщиком CDN и попросить прислать скрипт интеграции для KVS, который вы должны скопировать в эту директорию. (f) Не осталось свободного места. На сервере хранения не достаточно свободного места для добавления нового контента.
  • На странице старта появилось предупреждение о том, что возникли ошибки при проверке серверов конвертации. Перейдите по ссылке из предупреждения на список серверов конвертации. Там вы можете увидеть детали ошибки. Ошибок может быть несколько: (a) Не работает запись в директорию конвертации. Скорее всего поменялись права файловой системы на директорию конвертации, указанную в настройках сервера. KVS не сможет использовать данный сервер конвертации и будет выдавать ошибки при попытках загрузить видео или других операциях, связанных с серверами конвертации. (b) Скрипт конвертации не работает. Эта ошибка означает, что скрипт remote_cron.php не запускается. KVS будет загружать задачи на данный сервер, но они не будут выполняться до тех пор, пока проблема не будет устранена. Вам нужно попросить администратора установить скрипт конвертации на крон раз в минуту. (c) Последний запуск скрипта конвертации был более 15 минут назад. По каким-то причинам остановился cron на сервере конвертации. KVS будет загружать задачи на данный сервер, но они не будут выполняться до тех пор, пока проблема не будет устранена. Вам нужно попросить администратора установить скрипт конвертации на крон раз в минуту. (d) Пути к некоторым библиотекам не настроены корректно на этом сервере. Эта ошибка сигнализирует о том, что в файле config.properties, который находится на сервере конвертации, стоит некорректная ссылка на одну из серверных библиотек, либо эта библиотека перестала работать. Попросите администраторов поправить пути, либо переустановить проблемные библиотеки.
  • Контент не появляется на сайте. Для того, чтобы контент появился на сайте он должен быть в активном статусе и его дата постинга должна быть меньше текущей серверной даты. Проверьте, возможно по дате постинга контент должен появиться чуть позднее. Также, если вы в данный момент не залогинены в панель администрирования или смотрите сайт из другого браузера - вы, вероятно, видите закэшированную версию сайта. Через некоторое время (как настроено) кэш обновится и контент появится.