10 days later

Still works great! Incredible…

Thanks a lot!

13 days later

i love you man thank you so much it worked

a month later

I did the exact same steps, but its requiring me to sign in, and the lectures are locked. I also tried reloading but nothing

    hi can you make the same script but for the net ninja websit please

    13 days later
    a month later

    IG they fixed it. it says opps when i use the script. any work around ?

    Here you go the working version:

    // ==UserScript==
    // @name         Freeship
    // @namespace    lemons
    // @version      1.5
    // @description  Unlock all Fireship PRO courses/lessons.
    // @author       lemons
    // @match        https://fireship.io/*
    // @icon         https://emojipedia-us.s3.dualstack.us-west-1.amazonaws.com/thumbs/120/apple/325/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==
    
    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)) - Number(document.querySelector("head").getAttribute("data-build")); // get id for vimeo video
        const youtubeId = atob(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
            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
        }
        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)
    19 days later

    bruh syler what is this? now it’s a video of some dude cooking noodles lmao XD

    Copy this Script and past to tampermonkey delete the previous script

    Mega link

    Oops!

    The embed code for this video is not valid.

    this is the error checked on multiple browsers same issue

    22 days later

    we can’t access the site because it asks for sign-up the scripts don’t work anymore.

    a month later

    Hii, its saying that “Sorry This Video does not exist”, please help

    use this script working as of (5 June 2024)
    // ==UserScript==

    // @name 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==

    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)

    a month later

    New Script

    // ==UserScript==
    
    // @name 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==
    
    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)