[Method] Stream SkillCapped videos for free

08/26/2023 06:52 allukem#61
08/26/2023 - Working on LoL videos.
(I had to remove the last part of the URL in order to make it work)

Example:

The full link of a video is
[...]skill-capped[...]/lol/browse/course/2y0wx9m17c/qjfzl53qbd

I had to remove the last part of the link:
[...]skill-capped[...]/lol/browse/course/2y0wx9m17c
08/31/2023 11:05 tul8te#62
Quote:
Originally Posted by allukem View Post
08/26/2023 - Working on LoL videos.
(I had to remove the last part of the URL in order to make it work)

Example:

The full link of a video is
[...]skill-capped[...]/lol/browse/course/2y0wx9m17c/qjfzl53qbd

I had to remove the last part of the link:
[...]skill-capped[...]/lol/browse/course/2y0wx9m17c
When I do that it shows me that the browser not supported HLS, please use a modern browser such as Chrome ?
Can you help me please !
09/06/2023 10:48 raccoon3301#63
The html is not working anymore, forever refreshing. Can you please check it? Thank you:feelsbadman:
09/07/2023 14:06 ahmedtremo#64
HLS not supported. Please use a modern browser such as Chrome. not working anyone find a solution?
09/08/2023 16:25 mroep#65
I just found out how you can download the videos but has a bug you cant play the video in the browser tho (btw use chat gpt for this btw the tutorial link was alot of help)

will post the html code soon

UPDATE:(I was planning to add a resolution changer but it doesnt work so forget that) NVM I FOUND AWAY lowers the downloading speed tho

having issues while adding both streaming and downloading tbh i will just remove streaming just downloading from now on you can use the old html code anyways its still works

(i use firefox the extension i use is CORS unblock) idk how but i can download without CORS unblock i tried it in min browser and librewolf(firefox) and it download without CORS

SNEAK PEAK
[Only registered and activated users can see links. Click Here To Register...]

I just posted the code here: [Only registered and activated users can see links. Click Here To Register...]
09/09/2023 15:42 tul8te#66
Quote:
Originally Posted by mroep View Post
I just found out how you can download the videos but has a bug you cant play the video in the browser tho (btw use chat gpt for this btw the tutorial link was alot of help)

will post the html code soon

UPDATE:(I was planning to add a resolution changer but it doesnt work so forget that) NVM I FOUND AWAY lowers the downloading speed tho

having issues while adding both streaming and downloading tbh i will just remove streaming just downloading from now on you can use the old html code anyways its still works

(i use firefox the extension i use is CORS unblock) idk how but i can download without CORS unblock i tried it in min browser and librewolf(firefox) and it download without CORS

SNEAK PEAK
[Only registered and activated users can see links. Click Here To Register...]

I just posted the code here: [Only registered and activated users can see links. Click Here To Register...]
teemo icon is just spinning and nothing happens and this message show in console in inspect can you help me plz
(Uncaught (in promise) ReferenceError: can't access lexical declaration 'rgx' before initialization
downloadAndMergeVideo file:///C:/Users/MSI/Desktop/Skill cappped.html:107
onclick file:///C:/Users/MSI/Desktop/Skill cappped.html:1)
09/18/2023 16:14 mroep#67
Quote:
Originally Posted by tul8te View Post
teemo icon is just spinning and nothing happens and this message show in console in inspect can you help me plz
(Uncaught (in promise) ReferenceError: can't access lexical declaration 'rgx' before initialization
downloadAndMergeVideo file:///C:/Users/MSI/Desktop/Skill cappped.html:107
onclick file:///C:/Users/MSI/Desktop/Skill cappped.html:1)
hmm maybe use another browser?
09/28/2023 17:49 JeroentjeXD#68
It keeps loading...
10/14/2023 10:46 Icemangt#69
Same, it stays loading :(

17/10/2023 >> It's working, have to re install the browser and extension. Highly appreciated.
10/25/2023 11:03 huda0#70
Thnks bro
10/28/2023 13:12 Superfiuri#71
for me its blocked on every browser i tried 3 :(...
Chrome, edge and opera wont work
10/28/2023 19:39 Dreadrift#72
I did everything in the guide and all seems to go well but when i open the browser only appears an empty video and a url search bar when i click search it says its an invalid url
10/28/2023 19:46 Doppelbemme#73
Quote:
Originally Posted by huda0 View Post
Thnks bro
What did you do?
I set up the html page, activated the extensions and then went on skillcapped, copied this URL in the farm:

[Only registered and activated users can see links. Click Here To Register...]

but it doesn't load the vid.

Nvmd.

You need to remove the last part of the URL. Everything from the last / and afterwards.

I added a download button and functionality.
I also added a link strip which cuts away the last part of the URL so you can just paste it in from Skillcapped.
Code:
<!doctype html>
<html lang="en">

<head>
  <meta charset="utf-8">
  <title>SkillUncapped</title>
</head>
<label>url: </label>
<input onkeyup="if (event.key =='Enter') stream()" style="width: 300px;" id="url"
  placeholder="https://www.skill-capped.com/lol/commentaries/p1qcnwqt75" />
<button style="width: 80px;" onclick="stream()">Stream</button>
<label style="display: block;" id="status"></label>
<script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>
<video style="display: block; margin-top: 16px; margin-bottom: 16px;" height="720" width="1280" id="video" controls
  autoplay crossorigin="anonymous" />

<script>
  var hls = null;

  if (Hls.isSupported()) {
    var hlsjsConfig = {
      "maxBufferSize": 0,
      "maxBufferLength": 30,
      "startPosition": 0
    }
    hls = new Hls(hlsjsConfig);
    hls.on(Hls.Events.MANIFEST_PARSED, function () {
      video.play();
    });
  }

  const rgx = /([a-z0-9]{10})(:?\/|$)/g;

  async function stream() {
    if (hls == null) {
      alert("HLS not supported, please use a modern browser such as Chrome");
      return;
    }

    let rawUrl = document.getElementById("url").value;
    rawUrl = rawUrl.replace(/\/[^/]*$/, '');
    let ids = [];
    let match = null;

    while ((match = rgx.exec(rawUrl)) !== null) {
      ids.push(match[1]);
    }

    if (ids.length < 1) {
      alert("Invalid URL");
      return;
    }

    const videoId = rawUrl.includes("browse3") ? ids[0] : ids[ids.length - 1];
    let statusLabel = document.getElementById("status");

    console.log(`Video ID is ${videoId}`);
    console.log("Looking for the final part...");
    let last = 0;
    let jump = true;

    for (let i = 300; i <= 1000; i++) {
      if (i == 1000) {
        alert("Error finding the last part");
        return;
      }

      if (i == 0) i = 1;

      const url = `https://d13z5uuzt1wkbz.cloudfront.net/${videoId}/HIDDEN4500-${String(i).padStart(5, "0")}.ts`;
      console.log(`Testing ${url}`);
      statusLabel.innerText = `Looking for the final part; Testing ${i}...`;
      try {
        const resp = await fetch(url, { method: 'HEAD' });
        if (resp.status === 403) {
          if (i >= 50 && i % 50 === 0 && jump) {
            last = i;
            jump = true;
            i -= 51;
            continue;
          }

          break;
        }
        last = i;
        jump = false;
      } catch (e) {
        alert("Fetch failed, please install a Cross-Origin disabler extension for your browser or check your internet connectivity.");
        return;
      }
    }

    statusLabel.innerText = "";

    let data = "#EXTM3U\n#EXT-X-PLAYLIST-TYPE:VOD\n#EXT-X-TARGETDURATION:10";
    for (let i = 0; i <= last; i++) {
      data += `#EXTINF:10,\nhttps://d13z5uuzt1wkbz.cloudfront.net/${videoId}/HIDDEN4500-${String(i).padStart(5, "0")}.ts\n`
    }

    console.log(data);

    // Load the media for streaming
    hls.loadSource("data:application/x-mpegURL;base64," + btoa(data));
    hls.attachMedia(video);

    // Add a download button for users to download the media
    const downloadButton = document.createElement("a");
    downloadButton.classList.add("downloadBtn");
    downloadButton.textContent = "Download Media";
    downloadButton.href = `data:application/x-mpegURL;base64,${btoa(data)}`;
    downloadButton.download = "your_media_file.m3u8"; // Specify the filename for download
    document.body.appendChild(downloadButton);


    // Add a click event listener to the download button
    downloadButton.addEventListener("click", function () {
      // Clear the player by stopping and unloading it
      hls.stopLoad();
      hls.detachMedia();

      // Remove the download button
      document.body.removeChild(downloadButton);
      document.getElementById("url").value = "";
    });
  }

</script>

<style>
  .downloadBtn {
    font-family: sans-serif;
    text-decoration: none;
    padding: 8px 16px;
    background-color: #33b249;
    color: #fff;
    font-weight: 700;
    font-size: 1rem;
    margin-left: auto;
    border-radius: 4px;
    position: absolute;
    left: 640px;
    transform: translateX(-50%);
    transition: background-color 250ms ease-in;
  }

  .downloadBtn:hover {
    background-color: #2ea042;
  }
</style>
</body>

</html>
12/14/2023 13:00 Campfire999#74
What exactly am I supposed to do after setting all of this up?
12/14/2023 22:33 kosseq#75
works, thanks