Доступ и использование Tikt LLC ("Tikt" или "Tikt.io") вы соглашаетсяе быть связанными условиями службы Tikt.io, как указано в этом документе. Если вы не принимаете эти условия, вам не разрешается пользоваться tikt.io или его услугами.
" tikt.io " оставляет за собой право изменять, изменять, обновлять или прекращать срок службы по своему усмотрению в любое время по любой причине. " tikt.io " или " tikt.io " или " его услуги " вы соглашаетсяе быть связанными любыми будущими вариантами этого документа. " Условия службы ". Поэтому мы рекомендуем вам время от времени пересматривать эти условия службы.
Если вы нарушаете положения об услугах, то любое предварительное разрешение, имплицитное или явное, на использование tikt.io или его услуг немедленно прекращается без уведомления.
В результате признания этих условий службы никаких отношений между работодателем и работником, партнерских отношений или других отношений с Tikt.io не возникает.
Вы представляете и утверждаете для нас, что: а) вы - индивид (т.е. не корпорация), и вы имеете законный возраст для заключения обязательного договора или получения разрешения от родителей, и вам не менее 13 лет или старше; b) вся информация о регистрации, которую вы представляете, является точной и правдивой; и С) вы будете сохранять точность такой информации; вы также удостоверяете, что вам разрешено пользоваться услугами и получать доступ к ним, и берете на себя всю полноту ответственности за выбор, использование и доступ к услугам. Это соглашение является недействительным, если оно запрещено законом, и любой доступ к Tikt.io или его услугам в таких юрисдикциях запрещен.
Tikt.io сохраняет права на любой из своих оригинальных материалов на сайте Tikt.io.
Tikt.io может собирать информацию из вашего использования tikt.io и его услуг. Например, tikt.io собирает ваш IP-адрес для записи ограничений скорости, если вы не являетесь пользователем UPGRADE. Это единственный случай, когда tikt.io регистрирует ваш IP-адрес. Никакая IP-регистрация не производится. Он не соединена с каким-либо видео, которое он записывает или аудио. Он просто показывает, что запись была сделана этим IP, пока IP не достигнет трех запросов. Через час ваш IP-адрес истекает. Это единственный случай, когда tikt.io будет использовать ваш IP-протокол в интернет-протоколах. Любые и все другие виды использования будут прямо запрещены, поскольку tikt.io не регистрируется ни на одном из используемых им серверов. Он может также собирать информацию, которую вы можете предоставить при создании счета. Хотя вы владеете личными данныминформацией, используя Tikt.io и его услуги, вы предоставляете разрешение и лицензию на доступ, сбор и хранение таких пользовательских данных и информации.
Вы представляете, что имеете право предоставлять tikt.io информацию для пользователей. Вы также согласны с тем, что вся информация для пользователей, которую вы представляете tikt.io, прямо или с использованием tikt.io и его услуг, будет собираться и регулироваться политикой конфиденциальности fikt.io.
tikt.io использует некоторые иконы для социальных сетей, чтобы направлять пользователей на сайт tikt.io/s о записи контента из таких социальных сетей. Использование таких икон не отражает какого-либо одобрения tikt.io или его услуг такими сайтами.
Помимо информации, предоставляемой пользователями и собранной у их пользователей, " tikt.io " не собирает и не хранит никакого содержания или информации третьих сторон.
При использовании ссылки на содержание третьей стороны с tikt.io вы понимаете, что вы несете полную ответственность за использование связи с услугами tikt.io. tikt.io не отвечает за какое-либо содержание, доступное через такие ссылки или связанные с ними материалы. Вы берете на себя всю ответственность.
Tikt.io не хранит никаких ссылок на содержание третьей стороны и только трубопроводы напрямую к вам. В результате tikt.io может получить доступ только к контенту, который не защищен DRM. Поскольку вы отвечаете за обеспечение связей с tikt.io и его услугами, tikt.io не рассматривает и не одобряет содержание сайтов третьей стороны. Кроме того, tikt.io не претендует на какие-либо права на такое содержание. Вы признаете, что содержание и материалы, доступные через ссылки, представленные на tikt.io и его услуги, не всегда могут быть точными, полными или обновленными.
Определенное содержание может содержать цифровые механизмы прав, которые препятствуют доступу или хранению такого контента. Вы согласны не пытаться обойти такие цифровые механизмы прав.
Вы используете любые ссылки, как свою собственную свободу действий и риск. Вы понимаете.
Tikt.io уважает права интеллектуальной собственности других лиц и не разрешает или не оправдывает деятельность, нарушающую авторские права, и поэтому эта служба позволяет исключительно регистрировать доступное для общественности содержание в Интернете.
Опять же, tikt.io не хранит никакого контента третьей стороны, доступ к которому обеспечивается через его услуги или веб-сайт. Как таковой, мы не можем удалить какой-либо контент. Если вы хотите удалить или отключить доступ к контенту, доступному через другие веб-сайты, просьба направить любое уведомление провайдеру (например, Instagram, FaceBook, Pinterest и т.д.) напрямую. Вы можете связаться с некоторыми из них по следующим ссылкам: Удаление инстаграма, Удаление процентов.
"Tikt.io" и его услуги должны использоваться только для личного, некоммерческого использования. >/сильно> Любое коммерческое использование tikt.io строго запрещено. tikt.io стремится исключительно позволить пользователю создать копию доступного онлайнового контента посредством использования его услуг в виде видеомагнитофона для частного, некоммерческого использования пользователя ("справедливое использование"). Однако это не включает публикацию записанных видео на любой публичной платформе без прямого разрешения владельца. Любое использование контента третьей стороны должно быть санкционировано владельцем такого контента и его интеллектуальной собственности. Пользователь несет полную ответственность за использование tikt.io.tikt.io.io только в качестве поставщика технических услуг.
Кроме того, вы согласны не:
Вы согласны использовать услуги Тиктио ответственно.
Любое нарушение этих положений о предоставлении услуг и прав любой стороны может повлечь за собой гражданские или уголовные наказания со стороны " Тикт.ио " или других третьих сторон.
Tikt.io уважает права интеллектуальной собственности. Tikt.io сам по себе не хранит контент третьих сторон на своем веб-сайте или серверах, как видно из нашего примера кода, как настроить галерею-дл или похожий и Python для этого https://gist.github.com/nadermx/0c98fc7f9b9407c35b5f90580647912a> здесь>/a>Никто не должен загружать содержание третьей стороны на tikt.io.
Если вы считаете, что любой материал, содержащийся в Tikt.io, нарушает любые авторские права, которыми вы владеете или которые контролируете, вы можете направить письменное уведомление о предполагаемом нарушении авторских прав ( < < Уведомление > > ) нашему назначенному агенту по Закону о цифрового авторского права тысячелетия ( < < DMCA > > ), указанному ниже.
А) достаточно подробно определить произведение или интеллектуальную собственность, которые, по вашему утверждению, были нарушены, с тем чтобы мы могли найти этот материал;
В) идентифицирует URL или другое конкретное место на tikt.io, в котором содержится материал, который, как вы утверждаете, нарушает ваше авторское право;
С) представляет электронную или физическую подпись владельца авторских прав или лица, уполномоченного действовать от имени владельца;
D) включить заявление о том, что вы добросовестно верите в то, что оспариваемое использование не разрешено владельцем авторских прав, его агентом или законом;
E) включить заявление о том, что информация, содержащаяся в Вашем уведомлении, является точной и подтверждает под угрозой лжесвидетельства, что вы являетесь владельцем авторских прав или уполномочены действовать от имени владельца авторских прав; и
F) Включите ваше имя, почтовый адрес, номер телефона и адрес электронной почты.
Вы можете направить свое уведомление нашему назначенному агенту DMCA по электронной почте, факсу или по почте, как указано ниже:
Tikt LLC
Внимание: агент ДМКА
850 Clark st.
P.O. Box 1232
South Windsor CT 06074
факс: +18604837010
электронная почта: hello@tikt.io
Когда tikt.io получает надлежащее уведомление, он незамедлительно лишает доступа к предположительно посягающему материалу или лишает доступа к нему и прекращает счета, связанные с ним (если это применимо), в соответствии с ДМКБ.
tikt.io проводит политику прекращения, в соответствующих обстоятельствах и по своему усмотрению, деятельности членов, которые считаются рецидивистами. tikt.io также может по своему усмотрению ограничить доступ к tikt.io и/или прекратить его использование любым лицом, нарушающим любые права интеллектуальной собственности других лиц, независимо от того, имеет ли место какое-либо повторное нарушение.
Вы возмещаете и храните безобидные " тикт.ио " и все филиалы, партнеров, клиентов, работников, подрядчиков, консультантов и других связанных с ними субъектов от любой ответственности, издержек, ущерба, убытков или юридических вопросов, включая оплату услуг адвокатов, в связи с любыми исками третьих сторон или исками " тикт.ио ", которые прямо включают обязанность защищать " тикт.ио " в случае подачи любого иска.
Эти условия регулируются и толкуются в соответствии с законами Коннектикута, и вы безвозвратно подчиняетесь исключительной юрисдикции судов в этом государстве или месте.
Чтобы отменить подписку, пожалуйста, a>; или 0) {
var dur = parseFloat(attrDuration);
info.data('duration', dur);
info.find('.clip-fields').show();
info.find('.clip-loading').hide();
initClipSlider(info, dur);
} else {
info.find('.clip-loading').show();
info.find('.clip-fields').hide();
info.find('.clip-error').hide();
var itemPageUrl = info.attr('data-item-page-url') || '';
var pageUrl = decodeURIComponent(info.find('.download-button').data('page-url') || '');
var directUrl = decodeURIComponent(info.find('.download-button').data('url') || '');
var fetchUrl = itemPageUrl || pageUrl || directUrl;
$.ajax({
url: '/api/duration/',
type: 'POST',
data: {
url: fetchUrl,
csrfmiddlewaretoken: 'oJmxGgttCv682ETxq4aMRGtOXSWbVr3sw6tLIi7DPFM141Kx48MBKdirMjP5BfYR'
},
success: function(data) {
if (data.duration) {
info.data('duration', data.duration);
info.find('.clip-loading').hide();
info.find('.clip-fields').show();
initClipSlider(info, data.duration);
} else {
info.find('.clip-loading').hide();
info.find('.clip-error').text('Could not get duration').show();
}
},
error: function() {
info.find('.clip-loading').hide();
info.find('.clip-error').text('Could not get duration').show();
}
});
}
}
} else {
clipInputs.hide();
}
resetDownloadButton(info);
});
container.on("click", ".download-button", function (e) {
var target = $(this);
var info = target.closest('.result-item-info');
var itemType = target.data('type') || '';
var format = info.find('[data-input=format]:checked').val() || '';
var quality = info.find('[data-input=quality]').val() || '';
var h264 = info.find('input[name=h264]').is(':checked');
// Image conversion (available to all users)
if (itemType === 'image' && GO_API_URL) {
var imgFormat = info.find('[data-input=img-format]:checked').val() || '';
var imgWidth = info.find('[data-input=img-width]').val() || '';
var imgHeight = info.find('[data-input=img-height]').val() || '';
var imgAspectRatio = info.find('[data-input=img-aspect-ratio]').val() || '';
var needsImageConversion = imgFormat !== '' || imgWidth !== '' || imgHeight !== '' || imgAspectRatio !== '';
if (needsImageConversion) {
e.preventDefault();
if (!hasPro) {
var modal = new bootstrap.Modal(document.getElementById('upgradeModal'));
modal.show();
return;
}
var sourceUrl = decodeURIComponent(target.data('url'));
var fn = target.data('fn') || 'image';
var form = document.createElement('form');
form.method = 'POST';
form.action = '/api/convert/image/';
form.style.display = 'none';
function addImgField(name, value) {
var input = document.createElement('input');
input.type = 'hidden';
input.name = name;
input.value = value;
form.appendChild(input);
}
addImgField('csrfmiddlewaretoken', 'oJmxGgttCv682ETxq4aMRGtOXSWbVr3sw6tLIi7DPFM141Kx48MBKdirMjP5BfYR');
addImgField('url', sourceUrl);
addImgField('title', fn);
if (imgFormat) addImgField('image_format', imgFormat);
if (imgWidth) addImgField('width', imgWidth);
if (imgHeight) addImgField('height', imgHeight);
if (imgAspectRatio) addImgField('aspect_ratio', imgAspectRatio);
document.body.appendChild(form);
form.submit();
document.body.removeChild(form);
onDownloadButton.call(target[0]);
return;
}
}
var needsConversion = (format === 'wav') || (quality !== '') || h264;
if (needsConversion && !hasPro) {
e.preventDefault();
var modal = new bootstrap.Modal(document.getElementById('upgradeModal'));
modal.show();
return;
}
if (needsConversion && GO_API_URL) {
e.preventDefault();
var pageUrl = decodeURIComponent(target.data('page-url') || '');
var fn = target.data('fn') || 'download';
var sourceUrl = pageUrl;
if (pageUrl.indexOf('tiktok.com') !== -1) {
var proxyType = (itemType === 'audio') ? 'audio' : 'video';
sourceUrl = GO_API_URL + '/api/proxy?url=' + encodeURIComponent(pageUrl) + '&type=' + proxyType + '&fn=' + encodeURIComponent(fn);
}
var fmt;
if (format === 'wav') {
fmt = 'wav';
} else if (itemType === 'audio') {
fmt = 'mp3';
} else {
fmt = 'mp4';
}
var form = document.createElement('form');
form.method = 'POST';
form.action = '/api/convert/' + fmt + '/';
form.style.display = 'none';
function addField(name, value) {
var input = document.createElement('input');
input.type = 'hidden';
input.name = name;
input.value = value;
form.appendChild(input);
}
addField('csrfmiddlewaretoken', 'oJmxGgttCv682ETxq4aMRGtOXSWbVr3sw6tLIi7DPFM141Kx48MBKdirMjP5BfYR');
addField('url', sourceUrl);
addField('title', fn);
if (fmt === 'mp3' && quality) addField('audio_quality', quality + 'k');
if (fmt === 'mp4' && quality) addField('video_quality', quality);
if (fmt === 'mp4' && h264) addField('h264', 'true');
document.body.appendChild(form);
form.submit();
document.body.removeChild(form);
onDownloadButton.call(this);
} else {
onDownloadButton.call(this);
}
});
container.on("change", "[data-input=format]", function () {
var info = $(this).closest('.result-item-info');
var row = info.find('.quality-row');
if ($(this).val() === 'wav') {
row.addClass("d-none");
} else {
row.removeClass("d-none");
}
resetDownloadButton(info);
});
container.on("change input", "[data-input=quality]", function () {
resetDownloadButton($(this).closest('.result-item-info'));
});
container.on("change", "input[name=h264]", function () {
resetDownloadButton($(this).closest('.result-item-info'));
});
onChangeURLValue();
function onDownloadAll() {
var target = $(this);
target.find(".spinner-border").removeClass("d-none");
target.prop("disabled", true);
var filter = container.find('input[name="downloadFilter"]:checked').val() || 'all';
var downloadLinks = [];
var downloadButtons = container.find(".download-button");
downloadButtons.each(function (index, item) {
var type = $(item).data("type") || "";
if (filter === "all" || type === filter || (filter === "video" && (type === "video" || type === "video_watermark"))) {
downloadLinks.push($(item).data("url"));
$(item).addClass("downloaded");
}
});
if (downloadLinks.length === 0) {
target.find(".spinner-border").addClass("d-none");
target.prop("disabled", false);
return;
}
var batchDownloadI18n = {
intro: "We detected {count} files. To keep things reliable we will download them in {n} batches of up to {size}. Each batch is saved separately as it finishes.",
progress: "Batch {current} of {total}",
retrying: "Batch {batch} failed, retrying in {sec}s…",
failed: "Batch {batch} failed after retries. Press Resume to try again.",
done_status: "All batches downloaded.",
resume_prompt: "You already downloaded {done} of {total} batches for this list. Continue from there?",
cancel_confirm: "Cancel the remaining batches?"
};
batchDownload.show({
urls: downloadLinks,
baseName: "Tikt",
csrfToken: "oJmxGgttCv682ETxq4aMRGtOXSWbVr3sw6tLIi7DPFM141Kx48MBKdirMjP5BfYR",
goApiUrl: GO_API_URL || "",
i18n: batchDownloadI18n,
onAllDone: function () {
setTimeout(function () {
target.find(".spinner-border").addClass("d-none");
target.text('Поделиться Tikt.io');
target.removeClass('btn-primary').addClass('btn-success');
target.prop("disabled", false);
launchConfetti(target, 150, 2200);
}, 100);
},
onError: function (err) {
alert(err && err.message ? err.message : err);
target.find(".spinner-border").addClass("d-none");
target.prop("disabled", false);
},
onCancel: function () {
target.find(".spinner-border").addClass("d-none");
target.prop("disabled", false);
}
});
}
var individualDownloadCount = 0;
function onDownloadButton() {
var target = $(this);
if (!target.data('original-html')) {
target.data('original-html', target.html());
target.data('original-class', target.attr('class'));
}
target.find(".spinner-border").removeClass("d-none");
setTimeout(function () {
target.find(".spinner-border").addClass("d-none");
target.text('Поделиться Tikt.io');
target.removeClass('btn-outline-primary').addClass('btn-success');
launchConfetti(target, 150, 2200);
}, 100)
if (!hasPro) {
individualDownloadCount++;
var banner = $('#batchUpsellBanner');
if (banner.length && individualDownloadCount >= 3) {
$('#batchUpsellCount').text(individualDownloadCount);
banner.removeClass('d-none');
}
}
}
function resetDownloadButton(info) {
var btn = info.find('.download-button');
var originalHtml = btn.data('original-html');
if (originalHtml) {
btn.html(originalHtml);
btn.attr('class', btn.data('original-class'));
}
}
// Multi-select for batch download
container.on('change', '.select-item-checkbox', function () {
var checked = container.find('.select-item-checkbox:checked');
var count = checked.length;
if (!hasPro && count > 1) {
$(this).prop('checked', false);
var modal = new bootstrap.Modal(document.getElementById('upgradeModal'));
modal.show();
return;
}
$('#selectedCount').text(count);
if (count > 1) {
$('#downloadSelectedBtn').removeClass('d-none');
} else {
$('#downloadSelectedBtn').addClass('d-none');
}
});
$('#downloadSelectedBtn').on('click', function () {
var target = $(this);
target.find('.spinner-border').removeClass('d-none');
target.prop('disabled', true);
var selectedUrls = [];
container.find('.select-item-checkbox:checked').each(function () {
selectedUrls.push($(this).data('url'));
});
if (selectedUrls.length === 0) {
target.find('.spinner-border').addClass('d-none');
target.prop('disabled', false);
return;
}
var batchDownloadI18n = {
intro: "We detected {count} files. To keep things reliable we will download them in {n} batches of up to {size}. Each batch is saved separately as it finishes.",
progress: "Batch {current} of {total}",
retrying: "Batch {batch} failed, retrying in {sec}s…",
failed: "Batch {batch} failed after retries. Press Resume to try again.",
done_status: "All batches downloaded.",
resume_prompt: "You already downloaded {done} of {total} batches for this list. Continue from there?",
cancel_confirm: "Cancel the remaining batches?"
};
batchDownload.show({
urls: selectedUrls,
baseName: "Tikt-selected",
csrfToken: "oJmxGgttCv682ETxq4aMRGtOXSWbVr3sw6tLIi7DPFM141Kx48MBKdirMjP5BfYR",
goApiUrl: GO_API_URL || "",
i18n: batchDownloadI18n,
onAllDone: function () {
target.find('.spinner-border').addClass('d-none');
target.prop('disabled', false);
launchConfetti(target, 150, 2200);
},
onError: function (err) {
alert(err && err.message ? err.message : 'An error occurred');
target.find('.spinner-border').addClass('d-none');
target.prop('disabled', false);
},
onCancel: function () {
target.find('.spinner-border').addClass('d-none');
target.prop('disabled', false);
}
});
});
function launchConfetti($btn, amount, lifetime) {
var colors = ['#FF4757', '#2ED573', '#1E90FF', '#FFA502', '#A55EEA', '#2ECC71', '#FF6B81'];
var offset = $btn.offset();
var btnWidth = $btn.outerWidth();
var btnHeight = $btn.outerHeight();
for (var i = 0; i < amount; i++) {
var $c = $('');
var size = 3 + Math.random() * 4; // 🎯 más pequeño: 3–7 px
var dur = 0.8 + Math.random() * 0.8; // más rápido: 0.8–1.6 s
var delay = Math.random() * 0.2;
var color = colors[Math.floor(Math.random() * colors.length)];
var rotateStart = Math.floor(Math.random() * 360);
var startLeft = offset.left + Math.random() * btnWidth;
var startTop = offset.top + Math.random() * btnHeight;
$c.css({
position: 'absolute',
left: startLeft + 'px',
top: startTop + 'px',
background: color,
width: size + 'px',
height: (size + 2) + 'px',
transform: 'rotate(' + rotateStart + 'deg)',
animation: 'fall linear forwards',
animationDuration: dur + 's',
animationDelay: delay + 's',
zIndex: 9999,
pointerEvents: 'none',
opacity: 0.9
});
$('body').append($c);
(function (el) {
setTimeout(function () {
el.remove();
}, lifetime || 2000);
})($c);
}
}
function onChangeURLValue() {
const inputValue = $('#url').val();
if (!inputValue) {
return
}
const button = $('#copyPasteText');
const pasteText = button.data('paste');
const clearText = button.data('clear');
if (inputValue.trim() === '') {
button.text(pasteText);
} else {
button.text(clearText);
}
}
function onLoadMore() {
var wrapper = $(this).closest(".job-wrapper");
container.find("#loadMoreEntries").prop("disabled", true);
container.find("#loadMoreEntries").find(".spinner-border").removeClass("d-none");
var target = container.find("#form");
var formData = target.serializeArray();
var nextPageToken = wrapper.find("[name=next_page_token]").val();
formData.push({name: 'page', value: page});
formData.push({name: 'next_page_token', value: nextPageToken});
$.ajax({
url: `/api/extract/`,
type: 'POST',
data: formData,
success: function (data) {
if (data.error === true || data.success === false) {
$('.m-progress').removeClass('m-progress').removeAttr('disabled');
container.find("#loadMoreEntries .spinner-border").addClass("d-none");
container.find("#loadMoreEntries").prop("disabled", false);
if (data.html) {
wrapper.find(".job-result").append(data.html);
}
return;
}
wrapper.find("#actionsWrapper").remove();
wrapper.find(`.job-result #postListWrapper`).append(data.html);
wrapper.find(`[name=next_page_token]`).val(data.next_page_token);
if (!data.next_page_token) {
container.find("#loadMoreEntries").remove();
} else {
container.find("#loadMoreEntries .spinner-border").addClass("d-none");
container.find("#loadMoreEntries").removeClass('m-progress').removeAttr('disabled');
}
initializeLazyLoad();
page += 1;
},
error: function (xhr, status, error) {
container.find("#loadMoreEntries .spinner-border").addClass("d-none");
container.find("#loadMoreEntries").prop("disabled", false);
try {
var response = JSON.parse(xhr.responseText);
if (response.html) {
wrapper.find(".job-result").append(response.html);
}
} catch (e) {
alert(error);
}
}
});
}
function onSubmit(e) {
page = 1;
var target = $(this);
container.find("#result").html("");
container.find("#heading").html("");
e.preventDefault();
var urlInput = target.find("#url").val();
if (!isValidURL(urlInput)) {
alert("Введите действительный URL-адрес.");
return;
}
target.find("button").addClass("m-progress").attr('disabled', 'disabled');
// Show loader
var wrapperId = 'extract-' + Date.now();
var wrapperHtml = "