Prime Video Ad Blocker [ESP]

Skip Ads in Prime Video.

当前为 2022-09-28 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Prime Video Ad Blocker [ESP]
  3. // @namespace https://greasyfork.org/en/users/5102-jeau
  4. // @version 0.2.1
  5. // @description Skip Ads in Prime Video.
  6. // @description:es Bloquea los anuncios en Prime Video.
  7. // @author Jeau
  8. // @license MIT
  9. // @match https://www.primevideo.com/*
  10. // @icon https://m.media-amazon.com/images/G/01/digital/video/DVUI/favicons/favicon-32x32.png
  11. // @grant none
  12. // ==/UserScript==
  13.  
  14. /*
  15. ------------------------------------------------------------------------
  16. Adapted for spanish Amazon site from RawMeatEater's script:
  17. https://greasyfork.org/es/scripts/446723-amazon-video-ad-blocker
  18. ------------------------------------------------------------------------
  19. */
  20.  
  21. (function() {
  22. 'use strict';
  23. // This value when true shows that the Ad has been skipped
  24. var adSkipped = false;
  25. setInterval(function() {
  26. var video;
  27. var renderer = document.getElementsByClassName("rendererContainer")[0];
  28. // Get the video element
  29. if (renderer) {
  30. video = renderer.querySelector('video');
  31. }
  32. // If video started playing and a 'Time to Skip' element is detected
  33. if (video && video.currentTime && document.getElementsByClassName("atvwebplayersdk-adtimeindicator-text")[0]) {
  34. // Has it been skipped aready? (To be sure that you don't skip forward twice)
  35. if ( adSkipped == false ) {
  36. var adTimeRegExp = /(\d\d:)?(\d\d:)?\d\d/;
  37. var adTimeElement = document.getElementsByClassName("atvwebplayersdk-adtimeindicator-text")[0];
  38. var currentAdTime;
  39. // Grab the Ad timer in HH:MM:SS format and split it into an array as soon as it is detected
  40. do {
  41. currentAdTime = adTimeElement.innerHTML.match(adTimeRegExp)[0].split(':');
  42. } while (!currentAdTime.length);
  43. // Calculate the Ad time in seconds
  44. var adTimeInSecs = 0;
  45. for (let i = 0; i < currentAdTime.length; i++) {
  46. adTimeInSecs += parseInt(currentAdTime[i]) * Math.pow(60, currentAdTime.length - 1 - i);
  47. }
  48. // Forward the video by how much Ad time the timer shows
  49. video.currentTime += adTimeInSecs;
  50. // Mark the Ad as skipped
  51. adSkipped = true;
  52. }
  53. } else {
  54. // When Ad timer disappers, reset the Ad skip value
  55. adSkipped = false;
  56. }
  57. }, 100);
  58. })();