Persistent YoutTube video queue

Make the YoutTube video queue persistent through sessions

Verze ze dne 22. 03. 2023. Zobrazit nejnovější verzi.

// ==UserScript==
// @name         Persistent YoutTube video queue
// @version      0.1
// @namespace    Violentmonkey Scripts
// @description  Make the YoutTube video queue persistent through sessions
// @author       CarlosMarques
// @match        https://www.youtube.com/*
// @grant        none
// @license      MIT
// ==/UserScript==


(function(){
	ytqItems = Object.keys(localStorage).filter(e => e.startsWith("yt-queue"))
	if(ytqItems.length && !Object.keys(window.sessionStorage).some(e => e.startsWith("yt-queue"))){
		for(let yqsi of ytqItems){
			window.sessionStorage.setItem(yqsi, localStorage.getItem(yqsi))
		}
	}

	let mObserver = new MutationObserver(function(mutations){
		ytqItems = Object.keys(window.sessionStorage).filter(e => e.startsWith("yt-queue"))
		if(!ytqItems.length){
			Object.keys(localStorage).forEach(e => e.startsWith("yt-queue") ? localStorage.removeItem(e) : null)
		}
		else{
			ytqItems.forEach(e => localStorage.setItem(e, window.sessionStorage.getItem(e)))
		}
	})
	mObserver.observe(document.body, {subtree: true, childList: true, characterData: true})
})()