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)
    2 months later
    2 months later

    After enabling the script in tamper monkey, I had access to the courses for some time…but recently, I get this error in sit

    25 days later

    I am getting this error anyone know how to fix it

    4 months later

    Version 1.12 doesn’t work anymore.
    Is there any other way?

    thank you soo much bro really thank you for that

      Doesn`t work. The script cannot be enabled on the website.