Skip to content

Latest commit

 

History

1,265 Commits

Folders and files

Repository files navigation

FilterTube logo

FilterTube

Calmer viewing. Your devices. Your rules.

Latest release License

Get Android app · Get browser extension · Explore the website

FilterTube puts you in charge of what you watch. This repository is the browser extension, and the same rules power full FilterTube apps for Android phones, tablets and Android TV (iPhone and iPad are in development). Block channels or words, allow only what you choose, give every family member their own profile, and keep your devices in sync privately, device to device.

What the apps include

  • A complete viewing app, not just a filter. Home, Search, Watch, channels, Subscriptions, You, History, playlists, Watch later and Shorts, plus a separate Kids space. Chapters, a floating mini player, picture-in-picture, background play, a sleep timer, captions and quality controls.
  • Music, with its own space. Music Home, Explore, charts, moods, artists, albums and library, with a reorderable queue, shuffle, repeat and lyrics.
  • Your rules everywhere. Block or allow channels and keywords (Korean, Japanese and Chinese keywords match inside sentences), filter by category, language, duration, upload date and minimum views, hide Shorts, comments and distractions, and block any channel straight from a video card.
  • Family controls. Profiles with PINs, a stricter Kids mode, parent-managed daily time limits, and Self-Control sessions that lock your rules for a set time.
  • Private peer-to-peer device sync (Nanah). Pair two devices with a code or QR, compare the safety phrase, and choose what to share: rules, settings and video Notes. Updates travel directly and encrypted between your devices. No FilterTube account and no cloud copy of your rules.
  • Android TV, new in 3.5.0. Remote-first Home, Search, Subscriptions, You and Watch, with profiles, PINs, Kids controls and filters on the big screen.
  • Optional integrations. SponsorBlock segment skipping, Return YouTube Dislike counts and DeArrow community titles, each off until you turn it on.
  • Video Notes and your own media. Timestamped Notes per video, and a player for the videos and music already on your device.
  • Offline downloads in the direct build. The direct APK on GitHub releases can save videos for offline viewing (encrypted copies that expire after 30 days). The Google Play builds do not download videos.

Free, with no paywall. Every feature is available to everyone. If FilterTube helps you, you can support it in whatever way feels right to you, monthly, one-time or any amount you choose. Supporting never unlocks features. Ways to support.

Get FilterTube

Platform Availability Install or learn more
Android phone and tablet Full custom Main and Kids app on Google Play. No invitation or email needed. Google Play · Android overview
Android TV / Google TV New in 3.5.0, on the same Google Play listing as the phone app (TV release subject to Play review). A TV APK is attached to every GitHub release. Fire TV support is planned. Android TV · Latest release
Direct Android build GitHub-only phone/tablet and TV APKs with offline video saving and in-app update checks. Installs beside the Play app. Latest release
Browser extension Chrome, Firefox and Edge listings; other desktop browsers use the matching store or the manual package. Chrome · Firefox · Edge
iPhone and iPad In development; public TestFlight/App Store access is not available yet. iOS status

Latest GitHub release and assets · All releases

The apps

WatchMusicControlsPrivate P2P pairing
FilterTube Android Watch page FilterTube Android Music now playing FilterTube Android Controls overview FilterTube Android device pairing with code and QR
TabletAndroid TV
FilterTube tablet two-pane Watch page FilterTube Android TV Watch page

Real screens from FilterTube 3.5.0. See every phone, tablet and TV screen on filtertube.in/android.

Browser extension screenshots

The extension adds a popup, dashboard and device controls to supported existing pages. These current-source previews can be newer than the installed store version.

DashboardAccounts & Sync
FilterTube browser extension dashboard preview FilterTube browser extension device selection and profile controls preview
iPhone development previews

Existing simulator UI captures: viewing-space selection and filter controls. Public iPhone/iPad installation is not available yet; these images do not establish current playback, complete feature parity or release readiness.

Viewing spacesFilter controls
iPhone simulator development preview of Main and Kids viewing-space selection iPhone simulator development preview of empty keyword filters

Easy parent controls

A child can have their own profile and switching PIN without gaining permission to change parent-managed settings. Parents keep their own account and use Edit Rules to manage the intended child, rather than sharing the parent PIN.

From the parent's own computer, pair and verify the child's device, then review the exact source and receiving child profile. Choose Send update for an approved one-time policy change, or explicitly turn on Auto-sync for that verified parent connection. Only supported, approved scopes can apply; the child's PIN does not grant settings, trust or profile-administration rights.

Auto-sync is a choice, not a consequence of trusting a device. Direct delivery needs both endpoints open and connected; offline changes wait for a verified reconnect. Parent accounts need their own protection too. Step-by-step parent setup and current scope limits.

Features

This is a current capability guide, not a claim that every store package or platform has identical support. See the extension inventory and post-release change record for source and verification boundaries.

What you control Capabilities
Channels and keywords Blocklist or Whitelist, blocked/allowed exceptions, channel IDs, @handles and supported URLs, phrases, supported comment-keyword matching and Exact matching. Rule matching reuses compiled indexes.
Main and Kids Separate rule spaces and modes; optional compatible use of Kids rules on Main. A Kids rule space is distinct from a protected child profile.
Video filters Supported duration, upload-date, uppercase-title, minimum-view and category filters. Experimental video-language filtering depends on available metadata, not speech recognition.
Less distraction Hide Shorts, comments, Home feeds, recommendations, live chat, Mixes, playlist panels, end screens and other supported surfaces. The extension has 32 content switches across seven groups.
Playback Advert filtering and guarded content-only playback work. The extension retains the native desktop player; the Android app has its own player and quality/audio/caption controls. Compatibility still needs maintenance.
Quick actions Extension popup, dashboard statistics and settings, optional hover Quick Block and a separate three-dot menu action. Supported collaboration cards can expose multiple creators.
Family profiles Default/Master, independent accounts and parent-owned protected profiles, with separate rules and viewing access. Parents edit child rules through Edit Rules; a child PIN does not unlock parent controls.
Protected time Per-profile daily allowances, remaining-time feedback and parent-reviewed extra-time requests. Extension Self-Control and Hard Timer Whitelist are separate reviewed countdowns with no in-app cancellation once started. Daily budgets are per installation, not pooled across devices.
Video Notes Profile + video storage, timestamps and conflict-aware edits. Extension Notes support admitted Main Watch pages; native development has its own implementation. Music/Kids/Shorts parity is not implied.
Devices Code/QR pairing, safety-phrase verification, one-time profile copies, authorized full-account migration, approved parent updates and opt-in personal settings/rules/Notes Auto-sync. See the connection limits below.
Imports and backups Preview CSV, TXT, JSON, BlockTube and supported HTTPS rule lists; review reports and refreshed lists, or import subscribed channels into the whitelist. Plain/encrypted manual and automatic local FilterTube backups and reviewed BlockTube-compatible export have different scopes. Private extension Notes are excluded from ordinary backups.
Everyday preferences Light/dark appearance, 38 bundled extension interface languages, update preferences and a reviewed preference reset. Reset preserves rules, modes, restrictions, Notes, PINs, time limits and verified-device permissions.

Local semantic/ML filtering remains research, not an active released filtering engine. Interface translations are separate from video-language filtering.

Nanah Device Trust & Sync

Connect → verify → choose what to share. No central FilterTube account is required.

  1. Open Accounts & Sync on both supported devices. Add with a code or QR.
  2. Compare and confirm the same safety phrase before saving trust.
  3. Review the local profile, receiving profile/device and selected update.
  4. Send once, or explicitly enable the permitted Auto-sync link.
Connection What it permits
Your own profiles A one-time copy, or a separately approved personal Auto-sync link. Both devices approve the exact profile mapping and choose Settings and filter rules, Saved video notes, or both.
Parent → child Approved signed policy updates to the chosen protected profile. Parent Auto-sync uses existing approved scopes and receiver permissions; it does not grant the child permission to edit protected settings.
Nearby devices Optional helper-assisted discovery. Being visible or on the same Wi-Fi never establishes trust.

Auto-sync is opt-in. Direct sync needs both Accounts & Sync pages open and connected. Offline changes wait locally and resume after a verified connection is re-established. Simply going online does not pair saved devices or wake a closed browser. Settings conflicts require review; Notes preserve edit/delete conflicts. Turning Auto-sync off stops its local queued delivery, not data already applied elsewhere.

PINs, profile ownership and device permissions stay local. Parent policy updates do not currently cover every child preference toggle or child Notes; personal Auto-sync cannot bypass those restrictions.

Signaling and STUN services help devices establish a connection. No TURN relay is configured in the current extension transport, so restrictive networks can prevent a direct connection. Optional Home Pickup uses a configured trusted service that can see signed rule contents; Internet Pickup holds encrypted signed envelopes for approved parent updates. These are separate delivery choices, not a central readable profile vault. Queued, received and applied are different states.

New Auto-sync is implemented in the extension candidate; Android development has related adoption work. Installed two-profile pairing/offline reconnect, physical-network behavior and extension↔app interoperability still need acceptance. Older app/TV clients are not assumed compatible.

Start with the Nanah user guide · Auto-sync contract and scope · Profiles and PINs · QA and remaining gates

Start with one rule

  1. Install the app or extension and choose the intended profile.
  2. Add a channel using its @handle, channel ID or supported URL, or add a keyword.
  3. Choose Blocklist to hide matches, or Whitelist to allow only your chosen rules. In the extension, refresh the page to check the result.
  4. Add Kids rules, family profiles, viewing limits or device sharing when needed.

For a protected profile, use the owning parent's Edit Rules action and lock the parent/admin session afterward. Protect parent accounts too: a child switching PIN cannot secure an unprotected parent account.

Privacy and filtering limits

Local-first runtime. Extension rules and settings stay in browser storage. The extension does not run a FilterTube account service, extension analytics, or ad-tracking profile. YouTube and YouTube Kids pages still load their normal services, and weak identity targets may use bounded YouTube resolver requests. Device-sync services can observe connection metadata; Home/Internet Pickup have the distinct data boundaries described above.

JSON-First Channel Identity. JSON-backed surfaces can be filtered before paint when YouTube exposes the needed fields. Menu actions use proven local identity where available; weak targets may still use a resolver. Identity comes from intercepted data, learned maps and DOM evidence; bounded fallback resolvers remain for weak watch, Shorts, Kids, playlist, and menu targets. Some route-specific surfaces still need DOM enrichment or a bounded background resolver. Current audit work is tightening no-rule, route, lifecycle, and resolver budgets.

Shorts blocking is fastest when FilterTube already has a stable videoId -> UC... mapping. Some Shorts surfaces still expose only /shorts/VIDEO_ID at first; the video id is treated as a join key until a stronger owner source is available. FilterTube may use a bounded watch/Shorts resolver. That path is slower, route-specific, and still needs the same source-confidence and side-effect proof as the rest of the identity waterfall.

An unmanaged browser/device owner can disable or uninstall the extension. No permanent advert-filtering immunity, universal layout coverage, trusted clock or pooled cross-device time budget is promised. Private Notes and Auto-sync enrollment/queue state are not ordinary backup payloads.

Privacy policy · Channel identity details · Architecture

Development and documentation

This repository contains the extension runtime and website. Native apps have their own implementations and release checks; a successful extension test or build is not proof of native parity.

Extension source version

npm install
npm run build:chrome       # Package in dist/chrome
npm run build:firefox      # Package in dist/firefox
npm run build             # All supported browser packages

Load dist/chrome as an unpacked extension in Chrome/Edge/Brave, or load dist/firefox/manifest.json through Firefox's temporary-addon tooling. Development manifest selectors are npm run dev:chrome and npm run dev:firefox; they change the root manifest.json. Build scripts update the source-version badge; release publication remains a separate reviewed action.

For the website, run npm install then npm run dev from website/. For native apps and Android debugging, use the app release/runtime workflow and Android distribution guide.

Community and support

Report an issue · Reddit: r/FilterTubeApp · Support development

FilterTube grew from a parent's request for clearer Kids filtering. It is for families, students and anyone who wants more control over what they watch.

Released under the MIT License. Detailed release history lives in CHANGELOG.md.