Có cách nào để ngăn YouTube hiển thị các video đã xem trong danh sách các video được đề xuất không?
Có cách nào để ngăn YouTube hiển thị các video đã xem trong danh sách các video được đề xuất không?
Câu trả lời:
Hiện tại, không có điều trị / giải pháp để làm như vậy. Ngoài việc tự tay chặn chúng từng cái một, không có giải pháp mở rộng.
Nhưng có những phần mở rộng có thể làm như vậy:
// ==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();
AFAIK, không có cách nào để làm điều này trên chính YouTube, nhưng tôi sử dụng tiện ích mở rộng Chrome ( Đăng ký tốt hơn cho YouTube ) cho phép bạn ẩn video đã xem khỏi tab đăng ký của mình.
display: none
trên bất kỳ<ytd-compact-video-renderer>
phần tử nào có chứa phần tử con#progress
. Bạn sẽ không thể làm điều đó trong CSS, nhưng tập lệnh Tampermonkey phải đủ đơn giản. Tôi sẽ đi sau và viết câu trả lời ...