MCPcopy Index your code
hub / github.com/amitbl/blocktube

github.com/amitbl/blocktube @v0.4.8

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.4.8 ↗ · + Follow
750 symbols 2,323 edges 19 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

BlockTube

WebExtension for Chrome and Firefox.
Filter and block unwanted content from YouTube™.

Extension features

  • Block videos via: Video Title / Channel Name / Channel ID / Video ID
  • Block comments via User / Comment content
  • Block videos within YouTube using context menus
  • Blocked videos do not appear anywhere on the site
  • Support for m.youtube.com on Firefox for Android and Kiwi Browser
  • Block complete channels
  • Supports both keywords and raw Regex
  • Does not break or limit any features of YouTube like playlist or autoplay
  • Hide and block the Trending section
  • Protect extension options with a password
  • Filtering is done before any DOM rendering

Install

FAQ

  • What is the difference between "Channel ID" and "Channel Name"
    Channel names on YouTube are not unique and can be duplicated/changed
    whereas Channel ID is a unique identification string that never changes.
    If you want to block a specific single channel the preferred method is using it's ID,
    If you want to block multiple channels sharing similar name use it's name.

  • How can I get a channel's ID?
    Channel ID looks like this: UCXXXXXXXXXXXXXXXX
    To get it, simply browse to a channel page and look at the URL /channel/UCXXXXXXXXXXXXXXXXXXXX
    If the URL is /user/BadChannelExample use This site to convert the username to the channel ID

  • How to block comments from specific user?
    Blocked channels comments are removed as well, so just add the user's name/channel ID to your filters

  • What is the behaviour when browsing blocked channel?
    User will be redirected to YouTube homepage.

  • What is the behaviour when browsing blocked video?
    You can choose between two options:

  • Block the entire page and leave a custom message
  • Auto redirect user to the next video

  • How can I ensure this extension cannot be bypassed?
    TODO

Development & Build

Ubuntu

# Install build requirements
sudo apt install nodejs npm
sudo npm install -g terser

# Clone Repo
git clone https://github.com/amitbl/blocktube

### Make your changes ###

# Build package
./tools/build.sh firefox
./tools/build.sh chrome

# Output packages locations
./dist/firefox/blocktube_firefox_VERSION.zip
./dist/chrome/blocktube_chrome_VERSION.zip

# Temporary installation / debugging
Firefox: https://extensionworkshop.com/documentation/develop/temporary-installation-in-firefox/
Chrome: https://developer.chrome.com/docs/extensions/mv3/getstarted/development-basics/#load-unpacked

Future work

  • User-friendly options UI
  • Sync options to cloud provider / enterprise policies
  • Whitelist mode
  • Dynamic rules (match multiple rules to block a video)

License

This project is licensed under the GPLv3 License - see the LICENSE file for details

Acknowledgments

  • Extension Icon from: http://www.designbolts.com/2013/09/08/40-free-shaded-social-media-icons/

Core symbols most depended-on inside this repo

cont
called by 170
src/ui/cm/javascript.js
Pos
called by 123
src/ui/cm/codemirror.js
getLine
called by 61
src/ui/cm/codemirror.js
$
called by 60
src/ui/options.js
option
called by 57
src/ui/cm/codemirror.js
elt
called by 54
src/ui/cm/codemirror.js
on
called by 51
src/ui/cm/codemirror.js
clipPos
called by 47
src/ui/cm/codemirror.js

Shape

Function 739
Class 10
Method 1

Languages

TypeScript100%

Modules by API surface

src/ui/cm/codemirror.js464 symbols
src/ui/cm/javascript.js98 symbols
src/scripts/inject.js54 symbols
src/ui/cm/search.js24 symbols
src/scripts/seed.js23 symbols
src/ui/options.js19 symbols
src/ui/cm/searchcursor.js12 symbols
src/ui/cm/closebrackets.js11 symbols
src/ui/cm/match-highlighter.js10 symbols
src/ui/cm/simple.js9 symbols
src/ui/cm/matchbrackets.js7 symbols
src/scripts/background.js5 symbols

For agents

$ claude mcp add blocktube \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page