// ** CHANGE @NAME, @NAMESPACE, and @DESCRIPTION
//
// ** If using for Tampermonkey, you can just paste this into
// ** the Tampermonkey editor
//
// ** If using for Chrome, CHANGE FIRST PART OF FILENAME
// ** (before the .user.js) and edit in a code editor like Atom
//
// ** EVERYTHING BETWEEN ==UserScript== lines is read by the browser
// as configuration information for the userscript
//
// ==UserScript==
// @name NO MORE CLICKBAIT
// @version 1.0
// @namespace chaseisgod.com
// @description demonstrates a userscript method for altering websites
// @require http://arts445.courses.bengrosser.com/files/ready-vanilla.js
// @require http://code.jquery.com/jquery-3.3.1.min.js
// @run-at document-start
//
// **WRITE MATCH STATEMENTS TO MATCH WEBSITE URLS (FOLLOW MY EXAMPLE)
//
// @match *://*.youtubecom/*
// @include *://*.youtube.com/*
//
// ==/UserScript==// -----------------------------------------
//
//
//
//
// Basic Userscript Template
//
// This code demonstrates a general method for creating browser Usercripts
// that utilize jQuery to modify pages, whether static or dynamic. This
// can be used in Tampermonkey (which is how we'll start), or later,
// in Chrome extensions.
//
// written by grosser for ARTS 445: Net Art, sp '18
// this line (and the last one in the file) open and close
// an 'immediate invoked function', which keeps our
// code separate from other code running on the website
// just leave it here
(function() {
// jQuery on 'j' to avoid conflicts with page jQuery
var j;
// PUT YOUR CODE within main() below
function main() {
// setup jQuery on j to avoid any possible conflicts
j = jQuery.noConflict();
// outlines all existing <a> tags in red
// running .each() on a jQuery search executes the included function
// individually for each element it finds that matches the search
// (e.g. in this case, it runs the function redBorder() for each 'a'
// tag). the parameter name 'e' refers to the found element
//
// j('a').each(function() { redBorder(this); });
// this line sets up a continuous search for new elements on the
// page that might get inserted later. so, in this example, any
// HTML with an 'a' tag that gets inserted *after* the page loads
// will call redBorder() for each one in turn. this way you can
// catch and change anything that happens after the page load
// (e.g. a new news feed story on the Facebook newsfeed0
ready('.style-scope .yt-img-shadow', function(e) {hideElement (e); });
ready('span', function(e) {hideElement (e); });
ready('yt-formatted-string', function(e) {hideElement (e); });
// this function could do anything with the results it receives
// 'jnode' refers to the jquery object the initial jQuery search
// found, so we refer to it and then continue on with familiar
// jQuery statements
function hideElement(e) {
j(e).hide();
}
}
// run the main function
main();
// utility functions we'll use during the semester
// are below. for now it's just another version of
// contains we can use to test string content
// cleaner syntax than match()
String.prototype.contains = function(it) { return this.indexOf(it) != -1; };
// close the opening invoked function
})();
In this project I got rid of all thumbnails for videos to get rid of clickbait videos that just want to trick you into watching something that you didn’t really want to watch. Also I got rid of the “trending” video texts and other things that try to push you into watching certain types of videos. This usually leads to a monopolization of views and likes because of people not knowing what they’re getting into because youtube and channels work together to put them in a situation they did not ask for. No More Clickbait makes it so you don’t have to worry about being visually tricked.