Linkvertise Wait Time Bypass

Automatically bypass Linkvertise wait times and access content immediately

Size

5.6 KB

Version

1.0.1

Created

Feb 1, 2026

Updated

2 months ago

1// ==UserScript==
2// @name		Linkvertise Wait Time Bypass
3// @description		Automatically bypass Linkvertise wait times and access content immediately
4// @version		1.0.1
5// @match		https://*.linkvertise.com/*
6// @icon		https://linkvertise.com/favicon.ico
7// @grant		GM.getValue
8// @grant		GM.setValue
9// ==/UserScript==
10(function() {
11    'use strict';
12
13    console.log('Linkvertise Bypass Extension loaded');
14
15    // Function to bypass the wait time
16    function bypassWaitTime() {
17        console.log('Attempting to bypass wait time...');
18
19        // Method 1: Try to find and click the continue button directly
20        const continueButton = document.querySelector('.action-wall__button button[data-testid="lv-button"]');
21        if (continueButton && !continueButton.disabled) {
22            console.log('Continue button found, attempting to click...');
23            continueButton.click();
24            return true;
25        }
26
27        // Method 2: Look for any timer elements and try to manipulate them
28        const timerElements = document.querySelectorAll('.membership-price__wrapper div');
29        timerElements.forEach(el => {
30            if (el.textContent.includes('Wait')) {
31                console.log('Found wait timer:', el.textContent);
32                // Try to set the timer to 0
33                el.textContent = 'Wait 00:00';
34            }
35        });
36
37        // Method 3: Try to find the target URL in the page and redirect directly
38        const links = document.querySelectorAll('a[href]');
39        for (const link of links) {
40            const href = link.getAttribute('href');
41            // Look for the actual destination URL (usually contains /dynamic/ or similar)
42            if (href && (href.includes('/dynamic/') || href.includes('target='))) {
43                console.log('Found potential target link:', href);
44                // Extract the actual URL if it's encoded
45                try {
46                    const url = new URL(href, window.location.origin);
47                    const targetParam = url.searchParams.get('target');
48                    if (targetParam) {
49                        console.log('Redirecting to target:', targetParam);
50                        window.location.href = decodeURIComponent(targetParam);
51                        return true;
52                    }
53                } catch (e) {
54                    console.log('Error parsing URL:', e);
55                }
56            }
57        }
58
59        // Method 4: Check localStorage/sessionStorage for stored data
60        try {
61            const storage = { ...localStorage, ...sessionStorage };
62            console.log('Checking storage for bypass data...');
63            
64            // Look for any stored timer or access data
65            for (const key in storage) {
66                if (key.includes('timer') || key.includes('wait') || key.includes('access')) {
67                    console.log('Found storage key:', key, storage[key]);
68                }
69            }
70        } catch (e) {
71            console.log('Storage check error:', e);
72        }
73
74        return false;
75    }
76
77    // Function to monitor for changes and attempt bypass
78    function monitorAndBypass() {
79        console.log('Setting up monitoring...');
80        
81        // Try immediate bypass
82        setTimeout(() => {
83            bypassWaitTime();
84        }, 1000);
85
86        // Set up a MutationObserver to watch for DOM changes
87        const observer = new MutationObserver((mutations) => {
88            // Check if the continue button becomes available
89            const continueButton = document.querySelector('.action-wall__button button[data-testid="lv-button"]');
90            if (continueButton && !continueButton.disabled) {
91                console.log('Continue button is now available!');
92                continueButton.click();
93            }
94        });
95
96        // Start observing the document for changes
97        observer.observe(document.body, {
98            childList: true,
99            subtree: true,
100            attributes: true,
101            attributeFilter: ['disabled', 'class']
102        });
103
104        // Also try periodic checks
105        const intervalId = setInterval(() => {
106            const success = bypassWaitTime();
107            if (success) {
108                clearInterval(intervalId);
109                observer.disconnect();
110            }
111        }, 2000);
112
113        // Stop trying after 30 seconds
114        setTimeout(() => {
115            clearInterval(intervalId);
116            observer.disconnect();
117            console.log('Bypass attempts completed');
118        }, 30000);
119    }
120
121    // Wait for the page to be fully loaded
122    if (document.readyState === 'loading') {
123        document.addEventListener('DOMContentLoaded', monitorAndBypass);
124    } else {
125        monitorAndBypass();
126    }
127
128    // Also try to intercept any timer-related JavaScript
129    const originalSetTimeout = window.setTimeout;
130    window.setTimeout = function(callback, delay, ...args) {
131        // If it's a long delay (like for a timer), reduce it significantly
132        if (delay > 10000) {
133            console.log('Intercepted long setTimeout:', delay, 'ms - reducing to 100ms');
134            delay = 100;
135        }
136        return originalSetTimeout.call(this, callback, delay, ...args);
137    };
138
139    const originalSetInterval = window.setInterval;
140    window.setInterval = function(callback, delay, ...args) {
141        // If it's a timer interval, speed it up
142        if (delay > 1000) {
143            console.log('Intercepted setInterval:', delay, 'ms - reducing to 100ms');
144            delay = 100;
145        }
146        return originalSetInterval.call(this, callback, delay, ...args);
147    };
148
149    console.log('Linkvertise Bypass Extension initialized');
150})();
Linkvertise Wait Time Bypass | Robomonkey