Greasy Fork is available in English.

Discussioni » Richieste di creazione

Hide youtube videos older than 12 months (configurable)

§
Pubblicato: 25/02/2021

It would be nice if you could hide youtube videos older than 12 months. This would eliminate videos that are years old appearing on the youtube homepage.

§
Pubblicato: 25/02/2021
Modificato: 25/02/2021


// ==UserScript==
// @name Hide YT Videos = or older than a year
// @namespace HideOldYTVideos
// @version 0.1
// @description Hide YT Videos = or older than a year
// @author hacker09
// @match https://www.youtube.com/
// @icon https://www.youtube.com/s/desktop/daaab134/img/favicon.ico
// @run-at document-end
// @grant none
// ==/UserScript==

(function() {
'use strict';
function Hide(){ //Starts the function
var OldVideos = document.querySelectorAll("#metadata-line > span:nth-child(2)");
for (var i = OldVideos.length; i--;) { //For every video on the page
if (OldVideos[i].innerText.match('year') !== null) { //If the video was released 1 or more years from today
OldVideos[i].parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.style.display = 'none'; //Hide the video
} //Finishes the if condition
} //Finishes the for condition
} //Finishes the function

Hide(); //Run the function to hide old videos when the youtube dashboard is loaded

window.onscroll = async function() { //Every time that the page it scrolled
Hide(); //Look for old videos and hide them
}; //Finishes the onscroll advent listener
})();

§
Pubblicato: 25/02/2021

Thanks! Works great!

§
Pubblicato: 25/02/2021

You're welcome

§
Pubblicato: 26/02/2021
Modificato: 26/02/2021

I modified your script so that it hides videos older than a week, month, and year...

Also, it hides mixes now too.

I'm sure this can be further improved.

Also, for some reason, videos were not hiding at load, so I added a 2 second timeout to run the Hide() function in case Youtube takes a while to load.... seems to have resolved the issue for me.

// ==UserScript==
// @name Hide YT Videos by age and hide mixes
// @namespace HideOldYTVideos
// @version 0.2
// @description Hide YT Videos by age and hide mixes
// @author hacker09 (modified by Neil)
// @match https://www.youtube.com/
// @icon https://www.youtube.com/s/desktop/daaab134/img/favicon.ico
// @run-at document-end
// @grant none
// ==/UserScript==

(function() {
    'use strict';

    function Hide() { //Starts the function

        var videos = document.querySelectorAll("#contents > .ytd-rich-grid-renderer");
        for (var i = videos.length; i--;) { //For every video on the page

            var ageChild = videos[i].querySelector("#metadata-line > span:nth-child(2)"); //Find metadata line containing age of video

            if (ageChild !== null) {
                if ( (ageChild.innerText.match('year') !== null) || (ageChild.innerText.match('month') !== null) || (ageChild.innerText.match('week') !== null) ) { //If the video is older than a week, month, or year
                    videos[i].style.display = 'none'; //Hide the video
                } //Finishes the if condition
            }

            var mixChild = videos[i].querySelector("#video-title"); //Find video title

            if (mixChild !== null) {
                if ( (mixChild.innerText.match('Mix') !== null) ) { //If the video is a mix playlist
                    videos[i].style.display = 'none'; //Hide the mix playlist
                } //Finishes the if condition
            }




        } //Finishes the for condition


    } //Finishes the function

    Hide(); //Run the function to hide videos when the youtube dashboard is loaded

    setTimeout(function(){
        Hide() //Run the function to hide videos again 2 seconds after loading in case youtube hasn't finished loading yet...
    }, 2000);


    window.onscroll = async function() { //Every time that the page it scrolled
        Hide(); //Look for old videos or mixes and hide them
    }; //Finishes the onscroll advent listener


})();

Pubblica risposta

Accedi per pubblicare una risposta.