unlock lpsg videos

unlock lpsg video access. may need to manually switch video format since I can't figure out a way to find it.

As of 2023-10-01. See the latest version.

  1. // ==UserScript==
  2. // @name unlock lpsg videos
  3. // @namespace MBing
  4. // @version 1.1
  5. // @description unlock lpsg video access. may need to manually switch video format since I can't figure out a way to find it.
  6. // @author MBing
  7. // @match https://www.lpsg.com/*
  8. // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
  9. // @grant none
  10. // @license MIT
  11. // ==/UserScript==
  12.  
  13. (function() {
  14. 'use strict';
  15.  
  16. var easterEggBlocker = document.getElementsByClassName("video-easter-egg-blocker");
  17. var easterEggOverlay = document.getElementsByClassName("video-easter-egg-overlay");
  18. var easterEggPoster = document.getElementsByClassName("video-easter-egg-poster");
  19. var easterEggPosterReplacement=[];
  20. var imageUrl;
  21. var videoUrl;
  22. for (var i=easterEggPoster.length-1;i>-1;i--){
  23. void(imageUrl =easterEggPoster[i].children[0].src);
  24. void(videoUrl=imageUrl.replace("attachments/posters","video").replace("/lsvideo/thumbnails","lsvideo/videos").replace(".jpg",".mp4"));
  25. void(easterEggPosterReplacement[i]=`<video controls=\"\" data-xf-init=\"video-init\" data-poster=\"${imageUrl}\" class=\"\" style=\"\" poster=\"${imageUrl}\"><source data-src=\"${videoUrl}\" src=\"${videoUrl}\"><div class=\"bbMediaWrapper-fallback\">Your browser is not able to display this video.</div></video>`);
  26. void(easterEggPoster[i].innerHTML=easterEggPosterReplacement[i]);
  27.  
  28. easterEggPoster[i].parentElement.parentElement.append(createButton("mov",i));
  29. easterEggPoster[i].parentElement.parentElement.append(createButton("m4v",i));
  30. easterEggPoster[i].parentElement.parentElement.append(createButton("mp4",i));
  31.  
  32. void(easterEggOverlay[i].parentElement.removeChild(easterEggOverlay[i]));
  33. void(easterEggBlocker[i].parentElement.removeChild(easterEggBlocker[i]));
  34.  
  35.  
  36. }
  37.  
  38. function createButton(format,entryId){
  39. var inp;
  40. inp = document.createElement("input");
  41. inp.type = "button";
  42. inp.value = format;
  43. inp.id = entryId;
  44. inp.addEventListener('click', function () {
  45. var oldUrl = document.getElementsByClassName("video-easter-egg-poster")[this.id].innerHTML;
  46. document.getElementsByClassName("video-easter-egg-poster")[this.id].innerHTML=oldUrl.replaceAll("mp4",format).replaceAll("m4v",format).replaceAll("mov",format);
  47. });
  48. return inp;
  49. }
  50.  
  51. })();