Unlock a Free Fireship.io PRO Account with Our Tampermonkey Script! 🔓

Step 1: Install The tampermonkey chrome extension Tampermonkey


Step 2: Add the extension to the chrome

Step 3: Click on Tampermonkey Chrome Extension and Click to Create a New Script


Step 4: Change Script

Script LINK

Step 5: Enable the Script in the fireship.io page


Step 6: Go ahead and watch any Pro Fireship course


Note: Please check all steps before posting anything; refresh the page if it asks for sign in at course section

Credits: CH Admin

11 Likes

Thank you!

1 Like

Yes, as image shows it’s working but all videos are not playable sometime it’s showing privacy error and after reload it’s just blank. But yes it’s working as like image. if possible please solve the issue show we can injoy those videos :no_mouth:

Thank you
God bless you

I’m using this script, just paste it once into the console and I’m done, no issues with it for many months:

setInterval(() => {
    document.querySelectorAll("[free=\"\"]").forEach(el => el.setAttribute("free", true)) // set all elements with the attribute free set to "" to true
 
    if (document.querySelector("if-access [slot=\"granted\"]")) { // replace HOW TO ENROLL to YOU HAVE ACCESS
        document.querySelector("if-access [slot=\"denied\"]").remove()
        document.querySelector("if-access [slot=\"granted\"]").setAttribute("slot", "denied")
    }
 
    if (document.querySelector("video-player")?.shadowRoot?.querySelector(".vid")?.innerHTML) return; // return if no video player
    const vimeoId = document.querySelector("global-data").vimeo; // get id for vimeo video
    const youtubeId = document.querySelector("global-data").youtube; // get id for vimeo video
 
    if (vimeoId) { // if there is an id,
        document.querySelector("video-player").setAttribute("free", true) // set free to true
        document.querySelector("video-player").shadowRoot.querySelector(".vid").innerHTML = `<iframe src="https://player.vimeo.com/video/${vimeoId}" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen="" title="${location.pathname.split("/")[3]}" width="426" height="240" frameborder="0"></iframe>` // set video
    }
    if (youtubeId) { // if there is an id,
        document.querySelector("video-player").setAttribute("free", true) // set free to true
        document.querySelector("video-player").shadowRoot.querySelector(".vid").innerHTML = `<iframe src="https://youtube.com/embed/${youtubeId}" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen="" title="${location.pathname.split("/")[3]}" width="426" height="240" frameborder="0"></iframe>` // set video
    }
}, 100)

I hope this solves your problem. The code is almost identical with the one provided on tampermonkey, I hope this solves it. Fireship guy most probably left this intented for people that really want to learn but don’t want to pay. Kind of a nice gesture that if there’s a want there’s always gonna be how.

Happy learning, he has really nice coures and makes fun most of the time.

5 Likes

Brilliant. working for me

it did not work for me so i found the latest version and updated it to hide the pro buttons too : `// ==UserScript==
// @name :fire: Freeship
// @namespace lemons
// @version 1.7
// @description Unlock all Fireship PRO courses/lessons.
// @author lemons
// @match https://fireship.io/*
// @icon https://em-content.zobj.net/source/apple/391/fire_1f525.png
// @grant none
// @downloadURL https://update.greasyfork.org/scripts/455330/Freeship.user.js
// @updateURL https://update.greasyfork.org/scripts/455330/Freeship.meta.js
// ==/UserScript==

const ifProElement = document.querySelector(‘if-pro’);
ifProElement.style.display = ‘none’;

setInterval(async () => {
document.querySelectorAll(“[free=""]”).forEach(el => el.setAttribute(“free”, true)) // set all elements with the attribute free set to “” to true

if (document.querySelector("if-access [slot=\"granted\"]")) { // replace HOW TO ENROLL to YOU HAVE ACCESS
    document.querySelector("if-access [slot=\"denied\"]").remove()
    document.querySelector("if-access [slot=\"granted\"]").setAttribute("slot", "denied")
}

if (document.querySelector("video-player")?.shadowRoot?.querySelector(".vid")?.innerHTML) return; // return if no video player
const vimeoId = Number(atob(document.querySelector("global-data").vimeo)); // get id for vimeo video
const youtubeId = atob(document.querySelector("global-data").youtube); // get id for vimeo video

if (youtubeId) { // if there is an id,
    document.querySelector("video-player").setAttribute("free", true) // set free to true
    document.querySelector("video-player").shadowRoot.querySelector(".vid").innerHTML = `<iframe src="https://youtube.com/embed/${youtubeId}" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen="" title="${location.pathname.split("/")[3]}" width="426" height="240" frameborder="0"></iframe>` // set video
    return;
}
if (vimeoId) { // if there is an id,
    document.querySelector("video-player").setAttribute("free", true) // set free to true
    const html = (await fetch(`https://vimeo.com/api/oembed.json?url=https%3A%2F%2Fvimeo.com%2F${vimeoId}&id=${vimeoId}`).then(r=>r.json())).html
    document.querySelector("video-player").shadowRoot.querySelector(".vid").innerHTML = html // set video
    return;
}

}, 100)`

1 Like

works fine for me! thanks!

1 Like