Auto-watch videos, auto-play games, farm points on PixelPoint.TV
لا ينبغي أن لا يتم تثبيت هذا السكريت مباشرة. هو مكتبة لسكبتات لتشمل مع التوجيه الفوقية // @require https://update.greatest.deepsurf.us/scripts/576552/1815469/cook45%27s%20PixelPointTV%20Auto-Earner.js
// ==UserScript==
// @name cook45's PixelPoint.TV Auto-Earner
// @namespace http://tampermonkey.net/
// @version 3.0
// @description Auto-watch videos, auto-play games, farm points on PixelPoint.TV
// @author cook45
// @match *://pixelpoint.tv/*
// @match *://*.pixelpoint.tv/*
// @grant GM_setValue
// @grant GM_getValue
// @grant GM_notification
// @run-at document-start
// ==/UserScript==
(function() {
'use strict';
console.log('[cook45] PixelPoint.TV Auto-Earner Loading... 🔥');
// ========================
// CONFIG
// ========================
const Config = {
// Auto-watch
autoWatch: true,
autoNext: true,
autoMute: true,
skipAds: true,
// Auto-play games
autoPlayGames: true,
gameAutoWin: true,
gameCompletionDelay: 3000, // ms before moving to next game
// Auto-tasks
autoCompleteTasks: true,
autoSignup: false, // Auto-signup to partner sites (risky)
// Speed hacks
videoSpeedMultiplier: 2.0, // 2x speed (max without detection)
autoClickCaptcha: true,
// Safety
randomDelays: true, // Add random delays to look human
minDelay: 2000,
maxDelay: 5000,
// Stats
totalPoints: 0,
videosWatched: 0,
gamesPlayed: 0,
tasksCompleted: 0,
};
// Load saved stats
Config.totalPoints = GM_getValue('totalPoints', 0);
Config.videosWatched = GM_getValue('videosWatched', 0);
Config.gamesPlayed = GM_getValue('gamesPlayed', 0);
Config.tasksCompleted = GM_getValue('tasksCompleted', 0);
// ========================
// GUI
// ========================
function createGUI() {
const gui = document.createElement('div');
gui.id = 'cook45-earner-gui';
gui.innerHTML = `
<style>
#cook45-earner-gui {
position: fixed;
top: 80px;
right: 10px;
width: 320px;
background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
border: 2px solid #00ff88;
border-radius: 12px;
padding: 18px;
z-index: 999999;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
color: #fff;
box-shadow: 0 8px 32px rgba(0, 255, 136, 0.3);
backdrop-filter: blur(10px);
}
#cook45-earner-gui h2 {
margin: 0 0 15px 0;
padding-bottom: 10px;
border-bottom: 2px solid #00ff88;
color: #00ff88;
font-size: 18px;
text-align: center;
font-weight: bold;
text-shadow: 0 0 10px rgba(0, 255, 136, 0.5);
}
.status-bar {
background: rgba(0, 255, 136, 0.1);
border-radius: 8px;
padding: 12px;
margin-bottom: 15px;
border-left: 4px solid #00ff88;
}
.status-bar .status-item {
display: flex;
justify-content: space-between;
margin: 6px 0;
font-size: 13px;
}
.status-bar .status-label {
color: #aaa;
}
.status-bar .status-value {
color: #00ff88;
font-weight: bold;
}
.cheat-section {
margin-bottom: 12px;
padding: 10px;
background: rgba(255, 255, 255, 0.05);
border-radius: 8px;
border: 1px solid rgba(255, 255, 255, 0.1);
}
.cheat-section h3 {
margin: 0 0 10px 0;
font-size: 14px;
color: #00ff88;
font-weight: 600;
}
.cheat-toggle {
display: flex;
justify-content: space-between;
align-items: center;
margin: 8px 0;
}
.cheat-toggle label {
font-size: 13px;
color: #ddd;
}
.toggle-btn {
padding: 5px 15px;
border: none;
border-radius: 6px;
cursor: pointer;
font-size: 11px;
font-weight: bold;
transition: all 0.3s;
text-transform: uppercase;
}
.toggle-btn.on {
background: linear-gradient(135deg, #00ff88 0%, #00cc70 100%);
color: #000;
box-shadow: 0 0 15px rgba(0, 255, 136, 0.4);
}
.toggle-btn.off {
background: linear-gradient(135deg, #ff3366 0%, #cc2952 100%);
color: #fff;
}
.slider-container {
margin: 10px 0;
}
.slider-container label {
display: block;
font-size: 12px;
color: #ddd;
margin-bottom: 6px;
}
.slider-container input[type="range"] {
width: 100%;
height: 6px;
border-radius: 3px;
background: rgba(255, 255, 255, 0.2);
outline: none;
-webkit-appearance: none;
}
.slider-container input[type="range"]::-webkit-slider-thumb {
-webkit-appearance: none;
width: 16px;
height: 16px;
border-radius: 50%;
background: #00ff88;
cursor: pointer;
box-shadow: 0 0 10px rgba(0, 255, 136, 0.6);
}
.action-btn {
width: 100%;
padding: 10px;
margin: 6px 0;
border: none;
border-radius: 8px;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: #fff;
font-size: 13px;
font-weight: bold;
cursor: pointer;
transition: all 0.3s;
text-transform: uppercase;
}
.action-btn:hover {
transform: translateY(-2px);
box-shadow: 0 6px 20px rgba(102, 126, 234, 0.4);
}
.action-btn:active {
transform: translateY(0);
}
.minimize-btn {
position: absolute;
top: 15px;
right: 45px;
background: rgba(255, 255, 255, 0.1);
border: none;
color: #fff;
width: 28px;
height: 28px;
border-radius: 50%;
cursor: pointer;
font-weight: bold;
font-size: 16px;
transition: all 0.2s;
}
.minimize-btn:hover {
background: rgba(255, 255, 255, 0.2);
}
.close-btn {
position: absolute;
top: 15px;
right: 15px;
background: #ff3366;
border: none;
color: #fff;
width: 28px;
height: 28px;
border-radius: 50%;
cursor: pointer;
font-weight: bold;
font-size: 16px;
transition: all 0.2s;
}
.close-btn:hover {
background: #ff5588;
transform: rotate(90deg);
}
.activity-log {
max-height: 120px;
overflow-y: auto;
background: rgba(0, 0, 0, 0.3);
border-radius: 6px;
padding: 8px;
font-size: 11px;
font-family: 'Courier New', monospace;
color: #00ff88;
margin-top: 10px;
}
.activity-log::-webkit-scrollbar {
width: 6px;
}
.activity-log::-webkit-scrollbar-thumb {
background: #00ff88;
border-radius: 3px;
}
.activity-log .log-entry {
margin: 4px 0;
padding: 3px;
border-left: 2px solid #00ff88;
padding-left: 6px;
}
.minimized {
height: 50px !important;
overflow: hidden;
}
</style>
<button class="minimize-btn" id="minimize-btn">_</button>
<button class="close-btn" id="close-btn">×</button>
<h2>🔥 cook45's Auto-Earner</h2>
<div class="gui-content">
<div class="status-bar">
<div class="status-item">
<span class="status-label">💰 Total Points:</span>
<span class="status-value" id="total-points">0</span>
</div>
<div class="status-item">
<span class="status-label">📹 Videos Watched:</span>
<span class="status-value" id="videos-watched">0</span>
</div>
<div class="status-item">
<span class="status-label">🎮 Games Played:</span>
<span class="status-value" id="games-played">0</span>
</div>
<div class="status-item">
<span class="status-label">📋 Tasks Done:</span>
<span class="status-value" id="tasks-done">0</span>
</div>
<div class="status-item">
<span class="status-label">⚡ Status:</span>
<span class="status-value" id="bot-status">Idle</span>
</div>
</div>
<div class="cheat-section">
<h3>📺 Video Automation</h3>
<div class="cheat-toggle">
<label>Auto-Watch Videos</label>
<button class="toggle-btn on" id="toggle-autowatch">ON</button>
</div>
<div class="cheat-toggle">
<label>Auto-Next Video</label>
<button class="toggle-btn on" id="toggle-autonext">ON</button>
</div>
<div class="cheat-toggle">
<label>Auto-Mute</label>
<button class="toggle-btn on" id="toggle-mute">ON</button>
</div>
<div class="cheat-toggle">
<label>Skip Ads</label>
<button class="toggle-btn on" id="toggle-skipads">ON</button>
</div>
<div class="slider-container">
<label>Video Speed: <span id="speed-value">2.0</span>x</label>
<input type="range" min="1" max="4" step="0.1" value="2.0" id="speed-slider">
</div>
</div>
<div class="cheat-section">
<h3>🎮 Game Automation</h3>
<div class="cheat-toggle">
<label>Auto-Play Games</label>
<button class="toggle-btn on" id="toggle-autogames">ON</button>
</div>
<div class="cheat-toggle">
<label>Auto-Win Games</label>
<button class="toggle-btn on" id="toggle-gamewin">ON</button>
</div>
</div>
<div class="cheat-section">
<h3>⚡ Quick Actions</h3>
<button class="action-btn" id="btn-start-farming">🚀 Start Farming</button>
<button class="action-btn" id="btn-watch-all">📺 Watch All Videos</button>
<button class="action-btn" id="btn-play-all-games">🎮 Play All Games</button>
<button class="action-btn" id="btn-reset-stats">🔄 Reset Stats</button>
</div>
<div class="activity-log" id="activity-log">
<div class="log-entry">[cook45] Waiting for action...</div>
</div>
</div>
`;
document.body.appendChild(gui);
setupGUIListeners();
updateStats();
}
function setupGUIListeners() {
// Toggle buttons
const toggles = {
'toggle-autowatch': 'autoWatch',
'toggle-autonext': 'autoNext',
'toggle-mute': 'autoMute',
'toggle-skipads': 'skipAds',
'toggle-autogames': 'autoPlayGames',
'toggle-gamewin': 'gameAutoWin'
};
Object.entries(toggles).forEach(([id, configKey]) => {
const btn = document.getElementById(id);
if (btn) {
btn.addEventListener('click', () => {
Config[configKey] = !Config[configKey];
btn.className = `toggle-btn ${Config[configKey] ? 'on' : 'off'}`;
btn.textContent = Config[configKey] ? 'ON' : 'OFF';
log(`${configKey}: ${Config[configKey] ? 'Enabled' : 'Disabled'}`);
});
}
});
// Speed slider
document.getElementById('speed-slider')?.addEventListener('input', (e) => {
Config.videoSpeedMultiplier = parseFloat(e.target.value);
document.getElementById('speed-value').textContent = Config.videoSpeedMultiplier.toFixed(1);
applyVideoSpeed();
});
// Action buttons
document.getElementById('btn-start-farming')?.addEventListener('click', startFullAutoFarm);
document.getElementById('btn-watch-all')?.addEventListener('click', watchAllVideos);
document.getElementById('btn-play-all-games')?.addEventListener('click', playAllGames);
document.getElementById('btn-reset-stats')?.addEventListener('click', resetStats);
// Minimize/Close
document.getElementById('minimize-btn')?.addEventListener('click', () => {
const gui = document.getElementById('cook45-earner-gui');
gui.classList.toggle('minimized');
});
document.getElementById('close-btn')?.addEventListener('click', () => {
document.getElementById('cook45-earner-gui').remove();
});
}
// ========================
// LOGGING
// ========================
function log(message) {
console.log(`[cook45] ${message}`);
const logContainer = document.getElementById('activity-log');
if (logContainer) {
const entry = document.createElement('div');
entry.className = 'log-entry';
entry.textContent = `[${new Date().toLocaleTimeString()}] ${message}`;
logContainer.appendChild(entry);
logContainer.scrollTop = logContainer.scrollHeight;
// Keep only last 50 entries
while (logContainer.children.length > 50) {
logContainer.removeChild(logContainer.firstChild);
}
}
}
function updateStats() {
document.getElementById('total-points').textContent = Config.totalPoints;
document.getElementById('videos-watched').textContent = Config.videosWatched;
document.getElementById('games-played').textContent = Config.gamesPlayed;
document.getElementById('tasks-done').textContent = Config.tasksCompleted;
}
function saveStats() {
GM_setValue('totalPoints', Config.totalPoints);
GM_setValue('videosWatched', Config.videosWatched);
GM_setValue('gamesPlayed', Config.gamesPlayed);
GM_setValue('tasksCompleted', Config.tasksCompleted);
}
function resetStats() {
Config.totalPoints = 0;
Config.videosWatched = 0;
Config.gamesPlayed = 0;
Config.tasksCompleted = 0;
saveStats();
updateStats();
log('Stats reset!');
}
// ========================
// VIDEO AUTOMATION
// ========================
let currentVideo = null;
function findVideoPlayer() {
// Find video element
const video = document.querySelector('video');
if (video) {
currentVideo = video;
log('Video player found');
return video;
}
return null;
}
function applyVideoSpeed() {
if (currentVideo) {
currentVideo.playbackRate = Config.videoSpeedMultiplier;
log(`Video speed set to ${Config.videoSpeedMultiplier}x`);
}
}
function autoWatchVideo() {
const video = findVideoPlayer();
if (!video) return;
// Mute if enabled
if (Config.autoMute) {
video.muted = true;
video.volume = 0;
}
// Set speed
applyVideoSpeed();
// Auto-play
if (video.paused) {
video.play().catch(err => log('Autoplay blocked: ' + err));
}
// Listen for end
video.addEventListener('ended', () => {
Config.videosWatched++;
Config.totalPoints += 10; // Estimate points per video
saveStats();
updateStats();
log(`Video completed! Total videos: ${Config.videosWatched}`);
if (Config.autoNext) {
setTimeout(clickNextVideo, randomDelay());
}
});
log('Auto-watching video...');
setStatus('Watching Video');
}
function clickNextVideo() {
// Find "Next" or "Watch" button
const nextButtons = [
document.querySelector('button:contains("Next")'),
document.querySelector('button:contains("Watch")'),
document.querySelector('.next-video'),
document.querySelector('.watch-next'),
document.querySelector('a[href*="watch"]')
];
for (let btn of nextButtons) {
if (btn && btn.offsetParent !== null) {
log('Clicking next video...');
btn.click();
return;
}
}
// Fallback: find any video thumbnail
const thumbnails = document.querySelectorAll('.video-item, .video-card, [data-video-id]');
if (thumbnails.length > 0) {
const randomVideo = thumbnails[Math.floor(Math.random() * thumbnails.length)];
randomVideo.click();
log('Clicked random video');
}
}
function skipAds() {
if (!Config.skipAds) return;
// Find skip button
const skipButtons = [
document.querySelector('.skip-ad'),
document.querySelector('.ytp-ad-skip-button'),
document.querySelector('button:contains("Skip")'),
document.querySelector('[id*="skip"]')
];
for (let btn of skipButtons) {
if (btn && btn.offsetParent !== null) {
btn.click();
log('Skipped ad');
return;
}
}
// Force skip ad video
const adVideo = document.querySelector('video.ad-video, video[src*="ad"]');
if (adVideo) {
adVideo.currentTime = adVideo.duration - 0.1;
}
}
// ========================
// GAME AUTOMATION
// ========================
function detectGame() {
const url = window.location.href.toLowerCase();
if (url.includes('2048')) return '2048';
if (url.includes('backgammon')) return 'backgammon';
if (url.includes('blackjack')) return 'blackjack';
if (url.includes('chess')) return 'chess';
if (url.includes('checkers')) return 'checkers';
if (url.includes('connect')) return 'connect4';
return null;
}
function autoPlayGame() {
const gameType = detectGame();
if (!gameType) return;
log(`Auto-playing ${gameType}...`);
setStatus(`Playing ${gameType}`);
switch(gameType) {
case '2048':
play2048();
break;
case 'blackjack':
playBlackjack();
break;
case 'connect4':
playConnect4();
break;
default:
autoClickGame();
}
}
function play2048() {
// Spam arrow keys
const keys = ['ArrowUp', 'ArrowRight', 'ArrowDown', 'ArrowLeft'];
let moveCount = 0;
const interval = setInterval(() => {
const randomKey = keys[Math.floor(Math.random() * keys.length)];
document.dispatchEvent(new KeyboardEvent('keydown', { key: randomKey }));
moveCount++;
// Check for game over
if (moveCount > 200 || document.querySelector('.game-over')) {
clearInterval(interval);
Config.gamesPlayed++;
saveStats();
updateStats();
log('2048 game completed!');
setTimeout(() => {
clickNextGame();
}, Config.gameCompletionDelay);
}
}, 100);
}
function playBlackjack() {
// Auto hit/stand strategy
setTimeout(() => {
const hitBtn = document.querySelector('button:contains("Hit"), .hit-btn');
const standBtn = document.querySelector('button:contains("Stand"), .stand-btn');
if (hitBtn) hitBtn.click();
setTimeout(() => {
if (standBtn) standBtn.click();
Config.gamesPlayed++;
saveStats();
updateStats();
setTimeout(clickNextGame, Config.gameCompletionDelay);
}, 2000);
}, 1000);
}
function playConnect4() {
// Random column clicks
const interval = setInterval(() => {
const columns = document.querySelectorAll('.column, .game-cell');
if (columns.length > 0) {
const randomCol = columns[Math.floor(Math.random() * columns.length)];
randomCol.click();
}
// Check for win
if (document.querySelector('.winner, .game-over')) {
clearInterval(interval);
Config.gamesPlayed++;
saveStats();
updateStats();
setTimeout(clickNextGame, Config.gameCompletionDelay);
}
}, 1000);
setTimeout(() => clearInterval(interval), 60000); // Max 1 min per game
}
function autoClickGame() {
// Generic game auto-clicker
const clickInterval = setInterval(() => {
const clickables = document.querySelectorAll('button, .clickable, canvas, .game-cell');
if (clickables.length > 0) {
const random = clickables[Math.floor(Math.random() * clickables.length)];
random.click();
}
}, 500);
setTimeout(() => {
clearInterval(clickInterval);
Config.gamesPlayed++;
saveStats();
updateStats();
clickNextGame();
}, 30000); // 30 sec per game
}
function clickNextGame() {
const nextButtons = [
document.querySelector('button:contains("Next")'),
document.querySelector('.next-game'),
document.querySelector('a[href*="game"]')
];
for (let btn of nextButtons) {
if (btn) {
btn.click();
log('Moving to next game...');
return;
}
}
// Go back to games page
window.location.href = '/games';
}
// ========================
// FULL AUTO-FARM
// ========================
let farmingActive = false;
async function startFullAutoFarm() {
if (farmingActive) {
farmingActive = false;
setStatus('Stopped');
log('Auto-farming stopped');
return;
}
farmingActive = true;
log('🚀 Starting full auto-farm mode!');
setStatus('Farming');
while (farmingActive) {
// Watch videos
if (Config.autoWatch) {
await watchAllVideos();
}
// Play games
if (Config.autoPlayGames) {
await playAllGames();
}
// Random delay between cycles
await sleep(randomDelay(10000, 30000));
}
}
async function watchAllVideos() {
log('Starting video marathon...');
// Go to homepage
if (!window.location.href.includes('pixelpoint.tv/watch')) {
window.location.href = '/';
await sleep(3000);
}
// Click "Watch" button
const watchBtn = document.querySelector('button:contains("Watch")');
if (watchBtn) {
watchBtn.click();
await sleep(2000);
}
// Auto-watch loop
for (let i = 0; i < 50; i++) { // Watch 50 videos
if (!farmingActive) break;
autoWatchVideo();
// Wait for video to end
await waitForVideoEnd();
await sleep(randomDelay());
}
log('Video marathon complete!');
}
async function playAllGames() {
log('Starting game marathon...');
// Go to games page
window.location.href = '/games';
await sleep(3000);
// Get all game links
const gameLinks = document.querySelectorAll('.game-item a, [href*="game"]');
for (let link of gameLinks) {
if (!farmingActive) break;
link.click();
await sleep(3000);
autoPlayGame();
await sleep(Config.gameCompletionDelay + randomDelay());
}
log('Game marathon complete!');
}
// ========================
// UTILITIES
// ========================
function randomDelay(min = Config.minDelay, max = Config.maxDelay) {
if (!Config.randomDelays) return 0;
return Math.floor(Math.random() * (max - min + 1)) + min;
}
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
function waitForVideoEnd() {
return new Promise(resolve => {
if (!currentVideo) {
resolve();
return;
}
const checkEnd = setInterval(() => {
if (currentVideo.ended || currentVideo.paused) {
clearInterval(checkEnd);
resolve();
}
}, 1000);
// Timeout after 10 minutes
setTimeout(() => {
clearInterval(checkEnd);
resolve();
}, 600000);
});
}
function setStatus(status) {
const statusEl = document.getElementById('bot-status');
if (statusEl) {
statusEl.textContent = status;
}
}
// ========================
// ANTI-DETECTION
// ========================
// Override webdriver detection
Object.defineProperty(navigator, 'webdriver', { get: () => false });
// Random mouse movements
setInterval(() => {
const event = new MouseEvent('mousemove', {
clientX: Math.random() * window.innerWidth,
clientY: Math.random() * window.innerHeight
});
document.dispatchEvent(event);
}, 5000);
// ========================
// INITIALIZATION
// ========================
function init() {
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', init);
return;
}
setTimeout(() => {
createGUI();
log('cook45\'s Auto-Earner loaded! 🔥');
// Auto-detect and start
if (window.location.href.includes('/watch')) {
setTimeout(autoWatchVideo, 2000);
} else if (detectGame()) {
setTimeout(autoPlayGame, 2000);
}
// Set up ad skipper
setInterval(skipAds, 1000);
// Notification
GM_notification({
title: 'cook45\'s Auto-Earner',
text: 'Script loaded! Click "Start Farming" to begin.',
timeout: 5000
});
}, 2000);
}
// Start
init();
})();