Greasy Fork is available in English.

Youtube Hide Watched

Hides viewed videos from your subscriptions.

// ==UserScript==
// @name           Youtube Hide Watched
// @namespace      https://github.com/ToostInc/userscripts
// @description    Hides viewed videos from your subscriptions.
// @include        https://www.youtube.com/feed/subscriptions
// @author         Joost Bremmer < toost dot b at gmail dot com >
// @copyright      2014, Joost Bremmer
// @license        MIT
// @version        1.1.3
// @date           13-06-2015
// @require        http://code.jquery.com/jquery-latest.min.js
// @grant          none
// ==/UserScript==


// The MIT License
//
// Copyright (c) 2014 Joost Bremmer
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files
// (the "Software"), to deal in the Software without restriction,
// including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software, and
// to permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

$(document).ready (function () {
  //Add mutation observer, checks for changes in DOM
  if (MutationObserver) {
	  var myObserver  = new MutationObserver(hideWatched);
	}
	else {
		var myObserver = new WebKitMutationObserver(hideWatched);
	}
  myObserver.observe(document, { childList : true, subtree : true });
	hideWatched();

	// Add checkbox
	var checker = '<li>\n'+
	              '\t<label id="checker-container">\n'+
				  '\t\t<input type="checkbox" id="hide-videos" checked="" />'+
				  '\t\tHide watched videos'+
				  '\t</label>\n'+
				  '</li>';
	$("#appbar-nav .appbar-nav-menu").prepend(checker);
	$("#checker-container").css({
	                              'color': "#666",
								  "vertical-align" : "middle",
								  "text-align" : "center"
								});
	//checkbox event
	$("#hide-videos").change(function() {
		if ( $(this).is(":not(:checked)") ) {
			showWatched();
		}

		else {
			hideWatched();
		};

	});

	//BONUS: always enable load more button.
	$("button.load-more-button").removeProp("disabled");

	hideWatched();


});


function hideWatched () {

	if ( $("#hide-videos").is(":checked") ) {
			$("div.watched-badge").each(function() {
	      $(this).closest("ol.item-section").hide("200");

	    });

	}
};

function showWatched() {
		  $("div.watched-badge").each(function() {
			$(this).closest("ol.item-section").show("300");

	});
}