Wie kann man verhindern, dass YouTube bereits gesehene Videos anzeigt?

12

Gibt es eine Möglichkeit, YouTube daran zu hindern, bereits angesehene Videos in der Liste der vorgeschlagenen Videos anzuzeigen?

E. Sommer
quelle
1
Ein kurzer Blick auf das HTML lässt mich denken, dass es nicht zu schwer sein sollte. Sie möchten grundsätzlich display: nonejedes <ytd-compact-video-renderer>Element festlegen , das ein untergeordnetes Element enthält #progress. In CSS ist das nicht möglich, aber ein Tampermonkey-Skript sollte einfach genug sein. Ich werde es später noch einmal versuchen und eine Antwort schreiben ...
Aaron F

Antworten:

12

Derzeit gibt es keine Lösung dafür. Abgesehen davon, dass sie einzeln manuell blockiert werden, gibt es keine skalierbaren Lösungen.

0

Es gibt jedoch Erweiterungen, die dies tun können:


// ==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
quelle
3
Das ist eine Schande. Ich bekomme die ganze Zeit das gleiche ~ Dutzend Musikvideos, aber es ist übertrieben, sie komplett zu blockieren.
JollyJoker
1
oh schön, du hast mit einem userscript upgedatet! :-)
Aaron F
Einige funktionieren nicht, aber das ist es, wonach ich gesucht habe. Tks
DGaleano
4

AFAIK, es gibt keine Möglichkeit, dies auf YouTube selbst zu tun, aber ich verwende eine Chrome-Erweiterung ( Better Subscriptions for YouTube ), mit der Sie beobachtete Videos auf Ihrem Abonnement-Tab ausblenden können.

Ashley
quelle