Jump to content

Tech Support

Administrators
  • Posts

    1,810
  • Joined

  • Days Won

    338

Everything posted by Tech Support

  1. If this would be technically possible we would have added it long ago. However you forget about caching, lists are heavily cached for performance. Caching means that the same HTML code is showing for many users and KVS does not generate this HTML code for each request. So with caching you cannot show user-specific info in this HTML. Disabling caching is not an option for lists, performance will be poor. In video view page it is possible, because disabling cache for members is a good balance between functionality (show member-specific info on view page) and performance (view block is lightweight in comparison to list blocks). The only possible way is to output a list of all video IDs from user favorites in header and then use javascript to highlight videos with IDs from this array. Here is the code that will print javascript array with IDs from user favourites: {{if $smarty.session.user_id>0}} {{query_kvs select="list" table="`$config.tables_prefix`fav_videos" assign="list_fav_videos" where_user_id=$smarty.session.user_id}} <script> var favVideos = [ {{foreach from=$list_fav_videos item="fav_video"}} {{$fav_video.video_id}}, {{/foreach}} 0]; // now favVideos lists all video IDs from user's favorites, you can use it to highlight the needed videos </script> {{/if}}
  2. Our final enhancement in this update is VAST support in KVS player and player settings. Most commercial players will require monthly / yearly fee for allowing you to use their VAST module. KVS player will do it free for you, but will only allow a limited set of VAST providers. Here are 2 providers that will be supported at this moment: - teasernet.com - adwise.agency In future we may add more providers. In order to use VAST from these providers you will first need to register there and have your site approved, so that you can get VAST configuration URL from them. After you have the URL, you can enable VAST on preroll (postroll is also supported, but rarely used) in player settings: In KVS admin panel you can control whether this preroll advertising should be rendered on each video, or every 2 videos or etc. using the standard preroll control. But you can't control whether it can be skipped or not. The ability to skip advertising is controlled by your VAST provider, since such ads may be paid less.
  3. OK, we will consider this in future releases.
  4. Hello, bitcoin is not used as payment anymore. Its commissions are very huge for small transfers. We were planning to add support for bitpay.com, but for now we do not see much sense.
  5. Implemented a set of player enhancements. 1) For related videos it will now be possible to enable them on pause, they will show up if you don't have any on-pause advertising, otherwise advertising will have more priority: 2) Metadata preload checkbox was replaced with selectbox, which also supports "auto" option in addition to metadata preload option. Auto preload will hint browser to start buffering the whole video, while metadata preload will require preloading of a small part of video metadata. While using auto preload may increase your traffic spending, some reports suggest better user behavior patterns when using auto preload. Here is the new option: 3) There is a new option added which will force player show video global duration instead of current video file duration. This is mostly needed for paysites, when you show 1-minute trailer to your free users instead of showing the whole video. In this case KVS player will show video duration as 1 minute, which is not really true if we think of the whole video. The new option will force player to show the real duration of the whole video and this may be looking more convincing for user to sign up: 4) In player popunder advertising we fixed a bug with popunder being triggered again and again if website was open in multiple tabs. At the same time we also added one more option, which will allow you to control how often the popunder should be triggered for the same user: 5) Finally we added progress indicator for pre-roll and post-roll ads - a small yellow line in default skins:
  6. This grabber was updated to v9 to support the redesigned source site. Should be auto-updated within 1 hour.
  7. Hello, not sure I understand the issue. If you want to allow uploading the videos that were deleted, you can change the option in "Settings -> Content settings" to allow duplicates that were deleted.
  8. KVS admin panel supports all possible ways to add videos. All you need is to stick to the way which best suits your situation, whether you have existing content or not. There are different content types supported for videos (upload, embedding, hotlinking and other), you may also need to understand how they are different from each other in What video types are supported in KVS tube script and how they are different post. When using upload content type, it is also possible to upload files differently depending on whether you want them to be re-converted or not, please check Different ways to upload video files into KVS for more details. Adding videos manually This is the most obvious way to add videos. The form can be found in Videos -> Add video section of admin panel. You can specify all possible options there and send new video to conversion engine. You don't need to log in to website area as a specific user to add videos from this user - you can do that in admin panel by selecting the needed user in add video form. In Settings -> Content Settings section under Video adding / editing settings you can select some options that affect this form: the most valuable are default user and default status. Based on which video content type you want to add, KVS will show only fields that are related to the selected content type: Adding videos manually is very simple and straightforward process, but this won't work well if you need to add many videos. Therefore please check different mass importing options available in KVS. Mass importing videos from a text file or Excel spreadsheet This feature should be used in the following cases: You have a text file created by some other website or program with the needed list of videos to import (KVS export feature can also generate such text file to export videos from one KVS to another). You have a list of video files uploaded to your server and you want to import them into KVS with specifying all additional info. For accessing this functionality you should go to Videos -> Import videos. There you can copy-paste your text field into a data textarea, make sure to configure Field separator correctly (\t for copy-paste from Excel, semicolon (;) for CSV, or other separator if you are using plain text file). In most cases Line separator should not be changed. Then you need to select list of Fields in the exact order you have in your import data. IMPORTANT! Some CSV files may have separator at the end of every line, which actually means that there is one more empty field at the end of every line. In this case you should add one more additional field and select * Skip this field * option there. If you still have error indicating wrong number of fields in every single line, you should carefully check whether you've selected the correct separator and whether the number of fields matches the number of separators in the line + 1. The number of fields should be +1 all the time! Here are some examples. Single text file import with pipe (|) separator: Specifying data in Excel and then copy-paste: When using import functionality it is very important to understand which data you need to provide based on which video content type you are trying to import. Video upload: you should either provide video file URL in Source video file (with processing) field, or one / several Video file "XXX" (without processing) fields. Video hotlink: you should provide video file URL in Hosted file URL (hotlinking) field. Additionally you may specify Duration and Overview screenshots (sources comma-separated). If you don't provide duration or screenshots in import data, KVS will have to download the file you are hotlinking for detecting its duration and screenshots. This may significantly increase video processing time. Video embed: you should specify Embed code (embedded video) field. In addition if you also specify Hosted file URL (hotlinking) field, KVS will temporarily download file from this URL and will detect duration and screenshots automatically from it. Otherwise if you don't know video file URL or you don't want KVS to spend time on its download, you should specify Duration and Overview screenshots (sources comma-separated) fields. Pseudo video: you should specify Outgoing URL (pseudo video) field. In addition if you also specify Hosted file URL (hotlinking) field, KVS will temporarily download file from this URL and will detect duration and screenshots automatically from it. Otherwise if you don't know video file URL or you don't want KVS to spend time on its download, you should specify Duration and Overview screenshots (sources comma-separated) fields. Import feature supports the huge list of other options, but for novice users in most cases you don't need to touch them and better use everything by default. If you import many videos, you may need to look at post date randomization options, so that you can import videos to be published in some future or past period. For example you can import 1000 videos as they have been added one by one since 2010. Anyway, you can always do the same via massedit feature, so not something should be really important during import phase. After you submit the import, KVS will validate each single line and will show you summary so that you can confirm it. The validation may take much time depending on your input data. By default KVS validates all URLs to be valid, which may take some time. You can disable URL validation in import options. It is recommended to start with several lines first to make sure you understand the concept. When looking into import validation summary you will be able to see all errors and warnings. Warnings are not critical, they just indicate potential issues in your input data, which are not necessary real issues. Errors are critical and indicate the lines that can't be imported. If there are any lines without errors, you can still confirm import and lines which have errors will be simply skipped from being imported. If all lines have errors, you will not be able to confirm the import. After you confirm import summary, KVS will create a background task for import. You can see import tasks in Administration -> Imports log. There you can see data submitted with each import as well as import status and log. All imports are processed on background. You don't have to wait for anything here. Import tasks may have errors, even if validation didn't find any issues. There may be issues with downloading files, network issues and some other. IMPORTANT! If you submitted an import but you don't see any videos added, you may need to go to Administration -> Imports log and look at what is going on there. It may be that all import lines failed. Looking into import log will help you understand the issue. It may also be a case that your import is stuck due to lack of free space on your main server (since import in most cases download new files to your server there is a protection to check disk space, so that your HDD is not 100% filled). In this case import will automatically continue as soon as more free space is available. When you use this functionality really often, it may help to create an import pattern, so that you do not select the same options every time. You may define as much different import patterns as needed, then you just need to select the needed pattern and copy-paste import data. The rest of options will be defaulted from import pattern. Uploading video files via FTP and use FTP content uploader plugin If you already have a list of video files and want to quickly upload them into KVS, the easiest way is to use FTP content uploader plugin. You just need to create a folder somewhere under your www root and upload all your video files there. Then in FTP content uploader plugin you should specify full server path to that folder, or relative path under your www root (not starting with /, e.g. upload for http://domain.com/upload folder). Each video file in this folder will be treated as a standalone video and will be uploaded into KVS with just a few clicks: In advanced scenario here if you want to upload multiple formats for the same video as well as screenshots and / or description, you may need to create subfolders for each video. All files in a subfolder will be considered to belong to each video. The following rules will be applied: Subfolder name means title of a video. ZIP file means list of screenshots uploaded for a video. JPG file means main screenshot uploaded for a video. TXT file means description specified for a video. Video files in subfolder may be treated differently based on your selection in Video formats option: -- If you want to upload as a source file with processing, then the biggest video file will be chosen as a source file, other video files will be ignored. -- If you want to upload as format files without processing, the plugin will compare file names with video formats to find postfix matching. As a result, plugin will show you a summary of all detected files and after you confirm that, they will be uploaded as videos into KVS. It is recommended to enable delete option (if not a problem that files will be deleted), because this will use rename operation on filesystem, which works instantly in comparison to copy operation. Using this plugin will not allow you to specify other data, such as categories, tags and etc. It is expected that you want to create videos first and then you may manually edit them in admin panel, after they are imported. If you want to specify all this data at import time, you need to consider using import feature (2). Since your video files are already uploaded on your server, you just need to specify their URLs for the import to take them. At the same time you can also specify other data needed. Automating mass importing videos with a feed This feature should be used in the following cases: Import data is regularly updated and you want to automate importing the updates. You want to automatically sync content between 2 or more KVS projects. You have a software that uploads video files to your FTP and you want then to auto-import them (for example CCTV or webcams). To access this functionality go to Videos -> Add importing feed section. Feeds are very similar to mass import described in previous section, but the main purpose of a feed is to automate importing without your intervention. Every feed can be configured to query a text file from the given URL every given interval and add all new content that appears in this text file. Many options here are very similar to mass importing options: for plain text file format you need to specify field and line separators and select list of data columns. When a feed gets executed for the first time, it will add all available content from the given file if you don't specify any limit. Starting from the next execution feed will only add new content that appears in the text file. Here it is very important to understand how duplicates are being calculated. First of all you should specify Duplicates prefix - any unique string for this feed. Then if using CSV / plain text format you should also indicate the key field from this file - a field which is unique for every line. It can be video ID, or video URL or title - any unique field. Duplicates prefix is needed for cases when you need to separate content between different feeds. Imagine that you used video ID as a key field. If you import data from multiple providers by using multiple feeds, IDs may overlap there, e.g. video #1234 may exist at both provider 1 and provider 2. If KVS only used ID to identify duplicates, it would end up by considering video #1234 from provider 1 and video #1234 from provider 2 as duplicates, so one of these videos wouldn't get added. But if you specify Duplicates prefix unique for each feed - this will not be a problem anymore. Video #1234 from feed 1 will not be a duplicate of video #1234 from feed 2. At the same time, you may have several different feeds adding content from the same source (for example 1 feed is pulling all videos from Category 1 and another feed is pulling all videos from Category 2). Since these feeds pull content from the same source and the content may overlap, you should specify the same value for Duplicates prefix for both feeds. Because a single video #1234 may have both Category 1 and Category 2 and thus it will appear in both feeds. If you've specified different prefixes, this video will be added twice. But if prefixes are the same - videos #1234 in both feeds will be considered as duplicates. Grabbing videos from 3rd party sites KVS features extremely powerful tube grabbers plugin. With this plugin you can import tons of content, even if you don't have any. We will not speculate on whether it is ethic or not to grab content from 3rd party sites, you should decide this yourself. In order to use grabbers you first need to install and configure some. KVS provides a list of most popular tube grabbers and from time to time we expand it with new grabbers. There is also a default video grabber which can download videos from abstract tube sites. However specific grabbers are more powerful: They may support embed codes if source site provides them. They may support additional video data, such as categories, tags, models, rating, views, date, etc. They may support downloading video files in multiple qualities, so that you don't need to convert them on your server. Most of video grabbers require youtube-dl library to be installed on your server. If you don't have it, please ask host support to install it for you, otherwise it won't be possible to use many grabbers. After you install some grabbers, you should configure them. You should select Mode option to indicate whether you want this grabber to download, embed or add videos as pseudo videos. Then you also need to choose which data fields you want to grab; the set of fields is different for each grabber and is based on which data can be parsed from the grabbed site. Finally there are filtering options, that help you to maintain grabbed content quality. IMPORTANT! when you want to use grabbers to download videos to your server, like with any other methods you can decide whether you want the downloaded video files to be processed, or you want them to be saved without processing. Here you can use 2 different tactics based on whether your project has enough computing power or not: If your project doesn't have much computing power, it makes sense to download all files without processing. In order to configure this you should set Multiple value for Quality option and then based on the number of video files provided by grabber match your video formats: If your project has enough computing power, it may be faster for you to download only 1 single file from grabber and have other files created by KVS. This may work faster, because download from grabbers is typically slow due to speed throttling by the source site. In this case you should select the needed file under Quality option and assign it to the correct format; so that all other formats will be created by KVS: NOTE: in some cases if you want to process all files, even the downloaded one, you will need to set upload as Source file. One important issue you'll find when using grabbers is how to manage your categorization efficiently. Different sites may have many similar categories named differently, so that grabbers may create too many categories in your database. There are several workarounds to deal with this described in Categorization best practices article. There are 2 ways you can import videos from grabbers plugin: you can import videos manually or you can configure grabbers to ping video lists from time to time and add videos from these lists. When using grabbers for the first time we recommend running manual imports first to understand how grabbers work and whether the grabbed videos are in the way you want them to be added. In order to import videos manually you should go to Upload content using grabbers manually section in grabbers plugin. There you need to specify list of URLs you want to grab. In this list you can specify both individual videos (if you want to pick each video yourself) and also you can specify video list URLs or video RSS URLs to grab the whole lists. Here is where you can feel the real power of using site-specific grabbers - you can use your browser to navigate source site and find a page which lists the needed videos - this can be a page listing all top rated videos, or most viewed videos for the last week, or videos from a specific category, or videos from a specific user and etc. You can then copy-paste URL you see in browser address field and grabber will open that page and will add all videos from it. Many tube grabbers also support pagination mode, which means that grabber will be able not only to add all videos you see on that URL, but also to navigate to page #2, to page #3 and etc. of a paginated list and find all videos there as well. In order to enable that, you need to specify a number of videos you want to grab right after the URL separated by pipe symbol, e.g.: https://www.kvs-demo.com/top-rated/|1000 This command tells KVS grabber to import 1000 videos from this page. If this page is a paginated list and shows only 50 videos per page, and the grabber supports pagination, KVS will query 20 more pages from this list to add 1000 videos in total. Using this approach you can mass import 100 top rated videos from every category on the site by simply specifying URLs to category pages and number of videos you want to grab from them. If you do not specify a number after list URL, KVS will add only those videos that are displayed initially on this page, e.g. only 50 videos for this sample top videos list: https://www.kvs-demo.com/top-rated/ Finally, when you have imported sample list of videos and you are happy with them, you can move forward and configure auto-pilot. Auto-pilot is exactly the same as importing manually via specifying list URLs and counts. The only difference is that auto-pilot will do that automatically for you, e.g. it will query the specified pages every N hours as you configure and will check if there are any new videos there. Therefore if you want it to import new videos every time, you should make sure to provide list URLs, which are sorted by new videos first. If you recall our previous example the top.html will not work here, since top lists are rarely updated. Instead in auto-pilot settings you should specify URLs which are updated every N hours you plan to query for new videos, for example latest videos page: https://www.kvs-demo.com/latest-updates/|100 By setting the above URL to auto-pilot you will require KVS to grab new videos from this website every N hours. Then you simply do not need to upload any videos manually, because they will be added and added every N hours you configure (if the source site is updated of cause with the new videos). If you want to grab only from specific categories, or tags, or models or whatever, you will need to specify multiple URLs, each for the list you want to grab, e.g. like this for grabbing from 3 categories: https://www.kvs-demo.com/categories/rock-music/|100 https://www.kvs-demo.com/categories/house-music/|100 https://www.kvs-demo.com/categories/pop-music/|100 While you can also use RSS with grabbers, using the URLs gives you much more power than RSS. In most cases you can adjust sorting or even do some filtering in the URL, so that grabbers only import content you'd like to appear on your site. Here are some important highlights with using tube grabbers in KVS: Use specific grabbers designed for specific sites, they support more options. If no specific grabber is available for the site you want to parse, you can try using default video grabber if it suits you (this grabber only supports download mode). But this grabber won't support 100% sites, it can only grab from sites that do have video URLs clearly printed in HTML code. When downloading from other sites, your IP may be blacklisted for frequent downloads. KVS has no control on that other than letting you specify timeout to avoid frequent requests. Some grabbers support proxies that can be listed in their settings. Try importing manually first before you configure auto-pilot. If you want to grab initial set of content, grab it manually and use auto-pilot for pulling new videos. Use web URLs instead of RSS to download from video lists. Make sure videos in the list are filtered and sorted in the way you want to grab them. You can still use RSS if you want to. Default grabber only supports RSS lists. Grabbers may become broken from time to time if source sites gets updated. If you find this issue, please report to KVS support and we will update the broken grabber to be working again. With KVS you can create your own grabbers and use them on your projects. You can find more details in How to create custom tube video grabber for KVS article. Combining grabbers and mass import Grabbers plugin can import many videos from other sites, but sometimes you may need more flexible way to grab video files and at the same time specify your own title, description, categorization and so on. In this case you can combine grabbers functionality to download files and mass import flexibility to specify data. However in this case you need to manually select videos and specify their direct page URLs, grabbing multiple videos from lists will not be possible. In order to use grabbers in mass import you should specify video page URL in Video page URL (grabbers) field. Then you can also specify any additional data you need. The key point here is that your custom fields specified in import data will override fields from grabbers. For example you can specify title and categories, so these fields will be taken from import. All other data will be taken from grabber. Using this approach will take much of your time to prepare data, but you will also benefit from more accurate and unique SEO, which is best for your project.
  9. Dynamic HTTP parameters, which are typically used to pass partner refs into paysites, were enhanced to allow specifying how long the passed values are kept in user cookies. Previously KVS automatically saved all passed values for 360 days, but now you can adjust this period to what is needed. Settings for dynamic variables are located in Settings -> Website Settings:
  10. Sorry guys for making this update so long, we know that many clients are waiting for the new announced features and fixes. We are very close to finalize development and we only have some more player enhancements, such as VAST support and other minor ones. Thanks for your patience! Meanwhile, big changes were implemented in image settings. First of all, we added support for 2nd image for categories and members (previously only 1 image was supported). Changing categories will be really painful during update, since we will have to fix templates that use old approach of displaying avatars, so 100% of projects will be affected. However it will finally make these images fully consistent across the whole product. Another enhancement here is that now you will be able to configure resize logic for every of these images, while before that they all were automatically resize to fixed this. This will make possible using cover images in profiles, models, categories and other, which should potentially allow having dynamic height. Here are the updated settings:
  11. KVS supports different content types for videos (uploading, embedding, hotlinking and other), here is full information about them: What video types are supported in KVS tube script and how they are different. When using upload content type, you upload a source video file into KVS and then let KVS process it and store it using KVS storage system. During video processing phase KVS will create all required video formats defined in your settings. KVS will also try to create all conditionally-optional video formats, if the uploaded source file meets their size and duration limits. The most common example here is when you have multiple video formats defined for multiple qualities, e.g. 360p, 480p and 720p. In such scenario 360p should be configured as required format, 480p and 720p should be configured as conditionally-optional formats. So that 480p and 720p are only created for source video files that allow resizing them to 480p or 720p respectfully. For example if you upload source file in 720p - all 3 formats will be created. If you upload source file in 480p - only 360p and 480p will be created, 720p format will be skipped. For source files with 360p or less quality KVS will only create 360p format, because this is the only required format in this configuration. When using the described approach you don't need to think about source file original quality, all you need is to upload it as a source file with processing and KVS will then create all necessary formats. This processing will however take much time, because operation to create one video file from another uses your server resources very intensively. There can be scenarios when you will want to skip this processing: You don't need to have multiple video formats, you need to show video in only one quality. You already have video files in the needed format(s), for example you already prepared them using desktop software or you import existing video files from external sources. You don't need any resize or watermarking on video files. KVS provides ability to skip video processing for all or some files. In order to do that you should upload your video files not as source files, but directly into the needed video format(s). When a file is uploaded as a video format, KVS will not do any re-conversion with this file, the file will be saved in the same form as you've uploaded it. By doing this you can significantly decrease video processing time, but there are certain limitations you should be aware of: No watermarking will be applied to the uploaded file as well as no resize and duration trim. You should make sure that the uploaded file has valid format (e.g. if you upload it into MP4 format, the file should be a valid MP4 file, not any other video file). If you try to upload an invalid file, most probably there will be an error thrown during processing phase, however this depends on your ffmpeg version and it is also possible that there will be no error and you will end up with a video that is not playable via web player even if you can play it with your desktop. If you have multiple video formats, you can choose to upload them all and fully skip conversion, or upload only one of them and let KVS create the rest. Depending on which functionality you typically use to upload videos into KVS, they all provide ability to upload in both ways. Naming convention for this option is as following: Source file (with processing): means that the uploaded video file will be considered as a source for all video formats that will be created by KVS. Format "XXX" (without processing): means that the uploaded video file will be uploaded directly as the given format, so it won't be processed by KVS (other formats may be created from it if required). Manual video adding When adding videos manually you can see a field to upload as a source file (Source file) and separate fields to upload into each specific video format (e.g. Format "XXX"): Videos mass import In mass import for each field you can either select if it should be considered as a source file (Source video file (with processing)), or as a specific video format (Video file "XXX" (without processing)): Videos importing feeds In importing feed settings you can choose whether all video files from this feed should be considered as source files (Source file (with processing)), or as files of a specific format (Format "XXX" (without processing)). Importing feeds do not support uploading multiple files in multiple video formats: FTP content uploader plugin Using FTP content uploader plugin is quite tricky if you have multiple video formats and want to upload them as formats without processing. In order to do that you should name your video files based on postfixes you have in video formats. For example if you want to upload only 1 format per each video, you can still put all video files into 1 upload folder, but make sure that their file extension match the postfix of the video format you want it to be uploaded to, e.g. test.mp4 will match video format with .mp4 postfix. Also you should set Video formats option to detect postfixes: If you want to upload multiple video formats for each video, then you should put files for the same video into a subfolder under your upload folder. Each file should have filename based on video format postfix you want it to be uploaded to, e.g. test.mp4, test_480p.mp4 and test_720p.mp4 for formats with .mp4, _480p.mp4 and _720p.mp4 postfixes. Then on summary page you can check if all the formats have been detected as expected: Grabbers plugin In grabbers plugin if you want to download only 1 video file, you can simply select whether it should be considered as a source file or specific format file under upload as option: If the source site provides multiple video formats, you can download as many of them as needed and upload as specific video formats. In order to get these fields displayed you should switch Quality field to Multiple value: NOTE: downloading multiple files from grabber could be slowly due to bandwidth throttling on the source site. If your project's conversion power is high, it may be faster to download only 1 file and then create other formats via KVS. Summary Uploading as a source file with processing: Should be used by inexperienced users. You can upload any source file with any quality (480p, 720p and etc), KVS will automatically decide which formats to create. KVS will create all the needed formats with all their settings, e.g. watermarks, quality, duration trim. Works slow due to video conversion utilized. Uploading as a format file without processing: Should be used by experienced users if all restrictions are not a problem (you don't need watermark and etc. see below). Video file format and quality (480p, 720p and etc.) should exact match video format settings. No watermarking, quality change and duration trim will be done. Works incredibly faster.
  12. This grabber is broken, because they added protection from download. No fix for that.
  13. KVS player will not support VAST from Exoclick at the moment. We will add support for other 2 VAST providers.
  14. Why do you need this? No, we will support only limited set of VAST providers, no exoclick is planned for now. This can be done with using flags. Here you can see Report video tab: https://www.kvs-demo.com/videos/340/craig-david-insomnia/ It allows using flags to send user notes about videos. You can create a flag to specify model name. Then you can add it to this form via Website UI -> Theme settings. If you want to create a custom form for specifying model name, you need to add some JS programming to send AJAX request for this form. You need to send the following via GET or POST request: https://www.kvs-demo.com/videos/340/craig-david-insomnia/?mode=async&action=flag&video_id=<VIDEOID>&flag_id=<FLAGID>&flag_message=<MESSAGE>&format=json Where <VIDEOID> should be replaced with video ID, <FLAGID> should be replaced with your flag ID (the flag you create for voting for a model) and <MESSAGE> is the text user enters.
  15. This is exactly what we've said. This feature will only work in 3.9.2.
  16. We added this to 3.9.2. There is a global_stats block in KVS which can show many stats from the website, but it was missing members online info. We have added this. In order to add this to your site header, please follow these steps: 1) First go to Settings -> Website settings and enable Synchronize user online status option at the bottom. By default this option is enabled for performance reason. 2) Then go to Website UI -> Global blocks and create block with name Header Stats and type global_stats. After saving global blocks go to this block editing. 3) In Header Stats block set template to this: <ul class="member-stats"> {{if $stats.members_total>0}}<li>{{$stats.members_total}} members total</li>{{/if}} {{if $stats.members_today>0}}<li>{{$stats.members_today}} members joined today</li>{{/if}} {{if $stats.members_online>0}}<li>{{$stats.members_online}} members online</li>{{/if}} </ul> 4) Also in Header Stats block settings you can copy its insert directive, something like that: {{insert name="getGlobal" global_id="global_stats_header_stats"}} 5) Finally go to Website UI -> Page components -> include_header_general.tpl and paste this insert code into the place where you want to show these stats. You can do this now, but online members number will only be available starting from 3.9.2.
  17. In memberzone awards it will now be possible to grant tokens for login action. You can specify minimum interval between subsequent logins that will be required so that tokens are assigned (for example no less than 20 hours since last login award): This can be used to motivate members return back to your website every day, especially if you have some benefits available for token owners.
  18. A set of enhancements was added into conversion engine, storage system and CDN API. 1) Conversion engine now supports API for programmatically configure source files pre-processing, similar what KVS already has for watermarks: https://www.kernel-video-sharing.com/forum/forum/educational-support/educational-series/323-how-to-use-custom-watermarks-for-each-video We decided not to expose this feature for public usage, because we believe the new options will even more complicate existing options. This functionality is intended for advanced users who want to: Rotate and flip videos to make their video stream look unique for bots. Videos that do not contain text can be flipped without any visual sign of that. Rotation will cause small crop from top / bottom so that black triangles are not visible within the video. Typically 1.5 - 2 degree is more than enough, bigger values will be visible. Crop watermarks from top / bottom by specifying crop offsets in pixels. Crop a specific video fragment, for example skip 30 seconds from video beginning and then 10 from end. Typically used to remove inline advertising. In order to use this functionality you should understand what you are doing and why. Normally you will also need to think how to provide these options, because they should be different for different videos. For example you can specify them in video custom fields and then parse this data in API function, or if you consider multiple videos share the same common settings you can group them with content sources and specify these options in content source custom fields. To enable source file pre-processing you will need to add /admin/include/kvs_filter_video.php file with the following code: <?php function kvs_filter_video($video_data) { return array( 'crop_top' => 10, // pixels from top 'crop_bottom' => 20, // pixels from bottom 'offset_start' => 3, // seconds from the beginning 'offset_end' => 4, // seconds from the end 'rotate_degree' => 2, // degrees, KVS will automatically randomize direction 'flip' => 1 // if to flip video horizontally ); } 2) Feature request from popular CDN provider: we have extended CDN API function used for content invalidation. Previously this function was only called for changed / deleted files. KVS will now also call it for the new files. In order to indicate operation type we added one more argument of string type with one of the following values: add: new files / folders should be added to CDN change: files / folders should be invalidated on CDN delete: files / folders should be deleted from CDN multiple: special case for albums when some files may be added, some deleted and some changed within the same invalidation request Here is the new function interface (function name should be adjusted based on CDN API filename): function cdnapi_invalidate_resources($server_url,$folders,$ files,$operation) { // code invalidation logic here } 3) It is now possible to deactivate storage groups. This can be useful if you have multiple storage groups for different types of content. For example if you have a separate group with LQ servers for less popular / old content. Normally KVS is configured to auto-choose storage group based on free space available. In this case if you want to prevent KVS from auto-selecting any specific storage groups you can just deactivate them. Then all new content will be added to other groups, but you can manually move any content to the deactivated groups at any time.
  19. KVS has multiple categorization entities, which all together are designed for specific needs and have specific functionality. Using correct categorization concept is crucial for a successful tube site and even a paysite. Please pay attention to this guide. Categories Categories are designed to be initially created by admins and thus they are designed to be limited. Use categories for your top level categorization. Depending on how you add your content (manually, import, grabbers) it is always possible to dynamically create categories on the fly and it is also always possible to make sure that no dynamic categories are created. Users will not be able to create new categories, they will only be able to use the existing set of categories you have defined in admin panel. Importing and grabbers will create missing categories by default, so in order to prevent that you should enable options that stop this: This becomes more important with tube scrappers when grabbing content from multiple tube sites. Each tube site has its own set of categories, some of them may be spelled differently but define the same meaning, e.g. Phones and Mobiles. If your videos are grabbed automatically and categories are allowed to be created on the fly, your tube will end up with dozens different categories having the same meaning. Fixing this will be possible, but will require much time spent in admin panel, so it is better to prevent by using the proposed strategy: Step 1. Define your categories manually based on your site's planned content. Step 2. Before enabling grabber that supports grabbing categories for each video, check the whole set of categories this site provides. Make sure to list these categories as synonyms of your existing categories, where no exact match is found. For example for category named Mobile Phones you can list such synonyms as Phones, Mobiles, Smartphones. When searching for existing categories KVS will also check their synonyms and instead of creating new category named Smartphones it will choose existing category named Mobile Phones, which defines Smartphones as a synonym. Synonyms can also be used in SEO, they are typically used as HTML keywords for your category pages, but can also be displayed anywhere where category name is displayed: This approach should work great if you correctly define all synonyms before using grabbers. But if the number of categories on the grabbed site is huge or you are not able to find their list, you will not be able to find out which synonyms should be added. There is another approach: import categories as tags first using the new option in grabber settings: Step 1. Not necessary needed to define your list of categories. Step 2. In grabber settings enable Categories as tags option. This will add all categories as tags in addition to original tags that may be available on grabbed site. Step 3. After importing much enough content, check your tags and sort them by the number of videos in them. Tags with most content are your potential categories and their possible synonyms! Now you can create your set of categories and specify their synonyms by looking into these tags. Step 4. Go to Plugins -> Category auto-selection and enable this plugin to process every video. Step 5. Go to Videos list and select Mass edit all videos... option in batch actions. You will see mass edit GUI. Enable Process videos with "Category auto-selection" plugin option. Make sure you do not select anything else and submit mass edit task. Now your videos will be auto-populated with categories based on their tags. For new videos this will happen automatically. You need to use mass edit only for the first time after you are able to populate your initial set of categories. But at any time you can repeat step 3 and step 5 when you import more content to create more categories and assign videos to them. Using either of these approaches will keep your categories tuned. Categories support custom fields, some of them are enabled by default and are used for HTML title, HTML description and SEO text displayed on category pages. We encourage you to fill them to get more SEO traffic to your site. Also categories can be used to bind site advertising to specific categories, e.g. show specific ads on specific pages only for specific categories. Here are some places where you can use this: Video / album pages: you can show ads specific to categories of the displayed video or album. For example for all videos having Mobile Phones category you can show only ads related to mobile phones and do not show other ads. Using this functionality can significantly increase your revenue. Category pages: you can show ads specific to the given category only. Category groups For some tube sites with complicated categorization it may be needed to group categories by certain areas. This is typically used in advanced search functionality, when users should be allowed to search by multiple criteria matching at the same time. KVS doesn't support category tree, but in most cases the same thing can be achieved by using category groups. For example if you have a tube site with travel videos, you may have the following grouping (simplified): - Countries --- USA, Canada, Australia, etc. - Activities --- Rafting, Hiking, Snorkeling, etc. - Production --- Professional, Amateur Then for each video users can select multiple categories from each of these groups. KVS default theme allows switching category selector to grouped one, which will display categories in the needed way automatically. It is also possible to display categories grouped in main category listing or at any page of your site, e.g. in sidebar or header (this is not supported by default KVS theme and will require redesign if needed). Categories grouping can also be used in advanced search function to search for content in the exact matching set of categories, e.g. only amateur videos about hiking in USA. In this case user should simply select 3 categories together: USA, Hiking, Amateur and all videos where these 3 categories are present will be displayed. Tags Tags are true dynamic categorization objects, they can be created by your site's users at their own discretion. Tags are typically used as keywords for content pages and can also help in text search and SEO for providing landings for specific search results. Our basic recommendation is that you don't try to limit them in any way. However KVS provides functionality to merge several tags into one and keep content correctly reassigned. This specific functionality is available as Rename function in tags list in admin panel. Tags can also support custom fields, which can be used for SEO, but usually this is not feasible due to their big amount. Content sources Content sources can be used in multiple scenarios. The initial idea behind content sources was to group videos / albums based on the source they are coming from. Here are some real world scenarios. Scenario 1. For a tube site if you advertise sponsor paysites, you are allowed in some cases to take premium content from their member area and add to your tube but with some duration restriction (for example truncate to max 5 minutes). So you can configure a content source for each of these paysites and you can also configure that all content from a specific content source is truncated to some duration specified in content source settings. In order to do that you should first go to Settings -> Customization and enable any free custom text field for content sources and name it as Duration limit: Then in Settings -> Video formats for all video formats, which are planned to be created for such videos, you can enable duration limit to be taken from that content source field: The idea is that if the uploaded video has a content source and this content source has Duration limit field specified, KVS will truncate all video formats of this video to this duration. All other videos (either from different content sources, or with empty content source) will not be truncated. Therefore using this functionality you will be able to ensure that you don't violate any duration policy required by content author / owner. But in order to have this, you should configure it from the beginning. Scenario 2. For a tube site if you advertise sponsor paysites, you can bind in-video and other video page advertising to advertising specific to content source. This is the widely used concept of showing "Download full video at XXXXX" banner under video player, or inside player. In order to do that you should also use custom content source fields. In Settings -> Player settings you can bind specific in-video advertising to a custom text (for HTML ad) or to a custom file (for video or image ad) field of video content source. In this case you should also specify some default HTML or file for the ad - just because some videos may have empty content source or some content sources may have empty custom fields: Default KVS theme also supports 2 image banners (one wide on top of video page and another under video player), these banners can be uploaded into predefined custom fields in content sources: Theme settings can be changed of cause, default theme just has 2 image banners predefined, but you can customize to display other banners, or to display HTML banners instead of image banners, or anything else. The template code is pretty straightforward. For View video page template (Website UI -> Pages -> View Video) showing HTML ad from custom field #5 with fallback to default ad: {{if $storage.video_view_video_view.content_source_id>0 && $storage.video_view_video_view.content_source.custom5!=''}} {{* check if video has content source and it has custom5 field specified -> show HTML from custom5 field *}} {{$storage.video_view_video_view.content_source.custom5|smarty:nodefaults}} {{else}} {{* this video either has no content source or its custom field #5 is empty -> show some default advertising spot (needs to be created prior of usage) *}} {{insert name="getAdv" place_id="spot_video_page_default_ad"}} {{/if}} Same code if used inside video_view block (Website UI -> Pages -> View Video -> video_view block): {{if $data.content_source_id>0 && $data.content_source.custom5!=''}} {{* check if video has content source and it has custom5 field specified -> show HTML from custom5 field *}} {{$data.content_source.custom5|smarty:nodefaults}} {{else}} {{* this video either has no content source or its custom field #5 is empty -> show some default advertising spot (needs to be created prior of usage) *}} {{insert name="getAdv" place_id="spot_video_page_default_ad"}} {{/if}} Each content source also has URL field, where you should specify click URL for that content source. KVS is able to track all outgoing clicks to content sources in its stats, but in templates you should render href of a specific format. For View video page template (Website UI -> Pages -> View Video): <a href="{{$lang.urls.out_sponsor|replace:"%DIR%":$storage.video_view_video_view.content_source.dir|replace:"%ID%":$storage.video_view_video_view.content_source.content_source_id}}" target="_blank">Click here to watch the full HQ video!</a> Same code if used inside video_view block (Website UI -> Pages -> View Video -> video_view block): <a href="{{$lang.urls.out_sponsor|replace:"%DIR%":$data.content_source.dir|replace:"%ID%":$data.content_source.content_source_id}}" target="_blank">Click here to watch the full HQ video!</a> Scenario 3. If you have a tube site or a paysite which aggregates content from several other paysites, you can show sites section allowing users to navigate content from different paysites. This is fully implemented in KVS default theme: http://kvs-demo.com/sites/ Scenario 4. In some cases if you grab content from multiple tube sites you may need to use content sources for simply grouping them. For example if you grab embed codes from multiple sites and suddenly one of the sites stops serving embed codes, or starts redirecting your traffic to their website, you will need to delete these videos. Then you can easily filter them all by content source in your admin panel. Each grabber settings provide ability to set all content grabbed from specific grabber to a specific content source: Summary. So the most common scenarios of using content sources in KVS are: Truncate duration for videos from specific source sites. Embed different watermark images for videos from specific source sites (similar to truncating duration). Show different in-video and video page advertising for videos from specific source sites. Provide users ability to navigate videos divided into separate sections based on their source sites. Provide ability for admins to easily filter videos based on which sites they were scrapped from. Content source groups Similar to category groups you can group content sources by your criteria. Can be used both for your admin panel needs and for showing grouping on website. Models Models are categorization objects designed to indicate people that are connected to any particular video or album. There is nothing specific about models, they are like categories but have more data fields in terms of 'people'. Flags Flags are categorization objects designed to be applied by your end users. Flags are typically used in Report video / album / playlist functionality. Based on your theme configuration, users can assign predefined flags to different objects (like videos, albums, playlists and some other). With flags they can also specify their message if your design allows doing this. So flags can be used for multiple features that require user feedback on content: Report copyright violation by specific content. Report inappropriate content. Name a model in a video or album. Vote content for being featured. Flags can also be used by admins to group videos or albums for specific reasons. Both videos and albums support so-called admin flag field, where you can select a single flag for a video or album. This field is filterable in admin panel and in site listings, so here are some example usage scenarios: Indicate specific set of content that should be displayed in specific site listing, e.g. manually predefined featured videos on index page. When content is being processed by multiple admins, they can use admin flags to move content between different approval phases. When you need to manually review content and move it to specific logical group that you can further filter by; you can just assign a specific admin flag and then filter all content by this flag.
  20. Multiple conversion servers can be used only in KVS ultimate package. They will let you reduce CPU load on main server and make video conversion faster, but only to some point. It is a common misunderstanding to assume that the more conversion servers you add, the more videos can be converted for the same time. This is not always true. The overall conversion speed depends not only on the actual conversion (e.g. video encoding), but on many other factors as well that will be explained in this post. KVS conversion engine works in 3 phases, in some cases only 1 or 2 phases are executed and the rest are skipped. But if we speak of processing newly uploaded videos, this is always a 3-phase process: Main server: prepares conversion task for conversion server and uploads this task to conversion server Conversion server: executes task Main server: verifies and finalizes task execution Main server cron and conversion server cron are both triggered each 1 minute. It means that any new video will require at least 2 minutes before its conversion is finalized. Even if conversion itself takes couple of seconds, you will have to wait for 2 minutes due to cron limits. Conversion phase 1 When phase 1 is executed, in most cases this phase is very fast and all it needs to do is to copy task info and the uploaded video file to conversion server. This may take a while if your source files are huge and your conversion server is remote. The most important thing to understand here is that this phase is always processed in 1 thread. If you have 10 new videos scheduled and 10 free conversion servers, the main cron will have to copy each video to each conversion server 1 by 1 (not in parallel). If copying each video takes 1 minute, your conversion engine will be busy with spending 10 minutes to copy 10 tasks to conversion servers. In this case there is no big difference how many conversion servers you have, because each task takes the whole minute to simply copy it. Your video queue will not be processed faster than 1 * 60 * 24 = 1440 videos per day. Remote conversion server settings have an option to cope with this issue, which allows conversion server to download video source files from the main server instead of require main server to copy them to conversion server: This changes the whole picture. Main server will not need to spend 1 minute to copy video source files anymore, instead it will spend only 1 second to copy a small task file. Thus it can copy 10 tasks to 10 conversion servers in less than 10 seconds, so that for the whole minute it can copy up to 60 tasks. Then each conversion server will download source files from main server, but now this will happen in parallel. If you have only 2 remote conversion servers, then they both will download 2 video source files at the same time. But if you have 10 - they will download 10 in parallel. This is a huge speed increase. The only issue here is to make sure that your main server is able to serve so many files at the same time, you should also remember that main server serves your website for the end users and these parallel downloads can affect the overall speed of your main server. Conversion phase 2 During phase 2 conversion servers will download video source from main server (if this option enabled in their settings, see the previous section) and will do all the necessary conversion logic programmed. Here each conversion server works independently of everything else. If you have 10 conversion servers, they will do phase 2 for 10 tasks in parallel, so phase 2 can be easily scaled to any speed you want by just adding more conversion servers. It is a common practice to create multiple conversion servers (at least 2) for the same physical server. You can easily do that by simply using separate conversion folders, so you can create 2 or more conversion servers in KVS using the same physical server box, e.g.: Convertor 1.2.3.4 - 1: /home/ftpuser/conversion1 Convertor 1.2.3.4 - 2: /home/ftpuser/conversion2 Convertor 1.2.3.4 - 3: /home/ftpuser/conversion3 Why does this make sense? The whole phase 2 conversion consists of multiple conversion steps, here are some examples of them: Downloading source file from the main server Using ffmpeg to convert video to another format or quality Using ffmpeg to take screenshots from video Using imagemagick to create thumbs for the screenshots Copying result video files to storage server(s) If you look at these steps, some of them are using much CPU and some of them are using much network to download or upload. Also when taking screenshots from video files ffmpeg is using less CPU in comparison to when converting, taking screenshots can result in some delays depending on source file and how easily it can be navigated based on keyframes. If you use only 1 conversion server for 1 physical server, there will be intervals when your CPU load is 0% or when your network load is 0%. This is a waste of resources. By creating at least 2 conversion servers for the same physical server you will increase its conversion speed and overall resources utilization will be close to 100%. But this doesn't mean that adding more conversion servers here will increase the speed to x2, or x3 - this is just a matter of +20% or +30%. Therefore we think that having 2 or max 3 conversion servers per 1 physical server is more than enough. Conversion phase 3 This final phase is executed back again on the main server. When conversion server finishes processing a task, main conversion engine will pull this task result from conversion server. All high-CPU operations have already been done on conversion server and this phase is just to pull result screenshots and result video files if needed. Copying files may take time, especially on low quality network connections. This phase is like phase 1 in term of time - it can take much time to copy big or many files and the number of conversion servers you have cannot speed this up. Similar to what we said in phase 1, phase 3 can also have optimized copying. Each conversion server has an option to enable it to copy video files to storage servers and thus main server will not have to do that: This will result in parallel video files copying and you can benefit here from having multiple conversion servers. There is one case however, when this option cannot be used - if you have a local storage server. The reason is that local storage server is defined as a directory path (e.g. /var/www/domain.com/contents/videos), and this directory makes sense for the main server only. Remote conversion servers cannot use this path, so they won't be able to copy result video files. In such cases KVS will automatically disable this option and will force all result video files to be copied via main server. Then you have no much sense to add many remote conversion servers, since they will probably have a lot of spare resources. Summary: what can affect conversion speed Here is a summary of factors that can affect conversion speed in different scenarios: Connection latency / network speed between main server and conversion servers - bad network conditions will reduce conversion speed, that's why remote conversion servers should be located ideally with the same datacenter to avoid network roundtrips. CPU and disk speed on conversion servers - converting big video files can utilize much CPU (when scaling, watermarking) and also disk subsystem. Very slow disks may result in CPU resources not fully utilized. RAM is not very significant, however we've seen some cases when ffmpeg or imagemagick was using more than 1GB of RAM. For a conversion server you should have at least 2GB of free RAM. If you use multiple conversion servers on the same physical server, then your physical server should have 2GB * number of conversion servers you plan there. In multiple remote conversion servers scenario if servers are allowed to download source files from main server, it is critically important that main server is able to serve all these files in parallel as well as it is able to serve your end users at the same time. Otherwise the benefit from using multiple conversion servers will be only in reducing CPU usage on the main server and not speeding up conversion process much. If you have any local storage server, which is used to host newly uploaded videos, then you will not get 100% benefit from using multiple remote conversion servers, as main server will have to pull all result video files from them in 1 thread, which will mean that your overall system conversion speed will be limited to the speed of pulling an average video file from a remote conversion server. You can still use 1 or 2 remote conversion servers for reducing main server's CPU usage. When uploading video files without conversion (e.g. you upload them not as source files, but as ready video formats, which is very popular when using tube scrapper plugin), CPU resources are mostly not being used. Thus in such scenarios the key component to speeding up new content processing is reducing network utilization. No much sense to use remote conversion servers, since no much CPU resources are being utilized. Instead remote conversion servers will increase network utilization and thus may reduce overall speed. If you are using local storage - you are fine with 1 local conversion server. But if you are using remote storage, you may need to add 1 more local conversion server (with another directory on filesystem), to parallel the process of copying video files to storage server(s) and thus to increase processing speed. How to analyze performance You can find conversion logs in Administration -> Background tasks log section: By looking into these stats you can have some understanding of what is the problem, if you have one. If most of the time is spent on creating video files, it may indicate that your CPU is quite slow. If much time is spent on copying or downloading files, it may indicate that your network connection is poor, or network is overloaded at some port (main, conversion or storage server), or disks are overloaded. Please pay attention to "Waiting for xxx to start phase Y" messages. They do not mean that conversion engine is stuck and "actively waiting", absolutely no - conversion engine may switch to another task during this period, which is the most likely scenario when you have many tasks. These waiting timings may be big enough, up to hours, but they are not considered when calculating "effective" time spent on task processing. Transcoding performance In most cases when you upload videos into KVS (not using embed codes or hotlinking 3rd-party video files) and your external storage / conversion servers do not have network bottlenecks, the major time is being spent on video transcoding. This is what background task log details names as "Creating format file". The transcoding is the process of decoding video file, resizing it to another size and compressing it back. This process uses a lot of CPU resources, and in some cases when your videos are in Full HD / 4K quality it may also utilize HDD due to big size of source and target files. Transcoding in KVS is typically used to create different resolutions of the same video, so that users can watch video in different qualities. Another reason of using video transcoding is to add watermark(s) on top of it. If transcoding takes much time in your setup and you are not happy with the number of videos that are being processed during each day, then there are few options to increase transcoding speed: 1) Add more external conversion servers so that more videos can be processed at once in parallel (possible with KVS Ultimate only). This is the most obvious, and the most expensive option. You need to buy some more server(s) for the time that you need to transcode your videos. 2) Use GPU-powered server and configure GPU conversion. GPUs are working faster on video transcoding due to various technical reasons, however the main issue with them is that you need vendor-specific ffmpeg codecs that will support transcoding on GPU. These codecs are never part of standard ffmpeg distributions (ffmpeg is the server library that does video transcoding), and they need to be built manually by your server support. Another problem is that you should change ffmpeg options in video format settings in KVS admin panel to get these video codecs working. 3) Avoid using transcoding and upload already prepared (transcoded) video files. This approach is typically used with grabbers and importing feeds, when the videos that you need to import are already transcoded into multiple qualities. All that KVS needs to do is to download them and put into storage system. No transcoding will happen in this case, so no CPU / GPU power is needed. However, your video files must be already present in all qualities you want to support, and also you will not be able to put any watermarks on them. You can find out more about uploading already transcoded video files in this article: If you are using grabbers, then check this article about speeding up grabbing: 4) Finally, if none of the above options works for you (you don't want to pay for conversion servers, or you are not using grabbers and don't have video transcoded in different video qualities), then the only way to avoid transcoding or reduce its time is to reduce the number of video qualities that your site offers. You can find them in Settings -> Video formats section of admin panel. By default KVS typically installs the following qualities: MP4 480p (the lowest and required) MP4 720p (for videos 720p+) MP4 1080p (for videos 1080p+) MP4 4K (for videos 4K+) For each of these video formats you can see the number of videos that have it. This can let you identify, if you win much time if you decide to stop using MP4 4K or MP4 1080p qualities for example. Are there many videos that have them in % to your videos that have MP4 480p? If yes, then you can increase transcoding speed in several times by simply disabling these formats. If most of your videos are 480p and 720p, then you won't win much from disabling them and have to do another choice: Delete 720p quality and keep all your videos in 480p. This would result in low visual quality and could become problem for your site in general. Actually 480p quality is too small for modern devices. Delete 720p quality and change 480p resize option to Do not resize (keep source size). This would result in each video will have the same quality as originally uploaded source file. No quality change will be possible, and all users will see video in the same quality. This could be good option, but you should keep in mind that if some of your source files are 1080p or 4k, they will be transcoded with the same size, and could take much disk space on your storage and utilize much network when somebody is watching them. So this option is good when you know for sure most of your source video files are of 720p / 480p quality; or you are OK with the fact that many videos will be served in 1080p+ quality from your servers. Also this option allows you completely avoid transcoding by uploading your source video not in Source file field, but in 480p format field (or better rename it to some other name to avoid confusion). Make 720p quality required (WARNING! this will create a set of tasks to create 720p for all videos that don't have it), and after it is created for all videos, delete 480p quality. So all your videos will be transcoded into 720p format only. If the source file is bigger than 720p (e.g. 1080p or 4K), its quality will be reduced to 720p; and if the source file is initially smaller - the quality will remain the same as source. This option is a good choice, when you want to serve decent video quality to your users, and you know that your source files have many of 1080p+, and you don't want to serve 1080p quality to all users.
  21. Here is sample code for album grabber: <?php class KvsGrabberAlbumCustomSample extends KvsGrabberAlbum { public function get_grabber_id() { return "albums_custom_sample"; } public function get_grabber_name() { return "Sample custom grabber"; } public function get_grabber_version() { return "1"; } public function get_grabber_domain() { return "domain1.com"; } public function get_supported_url_patterns() { return array("/https?:\/\/(www\.)?domain1\.com\/.*/i"); } public function can_grab_description() { return true; } public function can_grab_categories() { return true; } public function can_grab_tags() { return true; } public function can_grab_models() { return true; } public function can_grab_content_source() { return true; } public function can_grab_rating() { return true; } public function can_grab_views() { return true; } public function can_grab_date() { return true; } public function can_grab_lists() { return true; } public function grab_list($list_url, $limit) { $result = new KvsGrabberListResult(); $result->add_content_page("http://domain1.com/album1/"); $result->add_content_page("http://domain1.com/album2/"); return $result; } protected function grab_album_data_impl($page_url, $tmp_dir) { $result = new KvsGrabberAlbumInfo(); $page_code = $this->load_page($page_url); if (!$page_code) { $result->log_error(KvsGrabberAlbumInfo::ERROR_CODE_PAGE_UNAVAILABLE, "Page can't be loaded: $page_url"); return $result; } $result->set_canonical($page_url); $result->set_title("Demo title"); $result->set_description("Demo description long description long description long description long description."); $result->set_date(time()); $result->set_views(1526); $result->set_rating(87); //0-100% $result->set_votes(11); $result->add_category("Category 1"); $result->add_category("Category 2"); $result->add_category("Category 3"); $result->add_tag("tag 1"); $result->add_tag("tag 2"); $result->add_tag("tag 3"); $result->add_model("Model 1"); $result->add_model("Model 2"); $result->add_model("Model 3"); $result->set_content_source("Content Source 1"); $result->add_image_file("http://www.domain1.com/test/test.jpg?v=1"); $result->add_image_file("http://www.domain1.com/test/test.jpg?v=2"); return $result; } } $grabber = new KvsGrabberAlbumCustomSample(); KvsGrabberFactory::register_grabber_class(get_class($grabber)); return $grabber;
  22. This table is too wide already, we added more columns to it already. You don't need to enable / disable every day, so you can just go into individual grabber settings and do this thing.
  23. In video / album editor under categorization settings we added ability to run category / tag /model autoselection plugins for individual videos on their editing. This can be useful if your content writers process videos before activation and you have some categorization set to be auto-selected from title / description / tags:
  24. Please provide more info... hard to understand what that means.
  25. This feature was added long time ago and is available in 3.9.1, check this post: http://www.kernel-video-sharing.com/forum/forum/general-discussion/announcements/30-kvs-3-9-1-implementation?p=82#post82
×
×
  • Create New...