- ID da verificação
- 38dba1c9-8336-4214-a521-7fc7d00d8226Concluído
- URL enviado:
- https://ssstwitter.com/
- Relatório concluído:
Links · 2 encontrado(s)
Os links de saída identificados na página
Link | Texto |
---|---|
https://likeedownloader.com/ | Likee Downloader |
https://ssstik.io/ | TikTok Video Downloader |
Variáveis JavaScript · 17 encontrada(s)
Variáveis JavaScript globais carregadas no objeto janela de uma página são variáveis declaradas fora das funções e acessíveis de qualquer lugar no código dentro do escopo atual
Nome | Tipo |
---|---|
onbeforetoggle | object |
documentPictureInPicture | object |
onscrollend | object |
__cfQR | object |
lazyadsense | number |
vignette_content | string |
hdInfoLink | boolean |
downloadX | function |
dataLayer | object |
adsbygoogle | object |
Mensagens de registro do console · 0 encontrada(s)
Mensagens registradas no console web
HTML
O corpo HTML bruto da página
<!DOCTYPE html><html lang="en"><head>
<title>Twitter Video Downloader - Download Twitter Videos in MP4</title>
<meta charset="utf-8">
<meta name="description" content="Our free Twitter Video Downloader makes it easy to download Twitter videos directly to your device, whether you're using a mobile phone or PC. Save Twitter videos in full HD for free">
<meta name="robots" content="index, follow">
<meta name="revisit-after" content="1 days">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="lb-version" content="lb0">
<meta property="og:title" content="Twitter Video Downloader - Download Twitter Videos in MP4">
<meta property="og:description" content="Our free Twitter Video Downloader makes it easy to download Twitter videos directly to your device, whether you're using a mobile phone or PC. Save Twitter videos in full HD for free">
<meta property="og:type" content="website">
<meta property="og:url" content="https://ssstwitter.com/">
<meta property="og:image" content="https://ssstwitter.com/images/og.jpg">
<meta property="og:site_name" content="Twitter downloader">
<meta name="msvalidate.01" content="D78B1F03383953823C7C9EACF55F082A">
<!-- Twitter -->
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Twitter Video Downloader - Download Twitter Videos in MP4">
<meta name="twitter:description" content="Our free Twitter Video Downloader makes it easy to download Twitter videos directly to your device, whether you're using a mobile phone or PC. Save Twitter videos in full HD for free">
<meta name="twitter:image:src" content="https://ssstwitter.com/images/og.jpg">
<link rel="stylesheet" href="/css/style.min.css?v=4.0.0">
<meta name="google" content="notranslate">
<style>
.content-visibility {
content-visibility: auto;
contain-intrinsic-size: 1000px;
}
</style>
<link rel="preconnect" href="//www.google-analytics.com">
<link rel="preconnect" href="//ssl.google-analytics.com">
<link rel="preconnect" href="//pagead2.googlesyndication.com">
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
<link rel="icon" href="/favicon.ico" type="image/x-icon">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" alt="">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" alt="">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" alt="">
<link rel="manifest" href="/site.webmanifest">
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
<meta name="msapplication-TileColor" content="#472d4e">
<meta name="theme-color" content="#472d4e">
<!-- For non-Retina (@1× display) iPhone, iPod Touch, and Android 2.1+ devices: -->
<link rel="apple-touch-icon-precomposed" href="/apple-touch-icon-precomposed.png"><!-- 57×57px -->
<!-- For the iPad mini and the first- and second-generation iPad (@1× display) on iOS ≤ 6: -->
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="/apple-touch-icon-72x72-precomposed.png">
<!-- For the iPad mini and the first- and second-generation iPad (@1× display) on iOS ≥ 7: -->
<link rel="apple-touch-icon-precomposed" sizes="76x76" href="/apple-touch-icon-76x76-precomposed.png">
<!-- For iPhone with @2× display running iOS ≤ 6: -->
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="/apple-touch-icon-114x114-precomposed.png">
<!-- For iPhone with @2× display running iOS ≥ 7: -->
<link rel="apple-touch-icon-precomposed" sizes="120x120" href="/apple-touch-icon-120x120-precomposed.png">
<!-- For iPad with @2× display running iOS ≤ 6: -->
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="/apple-touch-icon-144x144-precomposed.png">
<!-- For iPad with @2× display running iOS ≥ 7: -->
<link rel="apple-touch-icon-precomposed" sizes="152x152" href="/apple-touch-icon-152x152-precomposed.png">
<!-- For iPhone 6 Plus with @3× display: -->
<link rel="apple-touch-icon-precomposed" sizes="180x180" href="/apple-touch-icon-180x180-precomposed.png">
<!-- For Chrome for Android: -->
<link rel="icon" sizes="192x192" href="/android-chrome-192x192.png">
<link rel="icon" sizes="512x512" href="/android-chrome-512x512.png">
<link rel="canonical" href="https://ssstwitter.com/">
<script type="text/javascript" async="" src="https://www.googletagmanager.com/gtag/js?id=G-RCQKEYPTD1&l=dataLayer&cx=c&gtm=45He4cc1v78350988za200"></script><script async="" src="https://www.googletagmanager.com/gtm.js?id=GTM-57W66XV"></script><script type="application/ld+json">
{
"@context": "http://schema.org",
"@graph": [{
"@type": "WebSite",
"name": "Twitter downloader",
"alternateName": "Twitter video downloader",
"url": "https://ssstwitter.com/"
},
{
"@type": "WebPage",
"name": "Twitter Video Downloader - Download Twitter Videos in MP4",
"inLanguage": "en",
"description": "Our free Twitter Video Downloader makes it easy to download Twitter videos directly to your device, whether you're using a mobile phone or PC. Save Twitter videos in full HD for free",
"image": "https://ssstwitter.com/images/og.jpg",
"url": "https://ssstwitter.com/"
},
{
"@type": "WebApplication",
"name": "SSS Twitter downloader",
"alternateName": "Twitter video downloader",
"url": "https://ssstwitter.com/",
"image": "https://ssstwitter.com/apple-touch-icon-180x180-precomposed.png",
"screenshot": "https://ssstwitter.com/images/og.jpg",
"operatingSystem": "Windows, Linux, iOS, Android, OSX, macOS",
"applicationCategory": "UtilitiesApplication",
"featureList": [
"Video downloader",
"GIF Downloader"
],
"contentRating": "Everyone",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.9",
"reviewCount": "24245"
},
"offers": {
"@type": "Offer",
"price": "0",
"priceCurrency": "USD"
}
}
]
}
</script>
<style>
.sss::before {
background: linear-gradient(0deg, #ffe300 0, #004afb 100%);
}
</style>
<link rel="alternate" href="https://ssstwitter.com/ru" hreflang="ru">
<link rel="alternate" href="https://ssstwitter.com/tr" hreflang="tr">
<link rel="alternate" href="https://ssstwitter.com/es" hreflang="es">
<link rel="alternate" href="https://ssstwitter.com/pt" hreflang="pt">
<link rel="alternate" href="https://ssstwitter.com/fr" hreflang="fr">
<link rel="alternate" href="https://ssstwitter.com/de" hreflang="de">
<link rel="alternate" href="https://ssstwitter.com/it" hreflang="it">
<link rel="alternate" href="https://ssstwitter.com/id" hreflang="id">
<link rel="alternate" href="https://ssstwitter.com/uk" hreflang="uk">
<link rel="alternate" href="https://ssstwitter.com/ar" hreflang="ar">
<link rel="alternate" href="https://ssstwitter.com/vi" hreflang="vi">
<link rel="alternate" href="https://ssstwitter.com/th" hreflang="th">
<link rel="alternate" href="https://ssstwitter.com/" hreflang="en-in">
<link rel="alternate" href="https://ssstwitter.com/" hreflang="en-US">
<link rel="alternate" href="https://ssstwitter.com/" hreflang="en">
<link rel="alternate" href="https://ssstwitter.com/" hreflang="x-default"> <script type="text/javascript">
//<![CDATA[
/* Lazy Load AdSense*/
var lazyadsense = 0;
['mousemove', 'scroll', 'touchstart'].forEach(function(evt) {
window.addEventListener(evt, function() {
if (lazyadsense !== 1) {
console.log('gad+');
lazyadsense = 1;
var e = document.createElement("script");
e.id = "g_ads_js", e.type = "text/javascript", e.async = "async", e.src =
"https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9873762851395779";
var a = document.getElementsByTagName("script")[0];
a.parentNode.insertBefore(e, a)
}
});
});
//]]>
</script>
<script type="text/javascript">
var vignette_content =
'<ins class="adsbygoogle" style="display:block; margin: 0 auto;" data-ad-client="ca-pub-9873762851395779" data-ad-slot="5199637622" data-ad-format="auto" data-full-width-responsive="true"></ins>';
</script>
<script type="text/javascript">
var hdInfoLink = false;
function downloadX(hdInfoLink) {
console.log(hdInfoLink);
window.location.href = hdInfoLink;
}
</script>
<!-- Google Tag Manager -->
<script type="text/javascript">
(function(w, d, s, l, i) {
w[l] = w[l] || [];
w[l].push({
'gtm.start': new Date().getTime(),
event: 'gtm.js'
});
var f = d.getElementsByTagName(s)[0],
j = d.createElement(s),
dl = l != 'dataLayer' ? '&l=' + l : '';
j.async = true;
j.src =
'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
f.parentNode.insertBefore(j, f);
})(window, document, 'script',
'dataLayer',
'GTM-57W66XV'
);
</script>
<!-- End Google Tag Manager -->
<style> .htmx-indicator{opacity:0;transition: opacity 200ms ease-in;} .htmx-request .htmx-indicator{opacity:1} .htmx-request.htmx-indicator{opacity:1} </style></head>
<body id="sss_body">
<!-- Google Tag Manager (noscript) -->
<noscript><iframe
src="https://www.googletagmanager.com/ns.html?id=GTM-57W66XV"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<header>
<div class="header">
<div class="home-menu pure-menu pure-menu-horizontal pure-menu-fixed">
<a class="pure-menu-heading" href="/">
<div class="sss" data-text="SSS TWITTER">
<span>S</span><span>S</span><span>S</span>
<i>TWITTER</i>
</div>
</a>
<nav>
<div id="menuToggle">
<input type="checkbox" id="menu_toggler">
<label for="menu_toggler"></label>
<span class="bar"></span>
<span class="bar"></span>
<span class="bar"></span>
<div id="menu" class="pure-menu pure-menu-horizontal">
<ul class="pure-menu-list u-oh">
<li class="pure-menu-item">
<a href="/how-to-download-twitter-video" class="pure-menu-link">How to save?</a>
</li>
<li class="pure-menu-item">
<a href="/download-twitter-mp3" class="pure-menu-link">Twitter MP3</a>
</li>
</ul>
</div> </div>
</nav>
</div>
</div>
</header>
<main>
<section><div class="splash-container hide-in-results" id="splash" hx-ext="include-vals">
<div class="splash">
<h1 class="splash-head hide-after-request" id="bigmessage">
Twitter video downloader </h1>
<div id="errorContainer"></div>
<form class="pure-form pure-g hide-after-request" data-hx-post="/" data-hx-trigger="submit delay:2s" data-hx-target="#target" data-hx-swap="innerHTML" hx-select="#result" hx-push-url="true" include-vals="tt:'1044b3528180bd968c883c0c57ee1b70',
ts:1734604454,source:'form'">
<div class="loader loader--style8 htmx-indicator" id="main_loader">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="24px" height="30px" viewBox="0 0 24 30" style="enable-background:new 0 0 50 50;" xml:space="preserve">
<rect x="0" y="10" width="4" height="10" fill="#1e64b9" opacity="0.2">
<animate attributeName="opacity" attributeType="XML" values="0.2; 1; .2" begin="0s" dur="0.6s" repeatCount="indefinite"></animate>
<animate attributeName="height" attributeType="XML" values="10; 20; 10" begin="0s" dur="0.6s" repeatCount="indefinite"></animate>
<animate attributeName="y" attributeType="XML" values="10; 5; 10" begin="0s" dur="0.6s" repeatCount="indefinite"></animate>
</rect>
<rect x="8" y="10" width="4" height="10" fill="#1e64b9" opacity="0.2">
<animate attributeName="opacity" attributeType="XML" values="0.2; 1; .2" begin="0.15s" dur="0.6s" repeatCount="indefinite"></animate>
<animate attributeName="height" attributeType="XML" values="10; 20; 10" begin="0.15s" dur="0.6s" repeatCount="indefinite"></animate>
<animate attributeName="y" attributeType="XML" values="10; 5; 10" begin="0.15s" dur="0.6s" repeatCount="indefinite"></animate>
</rect>
<rect x="16" y="10" width="4" height="10" fill="#1e64b9" opacity="0.2">
<animate attributeName="opacity" attributeType="XML" values="0.2; 1; .2" begin="0.3s" dur="0.6s" repeatCount="indefinite"></animate>
<animate attributeName="height" attributeType="XML" values="10; 20; 10" begin="0.3s" dur="0.6s" repeatCount="indefinite"></animate>
<animate attributeName="y" attributeType="XML" values="10; 5; 10" begin="0.3s" dur="0.6s" repeatCount="indefinite"></animate>
</rect>
</svg>
</div>
<div class="pure-u-1 pure-u-sm-18-24">
<div class="input-link-wrapper">
<input id="main_page_text" title="https://twitter.com/Eminem/status/943590594491772928" name="id" type="text" class="form-control input-lg" placeholder="Insert link" autofocus="" value="">
<button type="button" id="paste" onclick="if (!window.__cfRLUnblockHandlers) return false; onPaste()" style="display: flex;">
<svg data-v-611f7da7="" width="14" height="18" viewBox="0 0 14 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path data-v-611f7da7="" d="M4.75 2.9625C4.75 2.505 4.90804 2.06624 5.18934 1.74274C5.47064 1.41924 5.85218 1.2375 6.25 1.2375H7.75C8.14782 1.2375 8.52936 1.41924 8.81066 1.74274C9.09196 2.06624 9.25 2.505 9.25 2.9625M4.75 2.9625H3.25C2.85218 2.9625 2.47064 3.14424 2.18934 3.46774C1.90804 3.79124 1.75 4.23 1.75 4.6875V15.0375C1.75 15.495 1.90804 15.9338 2.18934 16.2573C2.47064 16.5808 2.85218 16.7625 3.25 16.7625H10.75C11.1478 16.7625 11.5294 16.5808 11.8107 16.2573C12.092 15.9338 12.25 15.495 12.25 15.0375V4.6875C12.25 4.23 12.092 3.79124 11.8107 3.46774C11.5294 3.14424 11.1478 2.9625 10.75 2.9625H9.25H4.75ZM4.75 2.9625C4.75 3.41999 4.90804 3.85875 5.18934 4.18225C5.47064 4.50576 5.85218 4.6875 6.25 4.6875H7.75C8.14782 4.6875 8.52936 4.50576 8.81066 4.18225C9.09196 3.85875 9.25 3.41999 9.25 2.9625H4.75Z" stroke="#383838" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
</svg>
<span>
Paste </span>
</button>
<button type="button" id="clear" onclick="if (!window.__cfRLUnblockHandlers) return false; onClear()">
<svg data-v-611f7da7="" width="14px" height="14px" viewBox="0 0 320 512" xmlns="http://www.w3.org/2000/svg">
<path data-v-611f7da7="" d="M207.6 256l107.72-107.72c6.23-6.23 6.23-16.34 0-22.58l-25.03-25.03c-6.23-6.23-16.34-6.23-22.58 0L160 208.4 52.28 100.68c-6.23-6.23-16.34-6.23-22.58 0L4.68 125.7c-6.23 6.23-6.23 16.34 0 22.58L112.4 256 4.68 363.72c-6.23 6.23-6.23 16.34 0 22.58l25.03 25.03c6.23 6.23 16.34 6.23 22.58 0L160 303.6l107.72 107.72c6.23 6.23 16.34 6.23 22.58 0l25.03-25.03c6.23-6.23 6.23-16.34 0-22.58L207.6 256z" fill="#4a4a4a"></path>
</svg>
<span>
Clear </span>
</button>
<input id="locale" name="locale" type="hidden" value="en">
</div>
</div>
<div class="pure-u-1 pure-u-sm-6-24">
<button type="submit" id="submit" class="pure-button pure-button-primary u-fw">
<span>Download</span>
<span>Please wait...</span>
</button>
</div>
</form>
<div class="adcontainer_big"><!-- GOOGLEAD:START -->
<ins class="adsbygoogle" id="adMain" style="display: block; height: 280px;" data-ad-client="ca-pub-9873762851395779" data-ad-slot="1638630287" data-ad-format="auto" data-full-width-responsive="true"></ins>
<script type="text/javascript">
(adsbygoogle = window.adsbygoogle || []).onload = function () {
console.log('Google ad onload pushed');
adsbygoogle.push({});
let size = {
width: window.innerWidth || document.body.clientWidth,
height: window.innerHeight || document.body.clientHeight
}
if (size.width < 500 && size.width > 310) {
var bottomSticky = document.getElementById("adBottom");
if (bottomSticky) {
adsbygoogle.push({});
}
}
}
</script>
<!-- GOOGLEAD:END -->
<style>
@media (max-width:48em) {
#adMain {
min-height: 360px;
}
}
</style></div>
<div id="target"></div>
<br>
</div>
</div>
<script type="text/javascript">
const input = document.querySelector('#main_page_text');
const paste = document.querySelector('#paste');
const clear = document.querySelector('#clear');
let supportPaste = '';
if (typeof(navigator.clipboard) !== 'undefined') {
supportPaste = navigator.clipboard.readText;
if (supportPaste) {
paste.style.display = 'flex';
}
}
const onPaste = function() {
navigator.clipboard.readText().then(function(f) {
if (f && f.length > 0) {
input.value = f;
paste.style.display = 'none';
clear.style.display = 'flex';
}
})
}
const onClear = function() {
input.value = '';
if (supportPaste) {
paste.style.display = 'flex';
}
clear.style.display = 'none';
}
input.addEventListener('keyup', function(e) {
if (input.value.length > 0) {
paste.style.display = 'none';
clear.style.display = 'flex';
} else {
if (supportPaste) {
paste.style.display = 'flex';
}
clear.style.display = 'none';
}
});
</script></section><section class="hide-after-request hide-in-results"><div class="content"><div class="app_section is-center l-box">
<!-- extension promo 2 -->
<div class="section about about-mini">
<div class="pure-g">
<div class="l-box pure-u-1 pure-u-md-24-24" style="text-align: left;">
<div class="u-small-text p-nt">
<p>Our Twitter Video Downloader makes it easy to download Twitter videos directly to your device, whether you're using a mobile phone or PC. Save Twitter videos in full HD for free from accounts with public privacy settings.</p>
<p>With our fast and free tool, you can download unlimited Twitter videos online in just a few seconds. Get a download link within 2 seconds and choose from three quality options – high, medium, or low – to fit your needs.</p> </div>
</div>
</div>
</div>
<!-- extension promo 2 -->
</div><div class="highlights">
<div class="pure-g">
<div class="l-box pure-u-1">
<h2 class="is-center">
Download twitter videos & GIF </h2>
<div class="text-center">
</div>
</div>
<div class="pure-u-1 l-box pure-u-lg-12-24 pure-u-md-12-24 pure-u-sm-12-24 text-center-mobile">
<img src="/images/how-to-best.png" class="how-to-best" width="448" height="301" alt="save twitter.com videos">
</div>
<div class="l-box pure-u-1 pure-u-lg-12-24 pure-u-md-12-24 pure-u-sm-12-24 text-left-mobile">
<div class="u-small-text">
<p>Simply paste the link in the input field of our twitter video downloader and then press the "ENTER" button to save the video!</p>
<p>Please, make sure that:</p>
<ul>
<li>You are on the page, which displays a single tweet;</li>
<li>This page contains a video;</li>
<li>See an example below.</li>
</ul>
<p>These are original links:<br> https://twitter.com/Eminem/status/943590594491772928<br>
https://mobile.twitter.com/Eminem/status/943590594491772928</p>
</div>
</div>
<div class="pure-u-1">
<div class="l-box-lrg p-note">
<p><i><b>Note!</b> Our Twitter Video download website does not host copyrighted material and does not support unauthorized file sharing. All videos are directly stored from the Twitter CDN.</i></p> </div>
</div>
</div>
</div>
<hr>
<div class="section about howtos">
<div class="pure-g">
<div class="l-box pure-u-1 pure-u-sm-24-24">
<h3 class="is-center mini-header">
How to use the Twitter downloader app? </h3>
<p class="is-center">
You can download twitter videos from any device with a web browser, no matter your operating system (Windows, macOS, Linux, or others). The process is fast, simple, and hassle-free! </p>
</div>
<div class="l-box pure-u-1 pure-u-sm-8-24">
<h4 class="is-center biggie">
Copy tweet URL </h4>
<p class="is-center">
Find the video you want to save from Twitter and copy the link from the address bar. If you are in the official app, copy the link from the "Share" bar. </p>
</div>
<div class="l-box pure-u-1 pure-u-sm-8-24">
<h4 class="is-center biggie">
Paste into the input field </h4>
<p class="is-center">
Open our free Twitter video downloader in a new tab and paste the tweet URL in the form on top of the page. Then click the "Download Twitter video" button on the right side of twitter video download website to get the page with links to the video. </p>
</div>
<div class="l-box pure-u-1 pure-u-sm-8-24">
<h4 class="is-center biggie">
Download Twitter video </h4>
<p class="is-center">
When you press on the "twitter video download" button, in a couple of seconds you will see a page with results. Then you can download video from Twitter in different quality. </p>
</div>
</div>
</div></div></section> <section class="hide-after-request">
<div class="content-wrapper">
<h3 class="is-center">
Frequently Asked Questions </h3>
<section id="accordion">
<div class="pure-g l-box faqs" itemprop="mainEntity" itemscope="" itemtype="https://schema.org/FAQPage">
<div class="pure-u-1" itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question">
<input type="checkbox" id="faq1" class="faq-checkbox" hidden="">
<label itemprop="name" for="faq1" class="faq-label">
Can I download private videos from Twitter? </label>
<div class="faq-answer" itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
<p itemprop="text">
No, you can’t. SSS Twitter video download do not allow you to save videos and GIFs from private accounts. Please make sure that you do not break the law by downloading video, it can be copyrighted, or it can contain private information about the owner. </p>
</div>
</div>
<div class="pure-u-1" itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question">
<input type="checkbox" id="faq2" class="faq-checkbox" hidden="">
<label itemprop="name" for="faq2" class="faq-label">
How to use free Twitter video downloader for iPhone? </label>
<div class="faq-answer" itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
<p itemprop="text">
In order to download video from Twitter on iPhone or convert Twitter to mp4, you need to use sssTwitter.com. With iOS 13 and newer, you can save videos from online resources only in Safari web browser. For iOS 12 and lower, you can download videos only with help of "Documents by Readdle Inc." app from the Apple App Store, by using the built-in browser and our website.<br><br>You will have to copy the URL of the tweet with a video from the Twitter application or open it in a web browser. Tap the share button, and find the Copy Link item in the popup menu. Copy the URL, then go back to our twitter video downloader app for iPhone and paste the link in the form on top of the page. Press the "Download Twitter video" button, and you will get the links for downloading in a couple of seconds. </p>
</div>
</div>
<div class="pure-u-1" itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question">
<input type="checkbox" id="faq3" class="faq-checkbox" hidden="">
<label itemprop="name" for="faq3" class="faq-label">
Does sss Twitter Video Downloader have any limits? </label>
<div class="faq-answer" itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
<p itemprop="text">
No! You can download Twitter videos online or convert Twitter to mp4 as many as you wish. The only restriction is the wait time between hitting the download button. There is a ten seconds delay between requesting another link. This delay is mandatory to reduce server loading and to ensure best downloading speed. </p>
</div>
</div>
<div class="pure-u-1" itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question">
<input type="checkbox" id="faq4" class="faq-checkbox" hidden="">
<label itemprop="name" for="faq4" class="faq-label">
How to download Twitter videos on Android? </label>
<div class="faq-answer" itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
<p itemprop="text">
To save Twitter videos or convert twitter to mp4 on Android, you will need to follow three steps guide which is listed above. Everything is very simple with our twitter gif and video downloader. Try it and you will see it! </p>
</div>
</div>
<div class="pure-u-1" itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question">
<input type="checkbox" id="faq5" class="faq-checkbox" hidden="">
<label itemprop="name" for="faq5" class="faq-label">
How to use Twitter to mp4 video converter? </label>
<div class="faq-answer" itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
<p itemprop="text">
Our (X) Twitter downloader app allows you to save Twitter video or photos to any device completely free of charge. Just paste the URL into the input field to run the saving process. </p>
</div>
</div>
</div>
</section>
</div>
</section>
</main>
<style>
#ad-vignette {
z-index: 1337;
}
.modal__overlay {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: transparent;
display: flex;
justify-content: center;
align-items: center;
z-index: 99999;
}
.modal__container {
background-color: #fff;
padding: 1em;
max-width: 100%;
max-height: 80%;
border-radius: 4px;
overflow-y: auto;
box-sizing: border-box;
min-width: 80%;
}
.modal__header {
display: flex;
justify-content: space-between;
align-items: center;
}
.modal__title {
margin-top: 0;
margin-bottom: 0;
font-weight: 600;
font-size: 1em;
line-height: 1.25;
color: #00449e;
box-sizing: border-box;
display: none;
}
.modal__close {
background: transparent;
border: 0;
margin-bottom: 1em;
display: none;
}
.modal__header .modal__close:before {
content: "\2715";
font-size: 2em;
}
.modal__content {
line-height: 0;
color: rgba(0, 0, 0, .8);
}
.modal__btn {
width: 100%;
font-size: .875rem;
padding: 1em;
background-color: #e6e6e6;
color: rgba(0, 0, 0, .8);
border-radius: .25rem;
border-style: none;
border-width: 0;
cursor: pointer;
text-transform: none;
overflow: visible;
line-height: 1.15;
margin: 0;
will-change: transform;
-moz-osx-font-smoothing: grayscale;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
-webkit-transform: translateZ(0);
transform: translateZ(0);
transition: -webkit-transform .25s ease-out;
transition: transform .25s ease-out;
transition: transform .25s ease-out, -webkit-transform .25s ease-out;
}
.modal__btn:focus,
.modal__btn:hover {
background-color: #a6a6a6;
}
.modal__btn-primary {
background-color: #00449e;
color: #fff;
}
.a_show {
opacity: 1;
}
.a_hide {
opacity: 0;
transition: opacity 1000ms;
}
@media only screen and (min-width: 310px) and (max-width:500px) {
.modal__container {
padding: 0;
border-radius: 0px;
}
.modal__footer .modal__btn {
font-size: 1em;
}
}
@keyframes mmfadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes mmfadeOut {
from {
opacity: 1;
}
to {
opacity: 0;
}
}
@keyframes mmslideIn {
from {
transform: translateY(15%);
}
to {
transform: translateY(0);
}
}
@keyframes mmslideOut {
from {
transform: translateY(0);
}
to {
transform: translateY(-10%);
}
}
.micromodal-slide {
display: none;
}
.micromodal-slide.is-open {
display: block;
}
.micromodal-slide[aria-hidden="false"] .modal__overlay {
animation: mmfadeIn .3s cubic-bezier(0.0, 0.0, 0.2, 1);
}
.micromodal-slide[aria-hidden="false"] .modal__container {
animation: mmslideIn .3s cubic-bezier(0, 0, .2, 1);
}
.micromodal-slide[aria-hidden="true"] .modal__overlay {
animation: mmfadeOut .3s cubic-bezier(0.0, 0.0, 0.2, 1);
}
.micromodal-slide[aria-hidden="true"] .modal__container {
animation: mmslideOut .3s cubic-bezier(0, 0, .2, 1);
}
.micromodal-slide .modal__container,
.micromodal-slide .modal__overlay {
will-change: transform;
}
</style>
<div class="modal micromodal-slide" id="ad-vignette" aria-hidden="true">
<div class="modal__overlay" id="ovr" tabindex="-1" data-micromodal-close="">
<div class="modal__container" role="dialog" aria-modal="true" aria-labelledby="ad-vignette-title">
<header class="modal__header">
</header>
<main class="modal__content" id="ad-vignette-content">
</main>
<footer class="modal__footer">
<button class="modal__btn" data-micromodal-close="" aria-label="Close this dialog window">Close</button>
</footer>
</div>
</div>
</div>
<div id="overlayimage" style="background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkqAcAAIUAgUW0RjgAAAAASUVORK5CYII=); position:absolute; top: 0; left: 0; width: 100%; height: 100vh; min-height: 1500px; display: none">
</div>
<footer id="footer" style="padding-bottom: 5em;">
<div class="footer l-box is-center">
<div class="pure-menu pure-menu-horizontal">
<nav>
<ul class="pure-menu-list">
<li class="pure-menu-item pure-menu-selected">
© 2018-2024 -
<a class="pure-menu-link--white" href="/">Twitter
Downloader</a>
</li>
<li class="pure-menu-item">
<a href="/privacy" target="_self" class="pure-menu-link">Privacy Policy</a>
</li>
<li class="pure-menu-item">
<a href="/how-to-download-twitter-video" target="_self" class="pure-menu-link">How to save?</a>
</li>
<li class="pure-menu-item">
<a href="/about" target="_self" class="pure-menu-link">About</a>
</li>
</ul>
</nav>
<ul class="pure-menu-list">
<li class="pure-menu-item">
<a href="https://likeedownloader.com/" rel="noopener" target="_blank" class="pure-menu-link">Likee
Downloader</a>
</li>
<li class="pure-menu-item">
<a href="https://ssstik.io/" rel="noopener" target="_blank" class="pure-menu-link">TikTok Video
Downloader</a>
</li>
</ul>
<ul id="language-switcher">
<li class="pure-menu-item pure-menu-has-children pure-menu-allow-hover">
<a href="javascript:void(0)" id="menuLink1" class="pure-menu-link">
English </a>
<ul class="pure-menu-children u-smaller-text">
<li class="pure-menu-item"><a href="/id" lang="id" class="pure-menu-link">🇮🇩 Bahasa Indonesia</a></li><li class="pure-menu-item"><a href="/de" lang="de" class="pure-menu-link">🇩🇪 Deutsh</a></li><li class="pure-menu-item"><a href="/es" lang="es" class="pure-menu-link">🇪🇸 Español</a></li><li class="pure-menu-item"><a href="/fr" lang="fr" class="pure-menu-link">🇫🇷 Français</a></li><li class="pure-menu-item"><a href="/pt" lang="pt" class="pure-menu-link">🇵🇹 Português (Brasil)</a></li><li class="pure-menu-item"><a href="/ru" lang="ru" class="pure-menu-link">🇷🇺 Русский</a></li><li class="pure-menu-item"><a href="/tr" lang="tr" class="pure-menu-link">🇹🇷 Türkçe</a></li><li class="pure-menu-item"><a href="/it" lang="it" class="pure-menu-link">🇮🇹 Italiano</a></li><li class="pure-menu-item"><a href="/uk" lang="uk" class="pure-menu-link">🇺🇦 Українська</a></li><li class="pure-menu-item"><a href="/ar" lang="ar" class="pure-menu-link">🇦🇪 العربية</a></li><li class="pure-menu-item"><a href="/vi" lang="vi" class="pure-menu-link">🇻🇳 Tiếng Việt</a></li><li class="pure-menu-item"><a href="/th" lang="th" class="pure-menu-link">🇹🇭 ไทย</a></li> </ul>
</li>
</ul>
<style>
#menuLink1 {
min-width: 190px
}
#menuLink1:active .pure-menu-children,
#menuLink1:focus .pure-menu-children {
display: block;
}
#language-switcher {
max-width: 250px;
margin: 0 auto;
}
#language-switcher .pure-menu-children {
bottom: 2.5em;
background: #171717;
}
@media (max-width:48em) {
#language-switcher {
padding: 0;
}
}
</style>
</div>
</div>
<!-- GOOGLEAD_MINI:START -->
<div id="adBottom">
<div class="ad_sticky">
<ins class="adsbygoogle" style="display:inline-block;height:90px;width:100%" data-ad-client="ca-pub-9873762851395779" data-ad-slot="4686284698" data-full-width-responsive="true"></ins>
<div class="ad-close" onclick="if (!window.__cfRLUnblockHandlers) return false; document.getElementById('adBottom').style.display = 'none';document.getElementById('footer').style.marginBottom='0'">
<svg width="22px" height="22px" viewBox="0 0 16 16" class="bi bi-x" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z"></path>
</svg>
</div>
</div>
</div>
<!-- GOOGLEAD_MINI:END -->
<style>
#adBottom {
display: none;
}
@media only screen and (min-width: 310px) and (max-width:500px) {
#adBottom {
display: block;
position: fixed;
text-align: center;
bottom: 0px;
width: 100%;
z-index: 999;
height: 90px !important;
background-color: #fff;
transition: .4s;
}
.ad_sticky {
width: 100%;
height: 100%;
position: relative;
box-shadow: 0 -1px 3px 0 rgba(0, 0, 0, 0.1), 0 -1px 2px 0 rgba(0, 0, 0, 0.06);
}
.ad-close {
position: absolute;
width: 25px;
height: 25px;
left: 0;
top: -25px;
box-shadow: 0 -1px 3px 0 rgba(0, 0, 0, 0.1), 0 -1px 2px 0 rgba(0, 0, 0, 0.06);
z-index: 1000;
background-color: #fff;
border-top-right-radius: 6px;
cursor: pointer;
}
footer {
margin-bottom: 85px;
}
}
</style></footer> <script type="text/javascript">
(function(window, document) {
// Useragents detector
let userAgentString = navigator.userAgent;
let chromeAgent = userAgentString.indexOf("Chrome") > -1;
let ieAgent = userAgentString.indexOf("MSIE") > -1 ||
userAgentString.indexOf("rv:") > -1;
let ffAgent = userAgentString.indexOf("Firefox") > -1;
let opAgent = userAgentString.indexOf("OP") > -1;
if (chromeAgent) {
let chromeElements = document.getElementsByClassName("chromeonly_show");
for (let item of chromeElements) {
item.style.display = 'inline-block';
}
}
if (ffAgent) {
let ffElements = document.getElementsByClassName("ffonly_show");
for (let item of ffElements) {
item.style.display = 'inline-block';
}
}
if (opAgent) {
let opElements = document.getElementsByClassName("oponly_show");
for (let item of opElements) {
item.style.display = 'inline-block';
}
}
if (isMobileDevice()) {
let hideMobileElements = document.getElementsByClassName("hide_on_mobile");
for (let item of hideMobileElements) {
item.style.display = 'none';
}
}
document.getElementById('submit').addEventListener(
'click',
function(e) {
var indicator = document.getElementById('main_loader');
var submitbtn = document.getElementById('submit');
indicator.style.display = "block";
indicator.style.opacity = "1";
submitbtn.querySelector("span:nth-child(1)").style.display = "none";
submitbtn.querySelector("span:nth-child(2)").style.display = "inline";
submitbtn.style.backgroundColor = "#f1da5c";
});
document.getElementById('menuToggle').addEventListener(
'click',
function(e) {
var menu = document.getElementById('menu'),
menuWidth = menu.offsetWidth,
clientWidth = document.getElementsByTagName('html')[0].clientWidth;
if (menuWidth != clientWidth) {
document.getElementById('menu').style.width = clientWidth + 'px';
}
});
if (typeof(Event) === 'function') {
// modern browsers
window.dispatchEvent(new Event('resize'));
} else {
// for IE and other old browsers
// causes deprecation warning on modern browsers
var evt = window.document.createEvent('UIEvents');
evt.initUIEvent('resize', true, false, window, 0);
window.dispatchEvent(evt);
}
var timeout;
window.addEventListener(
'resize',
function(e) {
clearTimeout(timeout);
timeout = setTimeout(function() {
eventFire(document.getElementById('menuToggle'), 'click');
}, 100);
});
// == Various functions
function eventFire(el, etype) {
if (el.fireEvent) {
el.fireEvent('on' + etype);
} else {
var evObj = document.createEvent('Events');
evObj.initEvent(etype, true, false);
el.dispatchEvent(evObj);
}
}
function isMobileDevice() {
return (typeof window.orientation !== "undefined") || (navigator.userAgent.indexOf('IEMobile') !== -
1);
};
function showPartnerProjectsMessageOnWrongLink(link, errorContainer) {
// If user tries to DL likee video
if (link.indexOf('likee.video/') !== -1 ||
link.indexOf('likee.com/') !== -1) {
errorContainer.classList.add("info");
errorContainer.innerHTML =
'<div class="pure-g l-box u-shadow--white"><div class="pure-u-2-24 is-center is-icon"><svg class="svg-icon" viewBox="0 0 20 20"><path d="M9.719,17.073l-6.562-6.51c-0.27-0.268-0.504-0.567-0.696-0.888C1.385,7.89,1.67,5.613,3.155,4.14c0.864-0.856,2.012-1.329,3.233-1.329c1.924,0,3.115,1.12,3.612,1.752c0.499-0.634,1.689-1.752,3.612-1.752c1.221,0,2.369,0.472,3.233,1.329c1.484,1.473,1.771,3.75,0.693,5.537c-0.19,0.32-0.425,0.618-0.695,0.887l-6.562,6.51C10.125,17.229,9.875,17.229,9.719,17.073 M6.388,3.61C5.379,3.61,4.431,4,3.717,4.707C2.495,5.92,2.259,7.794,3.145,9.265c0.158,0.265,0.351,0.51,0.574,0.731L10,16.228l6.281-6.232c0.224-0.221,0.416-0.466,0.573-0.729c0.887-1.472,0.651-3.346-0.571-4.56C15.57,4,14.621,3.61,13.612,3.61c-1.43,0-2.639,0.786-3.268,1.863c-0.154,0.264-0.536,0.264-0.69,0C9.029,4.397,7.82,3.61,6.388,3.61"></path></svg></div><div class="pure-u-22-24 u-pls">We do not support Likee... Use <a href="https://likeedownloader.com/en?utm_source=ssstiktok&utm_medium=banner&utm_campaign=input_error" target="_blank">likeedownloader.com</a> instead.</div></div>';
return true;
}
// Tiktok partners
if (link.indexOf('tiktok.com/') !== -1) {
errorContainer.classList.add("info");
errorContainer.innerHTML =
'<div class="pure-g l-box u-shadow--white"><div class="pure-u-2-24 is-center is-icon"><svg class="svg-icon" viewBox="0 0 512 512" width="20" height="20"><g><path d="m480.32 128.39c-29.22 0-56.18-9.68-77.83-26.01-24.83-18.72-42.67-46.18-48.97-77.83-1.56-7.82-2.4-15.89-2.48-24.16h-83.47v228.08l-.1 124.93c0 33.4-21.75 61.72-51.9 71.68-8.75 2.89-18.2 4.26-28.04 3.72-12.56-.69-24.33-4.48-34.56-10.6-21.77-13.02-36.53-36.64-36.93-63.66-.63-42.23 33.51-76.66 75.71-76.66 8.33 0 16.33 1.36 23.82 3.83v-62.34-22.41c-7.9-1.17-15.94-1.78-24.07-1.78-46.19 0-89.39 19.2-120.27 53.79-23.34 26.14-37.34 59.49-39.5 94.46-2.83 45.94 13.98 89.61 46.58 121.83 4.79 4.73 9.82 9.12 15.08 13.17 27.95 21.51 62.12 33.17 98.11 33.17 8.13 0 16.17-.6 24.07-1.77 33.62-4.98 64.64-20.37 89.12-44.57 30.08-29.73 46.7-69.2 46.88-111.21l-.43-186.56c14.35 11.07 30.04 20.23 46.88 27.34 26.19 11.05 53.96 16.65 82.54 16.64v-60.61-22.49c.02.02-.22.02-.24.02z"/></g></svg></div><div class="pure-u-22-24 u-pls">We do not support TikTok... Use <a href="https://ssstik.io/?utm_source=ssstiktok&utm_medium=banner&utm_campaign=input_error" target="_blank">TikTok downloader</a> instead.</div></div>';
return true;
}
// Facebook partners
if (link.indexOf('facebook.com/') !== -1 ||
link.indexOf('fb.com/') !== -1 ||
link.indexOf('fb.watch/') !== -1) {
errorContainer.classList.add("info");
errorContainer.innerHTML =
'<div class="pure-g l-box u-shadow--white"><div class="pure-u-2-24 is-center is-icon"><svg class="svg-icon" viewBox="0 0 20 20"><path fill="none" d="M11.344,5.71c0-0.73,0.074-1.122,1.199-1.122h1.502V1.871h-2.404c-2.886,0-3.903,1.36-3.903,3.646v1.765h-1.8V10h1.8v8.128h3.601V10h2.403l0.32-2.718h-2.724L11.344,5.71z"></path></svg></div><div class="pure-u-22-24 u-pls">We do not support Facebook... Use <a href="https://getmyfb.com/?utm_source=ssstiktok&utm_medium=banner&utm_campaign=input_error" target="_blank">Facebook downloader</a> instead.</div></div>';
return true;
}
// Snack partners
if (link.indexOf('snackvideo.com/') !== -1 ||
link.indexOf('sck.io/') !== -1) {
errorContainer.classList.add("info");
errorContainer.innerHTML =
'<div class="pure-g l-box u-shadow--white"><div class="pure-u-2-24 is-center is-icon"><svg class="svg-icon" viewBox="0 0 20 20"><path d="M17.919,4.633l-3.833,2.48V6.371c0-1-0.815-1.815-1.816-1.815H3.191c-1.001,0-1.816,0.814-1.816,1.815v7.261c0,1.001,0.815,1.815,1.816,1.815h9.079c1.001,0,1.816-0.814,1.816-1.815v-0.739l3.833,2.478c0.428,0.226,0.706-0.157,0.706-0.377V5.01C18.625,4.787,18.374,4.378,17.919,4.633 M13.178,13.632c0,0.501-0.406,0.907-0.908,0.907H3.191c-0.501,0-0.908-0.406-0.908-0.907V6.371c0-0.501,0.407-0.907,0.908-0.907h9.079c0.502,0,0.908,0.406,0.908,0.907V13.632zM17.717,14.158l-3.631-2.348V8.193l3.631-2.348V14.158z"></path></svg></div><div class="pure-u-22-24 u-pls">Oops! We do not support Snack... Use <a href="https://getsnackvideo.com/">Snack Downloader</a> instead.</div></div>';
return true;
}
// Youtube partners
if (link.indexOf('youtube.com/') !== -1 ||
link.indexOf('youtu.be/') !== -1) {
errorContainer.classList.add("info");
errorContainer.innerHTML =
'<div class="pure-g l-box u-shadow--white"><div class="pure-u-2-24 is-center is-icon"><svg class="svg-icon" viewBox="0 0 20 20"><path fill="none" d="M9.426,7.625h0.271c0.596,0,1.079-0.48,1.079-1.073V4.808c0-0.593-0.483-1.073-1.079-1.073H9.426c-0.597,0-1.079,0.48-1.079,1.073v1.745C8.347,7.145,8.83,7.625,9.426,7.625 M9.156,4.741c0-0.222,0.182-0.402,0.404-0.402c0.225,0,0.405,0.18,0.405,0.402V6.62c0,0.222-0.181,0.402-0.405,0.402c-0.223,0-0.404-0.181-0.404-0.402V4.741z M12.126,7.625c0.539,0,1.013-0.47,1.013-0.47v0.403h0.81V3.735h-0.81v2.952c0,0-0.271,0.335-0.54,0.335c-0.271,0-0.271-0.202-0.271-0.202V3.735h-0.81v3.354C11.519,7.089,11.586,7.625,12.126,7.625 M6.254,7.559H7.2v-2.08l1.079-2.952H7.401L6.727,4.473L6.052,2.527H5.107l1.146,2.952V7.559z M11.586,12.003c-0.175,0-0.312,0.104-0.405,0.204v2.706c0.086,0.091,0.213,0.18,0.405,0.18c0.405,0,0.405-0.451,0.405-0.451v-2.188C11.991,12.453,11.924,12.003,11.586,12.003 M14.961,8.463c0,0-2.477-0.129-4.961-0.129c-2.475,0-4.96,0.129-4.96,0.129c-1.119,0-2.025,0.864-2.025,1.93c0,0-0.203,1.252-0.203,2.511c0,1.252,0.203,2.51,0.203,2.51c0,1.066,0.906,1.931,2.025,1.931c0,0,2.438,0.129,4.96,0.129c2.437,0,4.961-0.129,4.961-0.129c1.117,0,2.024-0.864,2.024-1.931c0,0,0.202-1.268,0.202-2.51c0-1.268-0.202-2.511-0.202-2.511C16.985,9.328,16.078,8.463,14.961,8.463 M7.065,10.651H6.052v5.085H5.107v-5.085H4.095V9.814h2.97V10.651z M9.628,15.736h-0.81v-0.386c0,0-0.472,0.45-1.012,0.45c-0.54,0-0.606-0.515-0.606-0.515v-3.991h0.809v3.733c0,0,0,0.193,0.271,0.193c0.27,0,0.54-0.322,0.54-0.322v-3.604h0.81V15.736z M12.801,14.771c0,0,0,1.03-0.742,1.03c-0.455,0-0.73-0.241-0.878-0.429v0.364h-0.876V9.814h0.876v1.92c0.135-0.142,0.464-0.439,0.878-0.439c0.54,0,0.742,0.45,0.742,1.03V14.771z M15.973,12.39v1.287h-1.688v0.965c0,0,0,0.451,0.405,0.451s0.405-0.451,0.405-0.451v-0.45h0.877v0.708c0,0-0.136,0.901-1.215,0.901c-1.08,0-1.282-0.901-1.282-0.901v-2.51c0,0,0-1.095,1.282-1.095S15.973,12.39,15.973,12.39 M14.69,12.003c-0.405,0-0.405,0.45-0.405,0.45v0.579h0.811v-0.579C15.096,12.453,15.096,12.003,14.69,12.003"></path></svg></div><div class="pure-u-22-24 u-pls">Wrong link format. Paste correct link and try again</div></div>';
return true;
}
return false;
}
// === Main event listeners
window.addEventListener('htmx:afterOnLoad', function(e) {
if (e.detail.requestConfig.elt.id == 'mp3_convert') {
e.detail.requestConfig.elt.removeAttribute('disabled');
e.detail.requestConfig.elt.setAttribute('data-fired', 'true');
e.detail.requestConfig.elt.innerHTML = 'Your MP3 is ready!';
e.detail.requestConfig.elt.style.backgroundColor = '#9edd5f';
}
});
window.addEventListener(
'htmx:beforeRequest',
function(e) {
if (e.detail.elt.id) {
if (e.detail.elt.getAttribute('data-fired') == 'true') {
e.preventDefault();
e.detail.elt.innerHTML = 'You already processed MP3!';
e.detail.requestConfig.elt.style.backgroundColor = "";
return;
}
if (e.detail.elt.id == 'mp3_convert') {
e.detail.elt.setAttribute('disabled', '');
e.detail.elt.innerHTML = 'Wait a minute, converting...';
return;
}
}
if (!e.detail.elt[0]) {
return;
}
if (e.detail.elt[0].id == 'main_page_text') {
var link = document.getElementById("main_page_text").value,
errorContainer = document.getElementById("errorContainer"),
bigmessage = document.getElementById("bigmessage");
errorContainer.innerHTML = '';
errorContainer.className = '';
// Send to GA any user-entered value
dataLayer.push({
'event': 'getInsertedLink',
'insertedLink': link
});
if (showPartnerProjectsMessageOnWrongLink(link, errorContainer)) {
var indicator = document.getElementById('main_loader');
var submitbtn = document.getElementById('submit');
indicator.style.display = "none";
indicator.style.opacity = "0";
submitbtn.querySelector("span:nth-child(2)").style.display = "none";
submitbtn.querySelector("span:nth-child(1)").style.display = "inline";
submitbtn.style.backgroundColor = "#1da1f2";
e.preventDefault();
return;
}
// If link pattern mismatching (base clientside validator)
if (!link.trim().match(
'^(https?:\/\/|)(m.|mobile.|www.|)(twitter.com|x.com)\/([a-zA-Z0-9_]{1,40}|i)\/(status|videos|broadcasts)\/([0-9]*)\/?[a-zA-Z0-9_\/=?](?:.*)?$'
) && !link.trim().match('^(https?:\/\/)(t\.co).*?(\s|$)')) {
errorContainer.classList.add("warning");
errorContainer.innerHTML =
'<div class="pure-g l-box u-shadow--black"><div class="pure-u-2-24 is-center is-icon"><svg class="svg-icon" viewBox="0 0 20 20"><path d="M10.185,1.417c-4.741,0-8.583,3.842-8.583,8.583c0,4.74,3.842,8.582,8.583,8.582S18.768,14.74,18.768,10C18.768,5.259,14.926,1.417,10.185,1.417 M10.185,17.68c-4.235,0-7.679-3.445-7.679-7.68c0-4.235,3.444-7.679,7.679-7.679S17.864,5.765,17.864,10C17.864,14.234,14.42,17.68,10.185,17.68 M10.824,10l2.842-2.844c0.178-0.176,0.178-0.46,0-0.637c-0.177-0.178-0.461-0.178-0.637,0l-2.844,2.841L7.341,6.52c-0.176-0.178-0.46-0.178-0.637,0c-0.178,0.176-0.178,0.461,0,0.637L9.546,10l-2.841,2.844c-0.178,0.176-0.178,0.461,0,0.637c0.178,0.178,0.459,0.178,0.637,0l2.844-2.841l2.844,2.841c0.178,0.178,0.459,0.178,0.637,0c0.178-0.176,0.178-0.461,0-0.637L10.824,10z"></path></svg></div><div class="pure-u-22-24 u-pls">Wrong link format. Paste correct link and try again</div></div>';
var indicator = document.getElementById('main_loader');
var submitbtn = document.getElementById('submit');
indicator.style.display = "none";
indicator.style.opacity = "0";
submitbtn.querySelector("span:nth-child(2)").style.display = "none";
submitbtn.querySelector("span:nth-child(1)").style.display = "inline";
submitbtn.style.backgroundColor = "#1da1f2";
e.preventDefault();
return;
}
bigmessage.innerHTML = 'Your video is preparing...';
}
});
document.body.addEventListener(
'sssfailure',
function(e) {
var splash = document.getElementById("splash");
var link = document.getElementById("main_page_text").value;
splash.classList.add('processed');
splash.classList.add('error');
dataLayer.push({
event: "vidacha",
status: "fail",
insertedLink: link
});
for (let element of document.getElementsByClassName("hide-after-request")) {
element.style.display = "none";
}
});
document.body.addEventListener(
'error',
function(e) {
if (e.detail.value) {
console.log(e.detail.value);
setTimeout(function() {
var mp3Button = document.getElementById("mp3_convert");
mp3Button.innerHTML = 'There is no MP3 in video!';
mp3Button.style.backgroundColor = '#ff2200';
}, 250);
}
});
document.body.addEventListener(
'ssssuccess',
function(e) {
var splash = document.getElementById("splash");
var link = document.getElementById("main_page_text").value;
splash.classList.add('processed');
splash.classList.add('success');
showCustomVignette();
dataLayer.push({
event: "vidacha",
status: "success",
insertedLink: link
});
for (let element of document.getElementsByClassName("hide-after-request")) {
element.style.display = "none";
}
});
document.body.addEventListener(
'ssslimitexceed',
function(e) {
var errorContainer = document.getElementById("errorContainer");
errorContainer.innerHTML = '';
errorContainer.className = '';
errorContainer.classList.add('warning');
errorContainer.innerHTML =
'<div class="pure-g l-box"><div class="pure-u-2-24 is-center is-icon"><svg class="svg-icon" viewBox="0 0 20 20"><path fill="none" d="M11.088,2.542c0.063-0.146,0.103-0.306,0.103-0.476c0-0.657-0.534-1.19-1.19-1.19c-0.657,0-1.19,0.533-1.19,1.19c0,0.17,0.038,0.33,0.102,0.476c-4.085,0.535-7.243,4.021-7.243,8.252c0,4.601,3.73,8.332,8.332,8.332c4.601,0,8.331-3.73,8.331-8.332C18.331,6.562,15.173,3.076,11.088,2.542z M10,1.669c0.219,0,0.396,0.177,0.396,0.396S10.219,2.462,10,2.462c-0.22,0-0.397-0.177-0.397-0.396S9.78,1.669,10,1.669z M10,18.332c-4.163,0-7.538-3.375-7.538-7.539c0-4.163,3.375-7.538,7.538-7.538c4.162,0,7.538,3.375,7.538,7.538C17.538,14.957,14.162,18.332,10,18.332z M10.386,9.26c0.002-0.018,0.011-0.034,0.011-0.053V5.24c0-0.219-0.177-0.396-0.396-0.396c-0.22,0-0.397,0.177-0.397,0.396v3.967c0,0.019,0.008,0.035,0.011,0.053c-0.689,0.173-1.201,0.792-1.201,1.534c0,0.324,0.098,0.625,0.264,0.875c-0.079,0.014-0.155,0.043-0.216,0.104l-2.244,2.244c-0.155,0.154-0.155,0.406,0,0.561s0.406,0.154,0.561,0l2.244-2.242c0.061-0.062,0.091-0.139,0.104-0.217c0.251,0.166,0.551,0.264,0.875,0.264c0.876,0,1.587-0.711,1.587-1.587C11.587,10.052,11.075,9.433,10.386,9.26z M10,11.586c-0.438,0-0.793-0.354-0.793-0.792c0-0.438,0.355-0.792,0.793-0.792c0.438,0,0.793,0.355,0.793,0.792C10.793,11.232,10.438,11.586,10,11.586z"></path></svg></div><div class="pure-u-22-24 u-pls">You are making requests too fast! Please wait ~10 seconds...</div></div>';
var indicator = document.getElementById('main_loader');
var submitbtn = document.getElementById('submit');
indicator.style.display = "none";
indicator.style.opacity = "0";
submitbtn.querySelector("span:nth-child(2)").style.display = "none";
submitbtn.querySelector("span:nth-child(1)").style.display = "inline";
submitbtn.style.backgroundColor = "#1da1f2";
});
function iOS() {
return [
'iPad Simulator',
'iPhone Simulator',
'iPod Simulator',
'iPad',
'iPhone',
'iPod'
].includes(navigator.platform)
// iPad on iOS 13 detection
||
(navigator.userAgent.includes("Mac") && "ontouchend" in document)
}
function showCustomVignette() {
setTimeout(function() {
var elements = document.getElementsByClassName("vignette_active");
console.log('vignette activated');
function showVignette(e, etype) {
const goog_vignette = document.querySelectorAll('ins[data-vignette-loaded="true"]');
// If no google vignette is present
if (goog_vignette.length == 0 && iOS()) {
e.preventDefault();
}
e.stopPropagation();
MicroModal.init({
awaitOpenAnimation: true,
awaitCloseAnimation: true,
debugMode: false,
});
MicroModal.show('ad-vignette', {
onShow: function(modal) {
console.log('Modal fired');
document.getElementById('overlayimage').style.display = 'block';
document.getElementById('sss_body').style.overflow = 'hidden';
document.getElementById('ad-vignette-content').innerHTML =
vignette_content;
(adsbygoogle = window.adsbygoogle || []).push({});
if (goog_vignette.length == 0 && iOS()) {
setTimeout(function() {
window.location.href = e.srcElement
.getAttribute("href");
}, 1000);
}
},
onClose: function(modal) {
document.getElementById('ad-vignette-content').innerHTML = '';
var overlayImage = document.getElementById('overlayimage');
overlayImage.classList.add('a_hide');
overlayImage.classList.remove('a_show');
setTimeout(function() {
overlayImage.style.display = 'none';
overlayImage.classList.remove('a_hide');
document.getElementById('sss_body').style.overflow =
'auto';
}, 1500);
}
});
};
for (var i = 0; i < elements.length; i++) {
elements[i].addEventListener('click', showVignette, false);
console.log('Listeners emitted...');
}
}, 150);
}
})(this, this.document);
</script>
<script src="/js/htmx.min.js" type="text/javascript"></script>
<script src="/js/include-vals.js" type="text/javascript"></script>
<script src="/js/micromodal.min.js" type="text/javascript"></script>
</body></html>