keywordblocker icon indicating copy to clipboard operation
keywordblocker copied to clipboard

Add a white list for both channels and keywords

Open markran opened this issue 5 years ago • 2 comments

Hi @Meidor,

Thanks for the cool add-on! Very useful with my daughter.

It would be even more useful if you could implement whitelists for both Channels and Keywords. Here's the use case. Our daughter wants to get deeper into coding on her Raspberry Pi as well as learn more chess strategy, however, she doesn't yet have the self-control to avoid wasting her time watching entertainment content such as most of the content published by Disney, Nickleodeon, etc. Unfortunately, I can't monitor her viewing all the time this Summer as I have to work from home and do video meetings in another room and there's so much mind-numbing kids content on YT now that it's virtually impossible to block it all. Yet if I go with a "Block All Except..." approach she quickly runs through the content I've allowed by hand and is sad she can't browse related channels on coding python, chess strategy or other [permitted topic].

A black+white list approach would allow us make available any video on a coding channel like the excellent "https://www.youtube.com/user/shiffman/videos" as well as any of the many chess strategy tutorial videos available on YouTube under "Restricted" mode but also let us block any Channel Name containing disney, nickleodeon, dudeperfect, or even "joke" | "prank" in the title, description or tags.

For maximum flexibility, here is how I imagine the logic might work - though it can certainly be useful with more minimal implementation. First, the add-on would check the Channel Name whitelist and if a match is found, stop without any further processing. This would handle cases where a known "good" channel happens to inadvertently include a blacklisted Keyword in their Title, Description or Tags.

Then the add-on checks blacklisted Channel names and blocks them outright. Finally, if neither of those conditions has been triggered, it searches the Title, Description and Keywords for any listed Keywords. Each Keyword on the list would have a pair of radio buttons denoting Block or Allow and would be processed in order. If any Keyword is matched it stops without further processing and Blocks or Allows the page as specified. By processing them in order users could layer their Keywords to handle quite a wide variety of cases.

One objection might be that some pages could be inadvertently allowed by whitelisted keywords. My reasoning here is that the Channel Name blacklist is the first line of defense where any "Must Not See" content is eliminated regardless of other metadata. Then the Channel Name whitelist ensures any Must Not Be Blocked channels are covered regardless of other metadata. Finally, the Title, Description and Tag matching Keywords can be as exclusive or inclusive as users desire.

Certainly, the keyword matching could net some false positives or false negatives but this capability will also permit us to make a lot of great content available without having to specifically allow hundreds of channels by hand. In the case of our kid, if something slips through due to an inadvertent whitelist keyword (like some kid joke channel doing jokes about "Chess"), the worst case is she wastes some time watching what passes for kids entertainment these days. On the other hand, if a particular video is inadvertently blocked, she has a lot of others still available.

Sorry for the long description. I hope it's clear...

markran avatar Jul 31 '19 04:07 markran

Thank you for your suggestion. You explained it well so I think the idea is clear. I will have to think about this as it is very easy to make this feature confusing for the users so I'll have to find a way to implement this without needing to explain a complex algorithm in a couple of paragraphs of text.

I'm certain that I can figure something out that will give you the flexibility and power that you seek. I'll keep you posted.

rikharink avatar Jul 31 '19 07:07 rikharink

Thanks for your quick response. It's a good observation that this would need to be implemented in a conceptually simple way. I agree and think this can be done with a UX design that self documents and by including both a simple example and a deep example.

Done properly I think it can still appear simple to a basic user but more advanced users will still be able to discover the increased possibilities. One approach could be as simple as adding a column next to the "Wildcard" checkbox on the Keyword and Channels tabs. This column would contain a mutually exclusive radio-style button something like "Always Block" or "Always Allow" and be defaulted to "Always Block". Thus, if users don't change that option, the functionality would remain identical to how it is now and could be backward compatible with existing lists.

The only thing users might need to understand is that the list is processed in order but perhaps this could be implied visually by inserting a column at the beginning of each row labeled "Step" that auto-numbers the list, like 1, 2, 3. Then the text description just needs to mention something like "If the "Always Allow" option is used, create Steps in priority order because once a Step is matched any Steps below it are not checked."

I appreciate your willingness to consider adding this functionality! It would add significant flexibility. I've been in software design my entire career and am happy to help test as well as provide feedback on UX and wording.

markran avatar Aug 01 '19 14:08 markran