Persistent YoutTube video queue

Make the YoutTube video queue persistent through sessions

当前为 2023-03-22 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Persistent YoutTube video queue
  3. // @version 0.1
  4. // @namespace Violentmonkey Scripts
  5. // @description Make the YoutTube video queue persistent through sessions
  6. // @author CarlosMarques
  7. // @match https://www.youtube.com/*
  8. // @grant none
  9. // @license MIT
  10. // ==/UserScript==
  11.  
  12.  
  13. (function(){
  14. ytqItems = Object.keys(localStorage).filter(e => e.startsWith("yt-queue"))
  15. if(ytqItems.length && !Object.keys(window.sessionStorage).some(e => e.startsWith("yt-queue"))){
  16. for(let yqsi of ytqItems){
  17. window.sessionStorage.setItem(yqsi, localStorage.getItem(yqsi))
  18. }
  19. }
  20.  
  21. let mObserver = new MutationObserver(function(mutations){
  22. ytqItems = Object.keys(window.sessionStorage).filter(e => e.startsWith("yt-queue"))
  23. if(!ytqItems.length){
  24. Object.keys(localStorage).forEach(e => e.startsWith("yt-queue") ? localStorage.removeItem(e) : null)
  25. }
  26. else{
  27. ytqItems.forEach(e => localStorage.setItem(e, window.sessionStorage.getItem(e)))
  28. }
  29. })
  30. mObserver.observe(document.body, {subtree: true, childList: true, characterData: true})
  31. })()