Comment empêcher YouTube d'afficher des vidéos déjà regardées?

12

Existe-t-il un moyen d'empêcher YouTube d'afficher des vidéos déjà visionnées dans la liste des vidéos suggérées?

E. Sommer
la source
1
Un rapide coup d'œil au HTML me fait penser que cela ne devrait pas être trop difficile à faire. Vous voulez essentiellement définir display: nonesur n'importe quel <ytd-compact-video-renderer>élément qui contient un élément enfant #progress. Vous ne pourrez pas le faire en CSS, mais un script Tampermonkey devrait être assez simple. J'essaierai plus tard et j'écrirai une réponse ...
Aaron F

Réponses:

12

Actuellement, il n'existe aucun traitement / solution de contournement pour ce faire. Mis à part les bloquer manuellement un par un, il n'y a pas de solutions évolutives.

0

Mais il existe des extensions qui peuvent le faire comme:


// ==UserScript==
// @version        1.1.1
// @name           Hide watched videos on YouTube
// @namespace      https://gist.github.com/xPaw/6324624
// @match          https://www.youtube.com/*
// @updateURL      https://gist.github.com/xPaw/6324624/raw/YoutubeHideWatched.user.js
// @downloadURL    https://gist.github.com/xPaw/6324624/raw/YoutubeHideWatched.user.js
// @grant          none
// ==/UserScript==

const app = document.querySelector( 'ytd-app' );

function HideVideos( a )
{
    app.querySelectorAll( 'ytd-thumbnail-overlay-resume-playback-renderer:not([data-hidden="true"])' ).forEach( element =>
    {
        element.dataset.hidden = true;

        while( ( element = element.parentNode ).tagName.toLowerCase() !== 'ytd-item-section-renderer' )
        {
            // Find the container element for this video
        }

        element.hidden = true;
    } );
}

function ProcessPage()
{
    if( !window.location.pathname.startsWith( '/feed/subscriptions' ) )
    {
        return;
    }

    const list = app.querySelector( 'ytd-section-list-renderer' );

    if( list.dataset.hooked )
    {
        return;
    }

    list.dataset.hooked = true;
    list.addEventListener( 'yt-next-continuation-data-updated', HideVideos );

    // TODO: Find an event to fix this
    new MutationObserver( HideVideos ).observe( list, { childList: true, subtree: true } );
}

app.addEventListener( 'yt-navigate-finish', ProcessPage );

ProcessPage();
user0
la source
3
C'est une honte. Je reçois la même ~ douzaine de clips tout le temps, mais les bloquer complètement est exagéré.
JollyJoker
1
oh gentil, vous avez mis à jour avec un script utilisateur! :-)
Aaron F
Certains ne fonctionnent pas, mais c'est ce que je cherchais. Tks
DGaleano
4

AFAIK, il n'y a aucun moyen de le faire sur YouTube lui-même, mais j'utilise une extension Chrome ( Better Subscriptions for YouTube ) qui vous permet de masquer les vidéos regardées de votre onglet d'abonnements.

Ashley
la source