Jump to content

Tech Support

Administrators
  • Posts

    1,788
  • Joined

  • Days Won

    334

Everything posted by Tech Support

  1. Update status 5.5.1 update status is FINAL. You can download update in KVS client zone for all your licenses: Update requirements KVS 5.0.0+ (earlier versions should be updated to KVS 5.0.1 first). PHP 7.1 - 7.4 (PHP 8 is not yet supported). If you haven't yet updated KVS to 5.0.1, then please do, you can find KVS 5.0.1 update information here: KVS 5.0.1 update Important notes for 5.5.1 N/A Please check important notes for 5.5.0 if you didn't yet update to this version. Please check important notes for 5.4.0 if you didn't yet update to this version. Please check important notes for 5.2.0 if you didn't yet update to this version. 5.5.1 update procedure Any project starting from 5.0.0 can be updated to 5.5.1 with one only procedure. Depending on your current KVS version, update procedure may contain additional steps for older versions. You must use KVS update plugin in order to update your project. For update you will need: KVS update ZIP archive for your project and its hash code for update plugin (contact support in beta phase to get these). FTP connection to your project so that you can upload files. Update procedure has the following steps: Create backup using Backup plugin. Upload update ZIP into KVS update plugin and specify hash code. KVS update plugin will notify you if there are any custom changes in KVS system files, which will be overridden by update (player skins are not checked here, so they will be silently updated if have custom changes). KVS update plugin will update database automatically. KVS update plugin will ask you to copy files from the archive on top of your project using FTP or filesystem copy. Please make sure you are NOT USING sync functionality in your FTP client, which will delete many files on your server, because obviously update archive contains only part of all files. What you need is just to drag and drop files from update archive on top of your project root folder and confirm their re-writing (excluding _INSTALL folder, it doesn't need to be copied). KVS update plugin will verify the updated files and finalize update procedure. Use System audit plugin to verify that everything looks good. Whats new in KVS 5.5.1 Maintenance release to fix recent security vulnerability, but also contains a dozen of enhancements that we were able to push through. Meanwhile we are slightly moving forward with the new admin panel GUI. 1) Security issue connected to remote URL upload was fixed in this update. Luckily, this breach could only be exploited in a limited set of conditions: On projects where Apache was not installed, and thus additional security layer was deactivated. For such projects it is required to configure Nginx to prevent accessing publicly writable directories. On projects where KVS files were installed under the same OS user as Apache was running. We extended audit security check to report these configuration issues as errors (previously were reported as warnings), so after update please make sure to run installation + security check in audit plugin and make sure you don't have any errors there. If you don't want to update to 5.5.1, you can apply security patch on top of 5.5.0, or you can disallow URL upload for public in Settings -> Content settings (Upload from URL option). If your version is very old and doesn't allow disabling URL upload in settings, it is highly recommended to update, otherwise your project may be vulnerable. 2) Exporting feeds optimized in terms of memory usage and output generation to allow generating bigger set of data without pagination. 3) Importing feeds now support automatic pagination, so they can be configured to query data with auto-skipping N videos from the previous requests to import all available video from the paginated feed. 4) Channels now also support synonyms. 5) IP blacklist in Anti-spam settings will now better support IPv6 addresses and masks of 2nd level (11.22.*). Previously only 3rd level masks (11.22.33.*) were supported. 6) DigiRegs plugin was finalized based on real-world testing and is finally ready for use. 7) In grabbers you can now use colons as part of replacement text, but it needs to be specified as a double colon (::). Also text replacements now support partial matches. 8) In stats settings we added summary of how much disk space is utilized to store particular type of stats. In some cases with specific stats enabled this could take GBs. Stats cleanup procedure will now clean up database tablespace as well. 9) In related videos it is now possible to use External Search plugin for generating related videos, for example to use external Sphinx server for that. 10) In list_members_events we added ability to show events of user's subscriptions (similar to showing events of user's friends). 11) Bugs that have been fixed: [CRITICAL] Security issue, see above. [MEDIUM] In some cases grabbers could create import tasks that would not process all videos or albums. [MEDIUM] 5.5.0 version could not allow including some traffic trade scripts due to function naming conflict. [LOW] Option that disallowed tags with specific characters didn't work correctly with non-latin characters. [LOW] Re-creating screenshots was not possible for embedded videos even if video URL was provided. [LOW] Player didn't show cuepoints on mobile devices. [LOW] Player didn't render subtitles after switching to another video quality. [LOW] Animated WebP images were not supported as manually uploaded screenshots and photos. [LOW] KVS didn't allow creating timeline screenshots for videos longer than 4 hours. [LOW] Several performance issues in admin panel when huge amount of videos. [LOW] Rotator interval change was not actually applied. [LOW] In some cases tag rename didn't add old tag name as a synonym. [LOW] In some cases deleting video screenshots could result in partially broken screenshots.
  2. If you do not want users to verify their account, then probably you don't need to do anything like this. This post is about when you absolutely want all users to be allowed to upload only after they verify their accounts.
  3. Sorry, I'm not sure I understand this. The above approach means that EVERY user MUST be manually approved and promoted to webmaster status by admin in order to be able to upload videos. So the logic here is to validate users, not videos. If you mean for individual videos you want to ask users to verify if this specific video is the one they shoot themselves, this is not currently possible without custom coding in KVS backend.
  4. KVS now has its official plugin for WordPress, and this is great for our existing customers and also for WordPress lovers, who want to get more control on their videos. For existing KVS projects: You can now use multiple WP installations to promote your content from other sites for SEO purposes. WordPress sites can play your content, and link to it; this can be fully put on auto-pilot. All you need is to install WordPress and connect KVS integration plugin to your KVS installation. WordPress offers many advanced paid modules for commerce and SEO, and you may find this useful to build additions to your KVS site. For existing and new WordPress projects: KVS has much much better video content manager that original WordPress or any other WordPress plugin can provide. You fully own your data and monetization. Nobody will block or delete your video for any reason. WordPress is not scalable, and you can later fully switch to KVS if you need faster frontend performance. Frequently Asked Questions Do I need to install KVS on the same server as my WordPress installation? No, this is not required. Video conversion consumes much resources and would be wise to install KVS on a separate server. KVS content sync and KVS player will work remotely anyway, even if installed locally. However if you plan to grab content using KVS grabbers, it is also possible to download content without conversion, and it this case the main load would be on your download channel. So could be OK to install KVS on the same server as well. In any way, KVS can store and serve content from local and / or remote servers, so not necessary needed to install KVS on the same server where videos will be stored. Storage servers are typically purchased based on their Network link / channel price value, while primary / conversion servers use more CPU and Memory; these are typically different kind of servers. Which domain to use with KVS license? KVS license is connected to a domain name. If your KVS installation will be on a separate server, then the best option is to use subdomain of your WordPress domain, for example video.domain.com. Then this subdomain will be configured on your remote server for KVS. If your KVS installation is located on the same server with WordPress, you can still use subdomain for it, and also you can use subfolder for it, e.g. domain.com/video. In this case you should configure your KVS license to use your main domain domain.com. Is it possible to deactivate KVS frontend and only use admin panel? Yes, this is absolutely possible. It is possible to deactivate website in KVS settings once it is installed. Also when specifying details of your KVS license you can choose "No theme" option, and we will provide KVS build that contains no theme at all. If you later decide to install theme for KVS and start using it as a separate site, you can do it at any time. Is it possible to use KVS player on my WordPress site without using KVS? Unfortunately not. KVS player is a part of KVS and is not available separately. In order to use it with KVS WordPress integration plugin you need to purchase or rent KVS Ultimate license, which provide automation options. But if the price looks high for you, you may also consider using KVS Basic license, and with it you will be still able to use all KVS player features, however with these limitations: KVS Basic license doesn't allow for video multi-formats, which means you can't have videos in different qualities (e.g. 480p, 720p, and etc). Only possible to have a single video file for each video. If this is the issue for you, then you need KVS Advanced license at minimum. This won't let you automate importing your videos from KVS to WordPress. You will have to manually create posts with specifying embed codes from KVS. However may not be an issue, if you post only few videos and add them manually.
  5. Please go to Website UI -> Search in templates and search for this contents: {{insert name="getGlobal" global_id="global_stats_banner"}} There are 2 templates with this line, open them and delete this line from template code. Then go to Website UI -> Page components -> include_join_banner_2.tpl and replace the template contents with something like this: {{* empty *}} This should hide both banners.
  6. I think the reason here is not to verify age, but to make sure that people who upload content, are the same people who are on video. Like on Onlyfans, where people upload videos shot by themselves. Anyway, you can do country check by adjusting this part in step #6: {{if $smarty.session.status_id!=6}} To this code: {{if $smarty.session.status_id!=6 && $smarty.server.GEOIP_COUNTRY_CODE|strtolower=='de'}} But you will also then have to undo step #7, because it cannot be set differently to different countries.
  7. There is no built-in functionality in KVS to require users verify their documents or selfie, but there is alternative way to use Posts functionality for that. Even posts don't allow users to upload files, so it will be required to ask users to upload their documents to their own cloud services and specify secure link to the uploaded file. Here is how to configure that. Creating post type for the task and configuring global block for the users Step 1. Please go to Posts -> Post types and create new post type with the following data: Title: any of your choice, e.g. Identity Confirmation External ID: identity_confirmation Post page URL pattern: 404.php?%ID% Step 2. Go to Website UI -> Global blocks and add block with the following parameters: Block name: Identity Confirmation Block type: post_edit Cache: 86400 (default value) After saving global blocks list you will notice Identity Confirmation block added to the end. Click to edit this block. Step 3. Set the following Template code for this block: {{query_kvs select="single" table="posts_types" where_external_id='identity_confirmation' assign='post_type'}} {{query_kvs select="list" table="posts" where_user_id=$smarty.session.user_id where_post_type_id=$post_type.post_type_id assign='post'}} {{if $async_submit_successful=='true'}} <div class="success" data-fancybox="refresh"> {{$lang.edit_profile.success_message_identity_confirmation_requested}} </div> {{else}} <strong class="popup-title">{{$lang.edit_profile.title_identity_confirmation}}</strong> <div class="popup-holder"> {{if count($post)>0}} <div class="success" data-fancybox="refresh"> {{$lang.edit_profile.success_message_identity_confirmation_requested}} </div> {{elseif $smarty.session.status_id==6}} <div class="success" data-fancybox="refresh"> {{$lang.edit_profile.success_message_identity_confirmed}} </div> {{else}} <form action="{{$lang.urls.identity_confirmation}}" data-form="ajax" method="post"> <div class="generic-error hidden"></div> <p> {{$lang.edit_profile.field_identity_confirmation|replace:"%site%":$lang.project_name|smarty:nodefaults}} </p> <div class="row"> <input type="text" name="content" class="textfield"/> <div class="field-error down"></div> </div> <div class="bottom"> {{if $use_captcha==1}} <label>{{$lang.common_forms.field_captcha_hint}}</label> <div class="captcha-control"> {{if $recaptcha_site_key!=''}} <div data-name="code"> <div data-recaptcha-key="{{$recaptcha_site_key}}" data-recaptcha-theme="{{if $lang.theme.style=='metal'}}dark{{else}}light{{/if}}"></div> <div class="field-error down"></div> </div> {{else}} <div class="image"> <img src="{{$lang.urls.captcha|replace:"%ID%":"signup"}}?rand={{$smarty.now}}" alt="{{$lang.common_forms.field_captcha_image}}"/> <label for="identity_confirmation_code" class="field-label required">{{$lang.common_forms.field_captcha}}</label> <input type="text" name="code" id="identity_confirmation_code" class="textfield" autocomplete="off"/> <div class="field-error up"></div> </div> {{/if}} </div> {{/if}} <input type="hidden" name="action" value="add_new_complete"/> <input type="hidden" name="title" value="Identity Confirmation"/> <input type="submit" class="submit" value="{{$lang.edit_profile.btn_request}}"/> </div> </form> {{/if}} </div> {{/if}} Under block parameters change the following: post_type (String): identity_confirmation duplicates_allowed (On/Off): switch ON optional_description (On/Off): switch ON optional_tags (On/Off): switch ON optional_categories (On/Off): switch ON use_captcha (On/Off): switch ON, if you want users to solve captcha puzzle Step 4. Go to Website UI -> Language files -> default and add the following texts at the end. Feel free to adjust as needed: memberzone.profile_member_action_identity_confirmation = Verify your account here. edit_profile.title_identity_confirmation = Account Verification edit_profile.field_identity_confirmation = Create a selfie of yourself holding an A4 sheet with our site name written by hand:<br/><br/><b>%site%</b><br/><br/>Then upload this image to a cloud of your choice (e.g. Google Docs) and send us link to the uploaded file: edit_profile.success_message_identity_confirmation_requested = Thank you! Your account confirmation request was successfully registered and will be reviewed by our team soon. edit_profile.success_message_identity_confirmed = Your account has already been confirmed. edit_profile.btn_request = Submit Request edit_video.warning_upload = Only verified accounts can upload videos. urls.identity_confirmation = /confirm-account/ Step 5. You need to edit .htaccess file that is located in www root with your FTP client, or any other File Manager that might be provided by your server panel. Add the following line (could be added in the beginning, or next to RewriteRule ^delete-profile/$): RewriteRule ^confirm-account/$ index.php?mode=async&function=get_block&block_id=post_edit_identity_confirmation&global=true [L,QSA] Changing upload block to allow upload only for verified users To be noted, it will be required to use webmaster status to manually control which users are allowed to upload. In member profile editor in admin panel you should manually change member status to webmaster as a result of account verification process. Step 6. In order to change video upload block behavior, please go to Website UI -> Theme settings and scroll down to Functionality options group. Click on Video Edit link there to open video upload block settings. In Template code, your first line should look like this: {{if $async_submit_successful=='true'}} If it has something else, your video edit template is modified and you will need to adjust the proposed code to your template changes. The proposed code is to replace this line with this block: {{if $smarty.session.status_id!=6}} <div class="headline"> <h2> {{$lang.edit_profile.title_identity_confirmation}} </h2> </div> <div class="box"> {{$lang.edit_video.warning_upload}} <a href="{{$lang.urls.identity_confirmation}}" data-fancybox="ajax" style="text-decoration: underline; font-weight: bold">{{$lang.memberzone.profile_member_action_identity_confirmation}}</a> </div> {{elseif $async_submit_successful=='true'}} You may notice that we actually leave the old line almost there, with slightly changed from {{if}} to {{elseif}} syntax. This template change will hide video upload form for non-webmaster users and instead will show a link to verify their account: Step 7. However this may not stop bots, that could upload bypassing the actual site GUI, so you may need to add some small additional protection to make sure that bots can't upload as well. In the same video edit block settings activate the following parameters: max_duration (Integer): 1 max_duration_webmaster (Integer): 9999 These settings mean that all users will not be able to upload virtually any video, because of duration limit of 1 second. While webmaster users will be able to upload videos with duration up to 9999 seconds. So only webmaster users can actually upload videos. Testing all together Now log in with non-webmaster profile and go to upload page. You should see link to verify your account. If you see a white or partial page, you did wrong paste at step #6. You can go to Website UI -> Change history and look at your recent change to video edit block. There you can find original template version and return it back if needed, or check what you did wrong here. By clicking the account verification link you should see the popup to verify account. Submit something into the text field. This should show you success message that your data is submitted. If it shows any error, you did something wrong at step #3 with block parameters. If you go to admin panel start page, you may notice that it will show you alert like the following: Click this link and you will see Account Verification post submitted by you seconds ago. Open it and check the link under Content area. If you want to verify it, you first need to manually open user profile editor for this user and change their status to webmaster. Then approve this account verification post. If you want to reject it, you just need to delete it, so that user can re-submit again. Unfortunately KVS for now doesn't support any automated messages to be sent to users on different admin actions; if you want to notify user about some issue with their verification, you will need to manually submit a message to this user via Memberzone -> Messages.
  8. Here are steps to enable this. In Website UI -> Pages -> View Video page locate video_view block and open it for editing. In block template find this line of code: kt_player('kt_player', '{{$config.project_url}}/player/kt_player.swf?v={{$config.project_version}}', '100%', '100%', flashvars); And change it to assign result to player_obj variable: var player_obj = kt_player('kt_player', '{{$config.project_url}}/player/kt_player.swf?v={{$config.project_version}}', '100%', '100%', flashvars); Then add the following block next to it: player_obj.listen('ktVideoFinished', function() { window.location = $('#list_videos_related_videos .item a[href]:first').attr('href'); }); This code should redirect user to the first related video after the current video plays until end.
  9. There is no reason for SEO to parse login or signup pages, this pages are even removed from indexing by default via robots.txt. For sorting pages, maybe SEO experts tell you different things, but personally we think that different sortings of the same data is not something that should be exposed to SEO. These pages are actually duplicates, because they are showing the same data but in different order.
  10. What do you exactly mean by "next on list" please? Do you mean related videos for example, go to the first related video?
  11. Does your KVS version 5.5.0? It should be 5.5.0, because Wordpress plugin relies on some feed functionality that was added to 5.5.0.
  12. Well, not sure I understand their point and how breadcrumbs are connected to pagination... Also in some cases pagination is already present in default theme, but not visible to users. For example this URL: https://www.kvs-demo.com/latest-updates/ You can mouse over pagination links and see they are referring to next pages via URL structure: https://www.kvs-demo.com/latest-updates/2/ https://www.kvs-demo.com/latest-updates/3/ This is done for all major lists. But is excluded for categories, tags, models and etc. for performance reasons - otherwise tonnes of bots would navigate these pages every day and would consume your server resources without any reason. But if you need this, this can be enabled of cause. So the key point of the theme is that users do not see pagination in their browser URLs, but the pagination itself actually transparently exists on the background.
  13. Unfortunately, this is not possible with default theme without intensive theme changes. The structure of theme was designed in such way, that it renders multiple lists on the same page (e.g. search video + albums, profile page with multiple lists). When you have multiple lists on the same page, it is not possible to make a URL pagination for them within the same page. For example, when you have URL like this: https://www.kvs-demo.com/search/madonna/ And you want 2nd page to be https://www.kvs-demo.com/search/madonna/2/ The issue is that you can't paginate both videos and albums to page #2. Because if video list has 5 pages, and albums list have only 2 pages, scrolling to 3rd page will return 404 error, which is the expected behavior because albums list doesn't have page #3 and any other pages greater than 2. So in order to have URL-based pagination, the website must be built in completely another URL structure, for example: https://www.kvs-demo.com/search/madonna/videos/ https://www.kvs-demo.com/search/madonna/videos/2/ https://www.kvs-demo.com/search/madonna/videos/3/ https://www.kvs-demo.com/search/madonna/videos/4/ https://www.kvs-demo.com/search/madonna/videos/5/ https://www.kvs-demo.com/search/madonna/albums/ https://www.kvs-demo.com/search/madonna/albums/2/ And for default theme this means complete theme restructuring. And at the same time this doesn't bring any advantages.
  14. For testing purposes you don't need to upload grabber into KVS plugin. You need to put your CustomGrabberRedporn.php file next to test_grabber.php file in the same directory.
  15. Yes, this would apply. In setup.php for each storage directory (e.g. video screenshot directory) there are 2 variables defined: Filesystem PATH Public serving URL If you want them to be stored locally, but to be served from remote URL, all you need is to change URL variable and leave PATH variable as is.
  16. Please go to Website UI -> Pages -> View Video page -> Video View block and use corresponding block parameters to limit views:
  17. Using video cards requires specific ffmpeg builds and codecs, this means you will need qualified server engineer to build your ffmpeg. Or if providers have ffmpeg pre-built with all the needed nvidia drivers and codecs, this is a good option for video conversion.
  18. I would say not possible to reply this without testing the exact 2 configurations with the same video test. Both parameters are important, CPU clock and the number of cores. Also if you look into modern CPUs, they do not increase clock, but instead they have more performance by increasing the number of cores, and optimizing processing of specific instructions. Try this article: https://techgage.com/article/best-cpu-for-rendering-video-encoding-spring-2021/ There you can find real CPUs and their real encoding times.
  19. Do you mean to manually decide what to do with each title? Then editing via editor is the only possible way for now. No support for grid editing at the moment. If you need to delete some same text from titles, then could be done with direct SQL query (using phpmyadmin for example): update ktvs_videos set title = replace(title, 'xxxxx', '') where gallery_url!=''; NOTE: the code includes filter to affect only videos that were added by grabbers (to avoid accidentally affecting other videos). To apply this replace on all videos you need to remove "where gallery_url!=''" at the end.
  20. Hello, Tonight we were migrating our infrastructure to new servers. It could be possible that some features were temporary unavailable during transition period. For leased licenses, this only affects admin panel and won't affect sites. Apologies for any inconveniences.
  21. We still have much work to do in terms of new admin panel GUI.
  22. Satellite has the same sitemap location as any other KVS site, the sitemap is generated by theme. There are multiple URLs where you can reach your project's sitemap, here are all of them: https://www.kvs-demo.com/sitemap/ https://www.kvs-demo.com/sitemap.xml https://www.kvs-demo.com/sitemap.php Check these URLs in your project and locate which one returns XML file with sitemap.
  23. It is recommended to use another library called yt-dlp: https://github.com/yt-dlp/yt-dlp Youtube-dl library was not supported for almost 6 months, it looks like they have just released a new build, but it may not be stable, also there is no guarantee that they will continue releasing updates in future. Therefore please try to use yt-dlp instead.
×
×
  • Create New...