Automatically clears site data to bypass 5-video limit on 1024videos
// ==UserScript==
// @name 1024videos vip
// @namespace 1024videos_unlimited
// @version 1.0.0
// @author codegeasse
// @description Automatically clears site data to bypass 5-video limit on 1024videos
// @match *://*.1024videos.com/*
// @match *://*.1024video.com/*
// @run-at document-start
// ==/UserScript==
(function() {
'use strict';
console.log('🚀 1024videos Unlimited - Starting...');
// =============================================
// Clear ALL storage immediately
// =============================================
function clearAllData() {
console.log('🧹 Clearing all site data...');
// Clear localStorage completely
try {
localStorage.clear();
console.log('✅ localStorage cleared');
} catch(e) {
console.log('❌ localStorage clear failed:', e);
}
// Clear sessionStorage completely
try {
sessionStorage.clear();
console.log('✅ sessionStorage cleared');
} catch(e) {
console.log('❌ sessionStorage clear failed:', e);
}
// Clear all cookies
try {
document.cookie.split(";").forEach(function(c) {
var name = c.split("=")[0].trim();
document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/";
document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/;domain=" + window.location.hostname;
document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/;domain=." + window.location.hostname;
});
console.log('✅ Cookies cleared');
} catch(e) {
console.log('❌ Cookie clear failed:', e);
}
}
// =============================================
// Block storage writes for tracking keys
// =============================================
const originalSetItem = Storage.prototype.setItem;
const originalClear = Storage.prototype.clear;
const originalRemoveItem = Storage.prototype.removeItem;
// Track which keys the site tries to use
const blockedKeys = new Set();
Storage.prototype.setItem = function(key, value) {
// Log what the site is trying to save
console.log('📝 Site trying to save:', key, '=', value);
blockedKeys.add(key);
// Block common tracking keys
const trackingPatterns = [
/view/i, /watch/i, /count/i, /limit/i, /free/i,
/trial/i, /quota/i, /usage/i, /history/i,
/recent/i, /played/i, /seen/i, /visited/i,
/session/i, /time/i, /expire/i, /24hour/i,
/daily/i, /video/i, /num/i, /total/i
];
const isTracking = trackingPatterns.some(pattern => pattern.test(key));
if (isTracking) {
console.log('🚫 BLOCKED tracking key:', key);
return; // Don't save it
}
// Allow other keys
return originalSetItem.call(this, key, value);
};
Storage.prototype.clear = function() {
console.log('📝 Site trying to clear storage');
// Allow clearing but log it
return originalClear.call(this);
};
Storage.prototype.removeItem = function(key) {
console.log('📝 Site trying to remove:', key);
return originalRemoveItem.call(this, key);
};
// =============================================
// Run immediately
// ============================================= clearAllData();
// Also run when DOM is ready
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', clearAllData);
} else {
clearAllData();
}
// Run after a short delay (in case site loads data later)
setTimeout(clearAllData, 100);
setTimeout(clearAllData, 500);
setTimeout(clearAllData, 1000);
setTimeout(clearAllData, 3000);
// =============================================
// Status indicator
// =============================================
function showStatus() {
const statusDiv = document.createElement('div');
statusDiv.style.cssText = `
position: fixed;
top: 10px;
right: 10px;
background: #2ed573;
color: #000;
padding: 10px 15px;
border-radius: 5px;
font-family: Arial, sans-serif;
font-size: 12px;
font-weight: bold;
z-index: 999999;
box-shadow: 0 2px 10px rgba(0,0,0,0.3);
`;
statusDiv.innerHTML = '♾️ Unlimited Mode Active<br><small style="font-weight:normal">Data cleared: ' + blockedKeys.size + ' keys blocked</small>';
document.body.appendChild(statusDiv);
// Show blocked keys in console
if (blockedKeys.size > 0) {
console.log('📊 Blocked tracking keys:', Array.from(blockedKeys));
}
}
// Show status when page loads
if (document.body) {
showStatus();
} else {
document.addEventListener('DOMContentLoaded', showStatus);
}
// Clear data every 30 seconds
setInterval(() => {
clearAllData();
console.log('🔄 Periodic cleanup done');
}, 30000);
// Clear data when leaving page
window.addEventListener('beforeunload', clearAllData);
// Clear data when tab becomes visible again
document.addEventListener('visibilitychange', () => {
if (!document.hidden) {
clearAllData();
console.log('🔄 Cleared on tab focus');
}
});
console.log('✅ 1024videos Unlimited loaded successfully');
console.log('💡 Watch unlimited videos - data will be auto-cleared');
})();