Updated May 2026

MakeYouTask Macro V2: Smarter, More Reliable

📲 Platform Overhaul — May 2026: Desktop Video Earning Is Gone

MakeYouTask completed a full platform overhaul in May 2026. Video earning is now mobile-only. These Tampermonkey desktop scripts no longer have anything to automate in the video earning section — that section simply does not exist on the desktop version of the platform anymore. This is a deliberate architectural decision by MakeYouTask, not a bug — it will not be fixed with a script tweak.

Script #1 (dashboard manager) may still work for any non-video PTC tasks that remain on desktop, but Script #2 (the video handler) is currently non-functional for its intended purpose. Do not spend time installing Script #2 expecting video automation on desktop — there are no video tasks to automate there. A new Android/MacroDroid macro for the updated mobile platform is in development — I'll publish it here when it's ready.

Full breakdown of what changed in the May 2026 overhaul →

Disclosure

This article contains referral links to MakeYouTask. If you sign up through my link, I may earn a commission at no cost to you. I only recommend platforms I've personally tested. See my full disclaimer.

The MakeYouTask Macro V2 is an updated Tampermonkey automation script with smarter error handling — it auto-restarts short videos, closes age-restricted and unavailable tabs, handles live stream queues, and attempts captcha auto-click. It was a meaningful improvement over V1 under the old platform. As of May 2026, the desktop video earning section no longer exists after MakeYouTask's platform overhaul, so Script #2 is currently non-functional for video earning. Script #1 may still be useful for dashboard tasks. A mobile macro replacement is in progress.

When I published the original MakeYouTask automation guide, I wasn't sure how many people would actually use it.

Turns out — a lot of you did. And a lot of you came back with feedback.

The reports you sent in — the edge cases, the bug descriptions, the "hey this doesn't work when..." messages — these are exactly what made V2 possible. This update exists because of you, and it's a meaningfully better script because of it.

Below is the full V2 code, documentation of what changed and why, and honest context about where things stand now that the platform has been overhauled. If you're coming here fresh in mid-2026, read the warning callout above first.

Here's what you told me was breaking, and here's what V2 does about it.

What's New in V2

The Dashboard Manager (Script #1) hasn't changed — it was working well and doing exactly what it should. All the improvements are in the Terminator script (Script #2), which handles the video playback side of things.

The four things V2 fixes:

  • Short videos under 10 seconds: Some ads are only 6–8 seconds long. Previously the video would end and just sit there, stalling the flow. V2 now detects short videos and auto-restarts them, so the tab stays active until the PTC timer finishes.
  • Age-restricted & embed-disabled videos: YouTube sometimes blocks videos from playing in embedded players — age gates, restricted content, region locks. Before, these would just hang. V2 detects the error state and closes the tab automatically so the script can move on.
  • Live stream queues: Two readers flagged that some video slots contain live streams that haven't started yet — you get a waiting room that never resolves. V2 detects the offline slate and the live stream queue, and closes those tabs rather than waiting indefinitely.
  • Captcha auto-click attempt: V2 now tries to nudge the captcha widget when the page loads. This works reliably for Cloudflare Turnstile (which often auto-resolves for real browsers anyway), and makes a best-effort attempt for reCAPTCHA. Due to browser security, it can't click inside a cross-origin captcha iframe — but for sites where the captcha auto-passes, this speeds things up.

Net Result (Under the Old Platform)

The script handled the most common failure modes automatically. Instead of hanging on a broken video tab and stalling everything, V2 detected the problem and got out of the way. The whole session ran more smoothly with less babysitting. Under the pre-overhaul platform, this made a real difference in sessions with lots of video variety.

Script #1 – PTC Dashboard Manager (Unchanged)

This script handles the MakeYouTask dashboard — auto-clicking "Watch Video" buttons and tracking which ads you've already seen. No changes needed here; it was still running well when the platform changed.

If you already have this installed from the original guide, you don't need to update it. If you're setting up fresh, install it now. It may still be useful for non-video PTC tasks on the desktop platform.

Script #1 — Copy this entire script:

// ==UserScript==
// @name         PTC Dashboard Manager (Persistent)
// @match        *://makeyoutask.com/ptc*
// @grant        none
// @version      2026.02.11
// ==/UserScript==

(function() {
    'use strict';

    const MAX_HISTORY = 100;

    function processDashboard() {
        if (document.hidden) return;

        // 1. Handle "OK" / Success Popups
        const okBtn = document.querySelector('.swal2-confirm');
        if (okBtn && okBtn.offsetParent !== null) {
            console.log("[PTC] Success popup found. Clicking OK...");
            okBtn.click();
            return;
        }

        // 2. Get click history
        let clickedAds = JSON.parse(localStorage.getItem('ptc_clicked_history') || "[]");

        // 3. Find fresh ads
        let availableAds = Array.from(document.querySelectorAll('a, button')).filter(el => {
            const textMatch = el.innerText.includes("Watch Video");
            const isVisible = el.offsetParent !== null;
            const adId = el.href || el.innerText + el.className;
            return textMatch && isVisible && !clickedAds.includes(adId);
        });

        // 4. Click next available
        if (availableAds.length > 0) {
            const targetAd = availableAds[0];
            const targetId = targetAd.href || targetAd.innerText + targetAd.className;

            console.log("[PTC] Next ad found. Clicking in 3s...");

            setTimeout(() => {
                clickedAds.push(targetId);
                if (clickedAds.length > MAX_HISTORY) clickedAds.shift();
                localStorage.setItem('ptc_clicked_history', JSON.stringify(clickedAds));

                targetAd.scrollIntoView({ behavior: 'smooth', block: 'center' });
                targetAd.click();
            }, 3000);
        } else {
            console.log("[PTC] No new ads found on this page.");
        }
    }

    setInterval(processDashboard, 5000);
})();

What this script does:

  • Automatically clicks "OK" on success popups
  • Finds fresh "Watch Video" buttons
  • Tracks clicked ads in localStorage (won't click the same ad twice)
  • Auto-clicks the next available task every 5 seconds

Script #2 – PTC Video & Tab Handler V2 (Updated)

Replace your existing Script #2 with this one. This is where all the V2 improvements live.

If you're installing fresh: add a new script in Tampermonkey, delete the default code, paste this in, and save. Note that as of the May 2026 overhaul, this script has no video tasks to handle on desktop. I'm keeping the code here for reference and for anyone still on the old platform version.

Script #2 V2 — Copy this entire script:

// ==UserScript==
// @name         PTC Video & Tab Handler (Terminator)
// @match        *://*/ptc/view/*
// @match        *://*.youtube.com/embed/*
// @match        *://www.youtube.com/watch*
// @grant        window.close
// @run-at       document-start
// @allFrames    true
// ==/UserScript==

(function() {
    'use strict';

    const hostname = window.location.hostname;
    const pathname = window.location.pathname;

    // ── Helper ────────────────────────────────────────────────────────────────

    const closeTab = () => {
        window.close();
        try { window.top.close(); } catch(e) {}
        if (!window.closed) {
            window.location.href = 'about:blank';
            setTimeout(() => window.close(), 500);
        }
    };

    // ── 1. YouTube Embed Logic ────────────────────────────────────────────────
    if (hostname.includes('youtube.com') && pathname.includes('/embed/')) {

        let videoHandlersAttached = false;

        // Close tab on error/restriction/live-queue states
        const checkForErrors = () => {
            if (document.querySelector('.ytp-error, .ytp-age-gate, .ytp-age-gate-overlay')) {
                console.log('[PTC] Video unavailable or age-restricted. Closing tab.');
                closeTab(); return true;
            }
            const watchOnYT = document.querySelector('.ytp-watch-on-youtube');
            if (watchOnYT && watchOnYT.offsetParent !== null) {
                console.log('[PTC] Video restricted to YouTube only. Closing tab.');
                closeTab(); return true;
            }
            if (document.querySelector('.ytp-offline-slate')) {
                console.log('[PTC] Live stream queue detected. Closing tab.');
                closeTab(); return true;
            }
            return false;
        };

        const attachVideoHandlers = (video) => {
            if (videoHandlersAttached) return;
            videoHandlersAttached = true;

            video.addEventListener('loadedmetadata', () => {
                if (!isFinite(video.duration)) {
                    console.log('[PTC] Live stream (infinite duration). Closing tab.');
                    closeTab(); return;
                }
                if (video.duration < 10) {
                    console.log(`[PTC] Short video (${video.duration.toFixed(1)}s) – auto-restart enabled.`);
                }
            });

            // Auto-restart videos shorter than 10 seconds
            video.addEventListener('ended', () => {
                if (video.duration < 10) {
                    console.log(`[PTC] Short video ended – restarting.`);
                    video.currentTime = 0;
                    video.play().catch(() => {});
                }
            });
        };

        const forcePlay = () => {
            const video = document.querySelector('video');
            if (!video) return;
            video.muted = true;
            video.volume = 0;
            attachVideoHandlers(video);
            const player = document.querySelector('#movie_player');
            if (player && typeof player.playVideo === 'function') player.playVideo();
            video.play().catch(() => {
                const bigPlay = document.querySelector('.ytp-large-play-button');
                if (bigPlay) bigPlay.click();
            });
        };

        // Poll: force-play + check for errors until video is running
        const playInterval = setInterval(() => {
            if (checkForErrors()) { clearInterval(playInterval); return; }
            const v = document.querySelector('video');
            if (v && v.paused) forcePlay();
            else if (v && !v.paused) clearInterval(playInterval);
        }, 1500);

        setTimeout(() => clearInterval(playInterval), 15000);

        // Keep checking for errors for slow-loading restricted videos
        const errorPoll = setInterval(() => {
            if (checkForErrors()) clearInterval(errorPoll);
        }, 2000);
        setTimeout(() => clearInterval(errorPoll), 15000);
    }

    // ── 2. Watch Page Logic (Aggressive Termination) ──────────────────────────
    if (hostname.includes('youtube.com') && pathname.startsWith('/watch')) {
        console.log('[PTC] Watch page detected – closing tab.');
        const terminate = () => {
            window.close();
            const s = document.createElement('script');
            s.text = "window.open('','_self').close();";
            document.body?.appendChild(s);
            if (!window.closed) {
                window.location.href = 'about:blank';
                setTimeout(() => window.close(), 500);
            }
        };
        setTimeout(terminate, 1200);
        setTimeout(terminate, 3000);
    }

    // ── 3. PTC Verification Logic ─────────────────────────────────────────────
    if (window.top === window.self && pathname.includes('/ptc/view/')) {

        // Best-effort captcha click.
        // Cloudflare Turnstile often auto-solves for real browsers.
        // reCAPTCHA v2 is cross-origin so only the outer container can be nudged.
        const tryClickCaptcha = () => {
            const turnstile = document.querySelector('.cf-turnstile');
            if (turnstile) { turnstile.click(); return; }

            const recaptcha = document.querySelector('.g-recaptcha');
            if (recaptcha) { recaptcha.click(); return; }

            const iframe = document.querySelector(
                'iframe[src*="recaptcha"], iframe[src*="challenges.cloudflare"], iframe[title*="captcha" i], iframe[title*="reCAPTCHA"]'
            );
            if (iframe) (iframe.parentElement || iframe).click();
        };

        // Early nudges after page settles
        setTimeout(tryClickCaptcha, 1500);
        setTimeout(tryClickCaptcha, 3500);

        const checkCaptchaAndVerify = setInterval(() => {
            const cfResponse =
                document.querySelector('[name="cf-turnstile-response"]')?.value ||
                document.querySelector('[name="g-recaptcha-response"]')?.value;

            const isSolved = cfResponse && cfResponse.length > 10;
            const btn = document.querySelector('#verify');

            if (!isSolved) {
                tryClickCaptcha();
                console.log('[PTC] Waiting for captcha...');
                return;
            }

            if (btn && !btn.disabled && btn.offsetParent !== null) {
                clearInterval(checkCaptchaAndVerify);
                console.log('[PTC] Captcha confirmed. Clicking verify in 2s...');
                setTimeout(() => { btn.click(); console.log('[PTC] Claim clicked.'); }, 2000);
            }
        }, 2000);
    }
})();

What's changed in V2:

  • Short videos (<10s) now auto-restart so the tab stays active
  • Age-restricted and embed-disabled videos are detected and the tab closes automatically
  • Live stream queues are detected (both by player state and infinite video duration) and closed
  • Captcha widget is nudged automatically on page load
  • Shared closeTab() helper with multiple fallbacks for more reliable tab closure

How to Update (If You Already Have V1)

Updating takes about 30 seconds.

  1. Click the Tampermonkey extension icon
  2. Click Dashboard
  3. Find "PTC Video & Tab Handler (Terminator)"
  4. Click the edit (pencil) icon
  5. Select all the existing code and delete it
  6. Paste in the V2 script above
  7. Click File → Save

That's it. Your Dashboard Manager script (Script #1) stays exactly as it is.

Fresh Install?

If you haven't set up the macros at all yet, start with the original guide which walks through the full Tampermonkey setup step-by-step. Then come back here and use the V2 script above for Script #2. Be aware that as of May 2026, Script #2 has no video tasks to handle on desktop — check the overhaul post for current status.

What to Expect Now

Under the old platform, V2 running made a session look noticeably cleaner. Fewer stalled tabs, less manual intervention to get things unstuck.

The most visible improvement was on sessions with a lot of video variety. When the script hit a restricted or unavailable video, it closed and moved on instead of hanging. Short video ads looped in the background without stalling out. If a captcha auto-passed (which Cloudflare Turnstile did frequently for real browsers), you didn't need to touch it.

You still needed to manually solve captchas when they required it — that was intentional. Staying present and solving captchas is what keeps your account in good standing. V2 reduces the time you waste on the automation side; it doesn't replace human involvement.

With the May 2026 overhaul, the video earning section has moved to mobile. If you're reading this looking for a working mobile solution, that's in development. The overhaul breakdown has more detail on what's changed and what's still working.

Still Semi-Passive, Not a Bot

V2 was designed to assist — not replace — an active session. Monitor the process, solve captchas when they appear, and keep an eye on progress. As long as you're present, the ban risk remains zero.

Honest Assessment: Is It Worth Setting Up Now?

If you're asking whether to install these scripts right now in mid-2026, the honest answer is: probably not yet.

Script #2 has no desktop video tasks to handle after the overhaul. Script #1 may still work for any non-video PTC tasks that survived the transition, but I haven't confirmed what remains on the desktop platform post-overhaul. The MakeYouTask 2026 update post covers what the platform looks like now.

The scripts are here for two reasons. First, for anyone who was running them before the overhaul and wants the V2 code. Second, as a reference point for the mobile macro I'm building — the logic for handling video errors, tab closures, and captcha nudges in V2 will carry forward into the Android version.

I'm not going to tell you to spend 30 minutes setting something up that doesn't currently work for its primary purpose. That's not how I operate this site. When the mobile macro is ready, I'll post it, test numbers will be in the article, and you'll know what you're actually getting into.

In the meantime, MakeYouTask is still worth having an account on. The faucet and other earning methods are unaffected by the video overhaul. The full MakeYouTask review covers what the platform pays and where it's genuinely worth your time.

Keep the Feedback Coming

This update only happened because people told me what wasn't working. If V2 throws up something unexpected — a new error state, a weird edge case, something that doesn't close when it should — let me know.

The goal is for this to work as smoothly as possible for everyone using it. Reader feedback is the fastest way to get there.

If MakeYouTask makes further changes that affect these scripts, I'll update them. That's just part of maintaining something like this. Same goes for the mobile macro when it's ready.

Final Thoughts

Bottom Line

V2 was a meaningful improvement over V1 in real-world conditions under the old platform. The core flow was the same — Script #1 handles the dashboard, Script #2 handles video playback — but V2 handled the edge cases that were causing sessions to stall. As of May 2026, the desktop video earning section is gone after the platform overhaul, so Script #2 is temporarily without a job. A mobile macro replacement is in development. MakeYouTask itself is still active and paying — just on mobile for video tasks now.

Related Reading