Hide videos that are in playlist

When you are adding videos to your playlists Sometimes you don't remember if you've already added that video. This script puts an H button next to the search bar to Hide videos you've already added to your playlists, so there are no duplicate videos in your playlists.

// ==UserScript==
// @name            Hide videos that are in playlist
// @name:es       Ocultar vídeos que estan en la lista de reproduccion
// @namespace   https://greasyfork.org/es/users/758165-AlÉxito
// @match           https://www.youtube.com/*
// @version         1.2
// @author           AlExito
// @description   When you are adding videos to your playlists Sometimes you don't remember if you've already added that video. This script puts an H button next to the search bar to Hide videos you've already added to your playlists, so there are no duplicate videos in your playlists.
// @description:es   Cuando estas agregando videos a tus listas de reproduccion a veces no recuerdas si ya has agregado ese video. Este script pone un  botón H  junto a la barra de busqueda  para Ocultar videos que ya agregaste a tus listas de reproducción, para que no haya videos duplicados en tus listas.
// @license          MIT   feel free to modify improve and share
// @noframes
// ==/UserScript==

(function () {
  function action1(head) {
        var hvipbut = document.createElement("button");
        var aEtiquetc = document.createElement("p");
        hvipbut.id = "hvip";
        hvipbut.setAttribute("style", "z-index: 9999;padding: 6px 10px;background-color: #0f0f0f;cursor: pointer;border: 1px solid #2b3465;");
        aEtiquetc.setAttribute("style", "color: #7af;font-size: 20px !important;line-height: 25px;height: 25px;text-transform: capitalize;");
        aEtiquetc.setAttribute("title", "Hide videos that are in playlist");
        aEtiquetc.textContent = "H";
        hvipbut.appendChild(aEtiquetc);
        document.querySelector("#masthead > #container > #center").appendChild(hvipbut);
        hvipbut.onclick = function () {
         var count = 0;
         var urlist = [];
         var array1 = [];
         actiona(count, urlist);
        };
function actiona(count, urlist, array1){
var index = ["WL", "PLo29ME-MyPlAyLiSt-0vukQAqlG6R"];  // Add your playlist ID in this line
var canti = index.length;
    if(count < canti){
    var url = "https://www.youtube.com/playlist?list=" + index[count];

            const xhr = new XMLHttpRequest()
            xhr.open('GET', url)
            xhr.onload = function()
            {
      var pleylistvidylistvid = xhr.responseText.toString().replace(/webCommandMetadata":{"url":"/g, '\n').replace(/\\u0026list=/g, '\n');
         if(pleylistvidylistvid){
           var itemsa = pleylistvidylistvid.match(/watch\?v=...........+?/g);
           let array2 = [].concat(array1, itemsa);
      count++;
      actiona(count, urlist, array2);
           };
      };
      xhr.send();

    } else if(count == canti){
      actionb(array1);
    };
};

function actionb(array2){
    var elementos = document.querySelectorAll(["ytd-grid-video-renderer", "ytd-rich-item-renderer", "ytd-compact-video-renderer", "ytd-video-renderer"]);
            for (let i = elementos.length-1; 0 <= i ; i--){
            let video=elementos[i];
               let video_url = video.querySelector("a").href.replace("https://www.youtube.com/", "").replace(/&.+/g, "");
     if(array2.includes(video_url)){
       video.setAttribute("style", "display: none !important;");
     };
    };
   };
 };

  setTimeout(action1, 5000);
})();