Auto-watch videos, auto-play games, farm points on PixelPoint.TV
Dieses Skript sollte nicht direkt installiert werden. Es handelt sich hier um eine Bibliothek für andere Skripte, welche über folgenden Befehl in den Metadaten eines Skriptes eingebunden wird // @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();
})();