How to Do a Mass Unsubscribe in YouTube

If you have used the same YouTube account for years, you probably subscribed to many channels. This scenario makes it easier to follow uploads from your favorite content creators, but it has its downsides. In case you clicked on the option to get bell notifications for every single upload from every YouTuber you subscribed to, you have to deal with a ton of notifications.

How to Do a Mass Unsubscribe in YouTube

Unfortunately, YouTube does not have a native option to mass unsubscribe from channels because it does not want you to do it. On the bright side, you can do it yourself, and we are going to show you how.

Unsubscribe from YouTube Channels One at a Time

If you have lost interest in a YouTube channel, there are several ways to unsubscribe.

  • Clicking on one of the channel’s videos and clicking the gray “Subscribe” button to unsubscribe.
  • Clicking on the channel’s homepage and doing the same process as above.
  • Going to your Subscriptions page, choosing “Manage,” and unsubscribing to the listing.
  • Heading to your “Manage” page and running a script to bulk delete all subscriptions.

You probably already know how to unsubscribe YouTube channels one by one, and know that it is very time-consuming. But, did you know you can go to the YouTube subscription manager and see all the channels you are subscribed to?

View Your Existing YouTube Subscriptions List by doing the following:

  1. Log in to your YouTube account.
  2. Click on Subscriptions.
  3. Click on “Manage” in the top-right corner.

You can now scroll through all of your subscriptions here and decide which ones you want to keep watching and which ones you want to get rid of. This method is excellent for YouTube users who are selective about their subscriptions and don’t want to lose all of them.

Because of the confirmation pop-ups, the manual unsubscribe process still requires many clicks depending on the number of channels that you follow. If you want a better solution, try the methods below.

Mass Unsubscribe from All YouTube Channels

The following method allows you to mass-unsubscribe from all the YouTube Channels you follow. Remember that you will need to subscribe again to the ones you still enjoy. It might be a good idea to write down their names and URLs, so you don’t forget about them.

Bulk unsubscribing from YouTube requires you to run a script, but don’t worry, this method was tried, tested, and verified. Plus, you don’t need to install any potentially harmful third-party program on your computer.

Follow these steps to mass unsubscribe:

  1. Go to your subscription manager by clicking on “Subscriptions.”
  2. Click on “Manage” in the upper-right section.
  3. Scroll down to the “bottom” of your subscriptions or find an empty spot on the page. Right-click the empty area (shows cursor, not hand) and select the “Inspect Element” or “Inspect” option.
  4. Click on the Console tab, which is the second tab at the top.
  5. Scroll to the bottom of the console until you reach the “>” symbol.
  6. Copy the code below into the command field and press “Enter.” The Console should look like this while pasting the entire script:
/** 
  * Youtube bulk unsubsribe fn.
 * Wrapping this in an IIFE for browser compatibility.
  */
(async function iife() {
   // This is the time delay after which the "unsubscribe" button is "clicked"; Tweak to your liking!
  var UNSUBSCRIBE_DELAY_TIME = 2000
 
/**
  * Delay runner. Wraps `setTimeout` so it can be `await`ed on. 
 * @param {Function} fn 
  * @param {number} delay 
 */
   var runAfterDelay = (fn, delay) => new Promise((resolve, reject) => {
    setTimeout(() => {
       fn()
      resolve()
     }, delay)
  })
 

 
  // Get the channel list; this can be considered a row in the page.
   var channels = Array.from(document.getElementsByTagName(`ytd-channel-renderer`))
  console.log(`${channels.length} channels found.`)
 
  var ctr = 0
   for (const channel of channels) {
    // Get the subsribe button and trigger a "click"
     channel.querySelector(`[aria-label^='Unsubscribe from']`).click()
    await runAfterDelay(() => {
       // Get the dialog container...
      document.getElementsByTagName(`yt-confirm-dialog-renderer`)[0]
         // and find the confirm button...
        .querySelector(`#confirm-button`)
         // and "trigger" the click!
        .click()
       console.log(`Unsubsribed ${ctr + 1}/${channels.length}`)
      ctr++
     }, UNSUBSCRIBE_DELAY_TIME)
  }
 })()

Watch as your subscriptions disappear, one by one.

Don’t panic if progress slows down or appears frozen in time. The script causes that status while it works its magic. You can copy/paste the code into the Console and rerun it if you don’t get rid of all subscriptions on the first try.

Be sure to refresh the page before you rerun the script! You should also refresh the page to confirm all subscriptions are gone. When you go back to the “Subscribe” page, the “Manage” option in the top-right section will no longer be there because, after all, you have no more subscriptions.

For more information on the above script, check out the Stack Overflow YouTube unsubscribe script page. Thanks to Yogie for the original upload and all other submitters for theirs! You’ll find several adjusted scripts based on user input. One of the scripts is sure to bulk unsubscribe in your Youtube account.

18 thoughts on “How to Do a Mass Unsubscribe in YouTube”

Lskladjaf says:
/**
* Youtube bulk unsubsribe fn.
* Wrapping this in an IIFE for browser compatibility.
*/
(async function iife() {
// This is the time delay after which the “unsubscribe” button is “clicked”; Tweak to your liking!
var UNSUBSCRIBE_DELAY_TIME = 2000

/**
* Delay runner. Wraps `setTimeout` so it can be `await`ed on.
* @param {Function} fn
* @param {number} delay
*/
var runAfterDelay = (fn, delay) => new Promise((resolve, reject) => {
setTimeout(() => {
fn()
resolve()
}, delay)
})

// Get the channel list; this can be considered a row in the page.
var channels = Array.from(document.getElementsByTagName(`ytd-channel-renderer`))
console.log(`${channels.length} channels found.`)

var ctr = 0
for (const channel of channels) {
// Get the subsribe button and trigger a “click”
channel.querySelector(`[aria-label^=’Unsubscribe from’]`).click()
await runAfterDelay(() => {
// Get the dialog container…
document.getElementsByTagName(`yt-confirm-dialog-renderer`)[0]
// and find the confirm button…
.querySelector(`#confirm-button`)
// and “trigger” the click!
.click()
console.log(`Unsubsribed ${ctr + 1}/${channels.length}`)
ctr++
}, UNSUBSCRIBE_DELAY_TIME)
}
})()

Aakash says:
Damn! It did work! Thanks. I Hope someday Youtube had this option on the Manage tab
joe says:
Wow. Cool Thanks for this neat tip! Such a time saver! Wish youtube just had some filtering feature though.
Sarthak Sarkar says:
Try this one….it worked for me
var i = 0;

var myVar = setInterval(myTimer, 200);

function myTimer () {

var els = document.getElementById(“contents”).getElementsByClassName(“ytd-subscribe-button-renderer”);

if (i < els.length) {

els[i].querySelector('.ytd-subscribe-button-renderer').click();

setTimeout(function () {

var unSubBtn = document.getElementById("confirm-button").click();

}, 500);

setTimeout(function () {

els[i].parentNode.removeChild(els[i]);

}, 1000);
}

i++;

console.log(i + " unsubscribed");
console.log(els.length + " remaining");
}

trebor yacam says:
still works, 19/04/2020

var i = 0;

var myVar = setInterval(myTimer, 3000);

function myTimer () {

var els = document.getElementById(“grid-container”).getElementsByClassName(“ytd-expanded-shelf-contents-renderer”);

if (i < els.length) {

els[i].querySelector("[aria-label^='Unsubscribe from']").click();

setTimeout(function () {

var unSubBtn = document.getElementById("confirm-button").click();

}, 2000);

setTimeout(function () {

els[i].parentNode.removeChild(els[i]);

}, 2000);

}

i++;

console.log(i + " unsubscribed by Saint");

console.log(els.length + " remaining");

}

AT says:
Using Google Chrome
Google Chrome is up to date
Version 81.0.4044.138 (Official Build) (64-bit)
Which browser to use?

The 19/04/2020 script does not seem to work for me on May 12th 2020…

zimuzo ejinkeonye says:
Needs a little modification, But it still works.

var i = 0;
var myVar = setInterval(myTimer, 3000);
var buttons = document.querySelectorAll(“paper-button”);
function myTimer() {
if (i < buttons.length) {
buttons[i].click();
setTimeout(function () {
var unSubBtn = document.getElementById("confirm-button").click()
}, 800);
}
i++;
}

Faizal says:
not working for me!
Jean says:
it says:
Uncaught SyntaxError: Invalid or unexpected token
@
var buttons = document.querySelectorAll(“paper-button”);
Kurt says:
You have to replace the “s and ”s with “s, and likewise the ‘s and ’s with ‘s.
I also had to change the line:

els[i].querySelector(‘[aria-label=”Unsubscribe from this channel.”]’).click();

with:

els[i].getElementsByClassName(“ytd-subscribe-button-renderer”)[0].click();

Germaine says:
not sure why the full code want posted but that would have been helpful
Sid says:
It has stopped working for me as of 2k19.

Leave a Reply

Your email address will not be published. Required fields are marked *


Disclaimer: Some pages on this site may include an affiliate link. This does not effect our editorial in any way.

Todays Highlights
How to See Google Search History
how to download photos from google photos