Skip to content

Instantly share code, notes, and snippets.

@ppetraki
Created July 21, 2019 18:15
Show Gist options
  • Save ppetraki/4e81591ffb623afd8c60e72e9232062c to your computer and use it in GitHub Desktop.
Save ppetraki/4e81591ffb623afd8c60e72e9232062c to your computer and use it in GitHub Desktop.
youtube-clear-playlist
// kinda works. First attempt at JS ever
// A bit of WIP
var timeout = 500;
var items;
function populateItems() {
items = document.getElementsByClassName("yt-uix-button yt-uix-button-size-default yt-uix-button-default yt-uix-button-empty yt-uix-button-has-icon no-icon-markup pl-video-edit-remove yt-uix-tooltip");
}
// loadMore logic courtesy of https://vsubhash.wordpress.com/2018/09/10/greasemonkey-script-to-click-the-load-more-button-of-youtube-video-pages/
var iYLM_Timeout = 0;
var iCounter = 0;
document.addEventListener("DOMContentLoaded", startItDelayed, false);
function startItDelayed() {
iYLM_Timeout = window.setTimeout(loadMore, 10*1000);
}
function loadMore() {
console.log("YLM: We are in");
if (document.getElementsByClassName("load-more-button").length > 0) {
if (document.getElementsByClassName("load-more-button")[0].getElementsByClassName("load-more-text").length > 0) {
document.getElementsByClassName("load-more-button")[0].getElementsByClassName("load-more-text")[0].click();
console.log("YLM: Loading more " + (++iCounter));
startItDelayed();
}
} else if (iYLM_Timeout != 0) {
console.log("YLM: No more found ");
window.clearTimeout(iYLM_Timeout);
}
}
function deleteWL(i) {
setInterval(function() {
if (items[i]) {
items[i].click();
} else {
console.error("items entry is null, repopulate array.");
loadMore();
// location.reload(true);
populateItems();
console.info("reloaded items length: " + items.length);
}
}, timeout);
}
// do not move the page while running this script or "load more" may not show
function main() {
console.info("starting...");
populateItems();
console.info("items length: " + items.length);
for (var i = 0; i < 1; ++i)
deleteWL(i);
console.info("done!");
}
main();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment