Users Are Blocking YouTube Shorts Because YouTube Won't. Voice AI Demos: Build Layer 6 In.
By Rishi2026-02-04
# Users Are Blocking YouTube Shorts Because YouTube Won't. Voice AI Demos: Build Layer 6 In.
**Meta description**: Users built uBlock filter to hide YouTube Shorts because YouTube won't provide the option. 616 HN points. This is Layer 6 (Dark Pattern Prevention) implemented by revolt. Voice AI demos should build user control IN.
**Tags**: Voice AI, YouTube Shorts, Layer 6, Dark Pattern Prevention, User Autonomy, Infinite Scrolling, EU Regulation, Trust Architecture, uBlock Origin, Platform Control
---
## Users Block Shorts. YouTube Won't Give Them The Option.
A [uBlock Origin filter list](https://github.com/i5heu/ublock-hide-yt-shorts/) hit #3 on HackerNews today. **616 points, 195 comments.** What does it do?
**Hides all YouTube Shorts.**
Why does this need to exist? Because YouTube doesn't provide a native "hide Shorts" option. Users who want to avoid the vertical video dopamine loop have to install third-party browser extensions to block content YouTube forces into their interface.
**This is Layer 6 (Dark Pattern Prevention) implemented by user revolt.**
From [Article #169](https://demogod.me/blogs/eu-killing-infinite-scrolling-voice-ai-demos-attention): The EU just banned infinite scrolling on TikTok. YouTube Shorts uses the same manipulative design: endless vertical video scroll, no natural stopping points, algorithm-driven recommendations, FOMO engagement loops.
**Users are implementing the EU regulation themselves** because YouTube won't do it voluntarily.
---
## The Tool: 244 Stars in Days
From the [GitHub repo](https://github.com/i5heu/ublock-hide-yt-shorts/):
> A maintained uBlock Origin filter list to hide all traces of YouTube shorts videos.
**Installation:**
```
Copy this link:
https://raw.githubusercontent.com/i5heu/ublock-hide-yt-shorts/master/list.txt
Go to: uBlock Origin > Dashboard > Filter lists
Scroll to bottom
Paste under "Import..."
```
**What it blocks:**
- Shorts shelf on homepage
- Shorts in search results
- Shorts in recommended sidebar
- Shorts in subscriptions feed
- ALL traces of Shorts interface
**Bonus:** The repo also provides a filter to hide YouTube comments entirely.
**Maintenance note:** The original creator [@gijsdev](https://github.com/gijsdev) vanished after 6 months. [@i5heu](https://heidenstedt.org) took over maintenance. **The demand was high enough that someone stepped up to maintain it.**
**244 stars. 4 forks. 2 watchers. All in days since the fork.**
---
## Why This Matters for Voice AI Demos
This isn't just about YouTube Shorts. This is about **what happens when platforms don't give users control over manipulative design patterns.**
**Users revolt. Users build workarounds. Users lose trust.**
From [Article #165](https://demogod.me/blogs/tipping-screens-manipulate-66-percent-users-layer-6-dark-patterns):
**Layer 6: Dark Pattern Prevention** has four mechanisms:
1. **Equal Conversational Weight** - No manipulation via conversation flow
2. **No Negative Reframing** - Don't punish user choices
3. **No Artificial Time Pressure** - No fake urgency
4. **Explicit Opt-Out Placement** - Make exit easy and visible
**YouTube Shorts violates mechanism #4:** There is no opt-out. The platform forces Shorts into every interface. Users who want to avoid vertical video addiction **have to install third-party blockers.**
**Voice AI demos face the same choice:**
**Option 1: Build user control IN**
- Provide clear conversation exit
- Allow users to disable features
- Make opt-out visible and easy
- Respect user autonomy
**Option 2: Force features, wait for user revolt**
- No native controls for manipulative patterns
- Users install blocking tools
- Users lose trust
- Platform reputation damaged
**YouTube chose Option 2.** Now users are building blockers with 616 HN upvotes.
---
## The Pattern: Platforms Won't, Users Will
This is the third major example in three days:
**Example 1: EU bans infinite scrolling** (Article #169)
- TikTok forced to disable infinite scroll
- Required to implement screen time breaks
- Regulator intervention because platform wouldn't act
**Example 2: Publishers block Internet Archive** (Article #171)
- Publishers block archives to prevent AI scraping
- No verification APIs provided
- Users lose historical access
**Example 3: Users block YouTube Shorts** (Article #172)
- YouTube won't provide "hide Shorts" option
- Users build uBlock filters
- Platform loses goodwill
**The pattern:**
1. Platform implements manipulative design
2. Platform refuses to provide user controls
3. Users revolt (via tools, regulation, or abandonment)
4. Platform forced to change (or loses users)
**Voice AI demos: Skip steps 1-3. Implement Layer 6 from day one.**
---
## YouTube's Missing Controls
Here's what YouTube SHOULD provide natively:
```typescript
// YouTube Settings > Preferences (SHOULD EXIST, DOESN'T)
interface YouTubeUserControls {
shorts: {
enable_shorts_shelf: boolean; // Default: true
show_shorts_in_search: boolean; // Default: true
show_shorts_in_recommendations: boolean; // Default: true
vertical_video_autoplay: boolean; // Default: true
};
infinite_scroll: {
enable_infinite_homepage: boolean; // Default: true
enable_infinite_shorts: boolean; // Default: true
max_videos_before_break: number; // Default: unlimited
};
engagement_patterns: {
show_viewer_count: boolean; // Default: true (FOMO)
show_trending_badge: boolean; // Default: true (FOMO)
autoplay_next_video: boolean; // Default: true
};
}
```
**None of these controls exist.** YouTube provides:
- Playback speed controls ✅
- Autoplay toggle ✅
- Restricted mode ✅
- **Shorts visibility controls ❌**
- **Infinite scroll controls ❌**
- **Engagement pattern controls ❌**
**Users wanted option #4: Disable Shorts.** YouTube said no. Users built it anyway.
---
## Voice AI Demo Implementation: Layer 6 Native Controls
Here's what Voice AI demos should build IN, not wait for users to block:
```typescript
// Voice AI Demo: Dark Pattern Prevention Controls
interface VoiceAIDemoControls {
conversation_flow: {
max_continuous_turns: number; // Default: 5 (natural break point)
offer_exit_after_goal: boolean; // Default: true
session_time_limit_minutes: number; // Default: 10
explicit_exit_button_visible: boolean; // Default: TRUE (not hidden)
};
manipulative_patterns: {
disable_artificial_urgency: boolean; // Default: TRUE (no fake timers)
disable_negative_reframing: boolean; // Default: TRUE (no punishment language)
equal_weight_all_options: boolean; // Default: TRUE (no dark patterns in choices)
};
user_autonomy: {
easy_exit_placement: "top_right" | "always_visible"; // Default: always_visible
pause_conversation_available: boolean; // Default: true
disable_conversation_extension: boolean; // User can block "but wait, there's more"
};
}
// Example: Natural stopping point
async function check_conversation_stopping_point(
turns_count: number,
user_goal_completed: boolean,
session_duration_minutes: number
): Promise<"offer_exit" | "continue"> {
const controls = get_user_controls(); // Load user preferences
// Rule 1: Goal completed → always offer exit
if (user_goal_completed) {
return "offer_exit";
}
// Rule 2: Max turns reached → offer exit
if (turns_count >= controls.conversation_flow.max_continuous_turns) {
return "offer_exit";
}
// Rule 3: Session time limit → offer exit
if (session_duration_minutes >= controls.conversation_flow.session_time_limit_minutes) {
return "offer_exit";
}
return "continue";
}
// Example: Explicit exit option (ALWAYS VISIBLE)
function render_conversation_interface(): React.Component {
return (
{/* Exit button: TOP RIGHT, ALWAYS VISIBLE */}
{/* Natural stopping point offer */}
{should_offer_exit && (
Your question has been answered. Would you like to:
)}
);
}
```
**Key principle:** Users control the conversation, not the platform. If users want to leave, make it EASY. Don't hide the exit. Don't use dark patterns to extend engagement.
---
## The EU Regulation Connection
From [Article #169](https://demogod.me/blogs/eu-killing-infinite-scrolling-voice-ai-demos-attention), the EU Digital Services Act enforcement against TikTok:
**TikTok violations → Voice AI parallels:**
| TikTok Violation | EU Action | Voice AI Equivalent | Layer 6 Mechanism |
|------------------|-----------|---------------------|-------------------|
| Infinite scrolling (no stopping points) | Disable infinite scroll | No natural conversation exit | Equal Conversational Weight |
| FOMO-driven recommendations | Change recommender systems | "But wait, there's more" extensions | No Negative Reframing |
| Endless engagement without breaks | Require screen time breaks | No session time limits | No Artificial Time Pressure |
| No user control over features | Require design customization settings | No "disable feature X" options | Explicit Opt-Out Placement |
**YouTube Shorts violates the same pattern as TikTok.** Users are implementing the EU regulation themselves via uBlock filters.
**Voice AI demos: Don't wait for EU enforcement. Implement Layer 6 controls natively.**
---
## The HackerNews Comments: Why Users Want This
From the HN thread (616 points, 195 comments):
**User demand themes:**
1. **"Shorts are addictive"**
- Vertical video scroll = dopamine loop
- No natural stopping points
- Algorithm keeps you watching
2. **"YouTube won't provide the option"**
- No native "hide Shorts" setting
- Feature forced into every interface
- Users have to resort to third-party blockers
3. **"Content quality degradation"**
- Shorts incentivize low-effort content
- Vertical video format limits depth
- Algorithm prioritizes engagement over quality
4. **"Interface pollution"**
- Shorts shelf takes homepage space
- Shorts appear in search results
- Can't escape vertical video even if you want long-form
**Common sentiment:** "I just want to watch long-form videos. Why can't YouTube let me hide Shorts?"
**YouTube's answer:** Silence. No native option provided.
**User response:** Build blockers. 244 stars. 616 HN upvotes.
---
## Voice AI Demo Checklist: Don't Be YouTube
**Before launching your Voice AI demo, ask:**
**User Control Questions:**
- [ ] Can users easily exit conversations?
- [ ] Is the exit button visible and accessible?
- [ ] Do we offer natural stopping points?
- [ ] Can users disable manipulative features?
- [ ] Are opt-out controls prominent, not hidden?
**Dark Pattern Prevention:**
- [ ] Do we use artificial urgency? (Layer 6 violation)
- [ ] Do we punish user exit choices? (Layer 6 violation)
- [ ] Do we extend conversations artificially? (Layer 6 violation)
- [ ] Do we hide exit options? (Layer 6 violation)
**Regulation Compliance:**
- [ ] Would EU regulators flag our conversation flow as addictive design?
- [ ] Do we provide screen time / session limits?
- [ ] Can users customize engagement features?
- [ ] Are we transparent about conversation patterns?
**If you answer "no" to user control or "yes" to dark patterns:**
**You're YouTube. Users will revolt.**
They'll build browser extensions to block your features. They'll upvote those extensions on HackerNews. They'll lose trust in your platform.
**Or worse: Regulators will force you to change** (see: TikTok infinite scroll ban).
---
## The Blocker Arms Race
Here's what happens when platforms don't provide controls:
**Step 1: Platform forces feature**
- YouTube forces Shorts into every interface
- No native "hide" option
**Step 2: Users build blockers**
- uBlock Origin filter list created
- 244 stars, 616 HN upvotes
- Users share workarounds
**Step 3: Platform breaks blockers**
- YouTube changes CSS selectors
- Filter list needs updates
- Cat-and-mouse game begins
**Step 4: Maintainer burnout**
- Original creator vanishes (6 months)
- New maintainer steps up (i5heu)
- Community-driven maintenance
**Step 5: Platform reputation damage**
- Users resent forced features
- Trust eroded
- "YouTube doesn't respect user choice"
**Voice AI demos: Skip all 5 steps. Provide native controls from day one.**
---
## The "Bonus" Filter: Hiding Comments
From the repo:
> **Bonus: hide YouTube Comments**
> https://raw.githubusercontent.com/i5heu/ublock-hide-yt-shorts/master/comments.txt
**Why is this a "bonus"?**
Because users also want to hide YouTube comments. The toxic, low-quality, rage-bait comment section is another engagement pattern YouTube won't let users disable.
**Pattern recognition:**
- YouTube forces engagement patterns (Shorts, comments)
- Users want to disable them
- YouTube refuses
- Users build blockers
**For Voice AI demos:**
What features are you forcing that users might want to disable?
- Proactive suggestions ("Have you considered...?")
- Conversation extensions ("But there's more...")
- Follow-up questions ("Would you also like to know...?")
**Build opt-out controls for ALL engagement patterns.**
```typescript
// Voice AI: User-controllable engagement features
interface EngagementControls {
proactive_suggestions: boolean; // Default: true, user can disable
conversation_extensions: boolean; // Default: true, user can disable
follow_up_questions: boolean; // Default: true, user can disable
related_topics: boolean; // Default: true, user can disable
}
async function should_offer_proactive_suggestion(
context: ConversationContext
): Promise {
const user_controls = get_user_engagement_controls();
// User disabled proactive suggestions → respect their choice
if (!user_controls.proactive_suggestions) {
return false;
}
// User enabled → offer suggestion
return true;
}
```
**Key principle:** Every engagement pattern should have a user control. No forced features.
---
## The Maintenance Problem
From the repo README:
> After the initial creator of this list @gijsdev is now vanished for half a year, i (i5heu) took it on me to maintain this list.
**What this reveals:**
**User demand is high enough that strangers volunteer to maintain blockers** when the original creator disappears.
This is **sustained user revolt.** Not a one-time complaint. Not a passing frustration. Users care enough about blocking Shorts that they:
1. Install third-party extensions
2. Import custom filter lists
3. Volunteer to maintain those lists when creators vanish
4. Star repos (244 stars)
5. Upvote on HN (616 points)
**For Voice AI demos:**
If users are installing blockers for your features, you've failed at Layer 6 (Dark Pattern Prevention).
**The correct response:**
1. Acknowledge user frustration
2. Implement native controls
3. Make opt-out easy and visible
4. Respect user autonomy
**The YouTube response:**
1. Ignore user frustration
2. Force features anyway
3. Break user blockers with CSS changes
4. Lose trust
---
## Layer 6 Implementation: Complete Checklist
Based on YouTube Shorts blocker analysis, here's the complete Layer 6 checklist for Voice AI demos:
### Mechanism #1: Equal Conversational Weight
**❌ YouTube Shorts approach:**
- Shorts shelf always visible
- Can't hide or minimize
- Takes homepage real estate
- Forced into every interface
**✅ Voice AI approach:**
```typescript
interface ConversationBalance {
no_manipulative_option_framing: true; // All options equal weight
no_hidden_defaults: true; // No pre-selected manipulative choices
transparent_consequences: true; // User sees what each choice does
}
```
**Questions to ask:**
- [ ] Do we present all options with equal visual weight?
- [ ] Are we hiding the "no thanks" option?
- [ ] Do we use language to bias user toward our preferred choice?
### Mechanism #2: No Negative Reframing
**❌ YouTube Shorts approach:**
- No "I don't want Shorts" option exists
- Users have to install blockers (extra effort)
- Platform punishes opt-out with inconvenience
**✅ Voice AI approach:**
```typescript
async function handle_user_exit_choice(): Promise {
// WRONG: "Are you sure? You'll miss out on..."
// WRONG: "Leaving so soon? But we have more to show you..."
// RIGHT: "Thanks for using our demo. Have a great day!"
await end_conversation_positive_framing();
}
```
**Questions to ask:**
- [ ] Do we punish users for choosing to exit?
- [ ] Do we use FOMO language when users opt out?
- [ ] Do we make exit harder than entry?
### Mechanism #3: No Artificial Time Pressure
**❌ YouTube Shorts approach:**
- Infinite scroll (no natural end)
- Autoplay next video (no pause)
- Endless recommendation loop
**✅ Voice AI approach:**
```typescript
interface SessionLimits {
max_continuous_turns: number; // e.g., 5
session_time_limit_minutes: number; // e.g., 10
natural_stopping_points: boolean; // Offer exit after goal completion
}
```
**Questions to ask:**
- [ ] Do we create artificial urgency to keep users engaged?
- [ ] Do we provide natural stopping points?
- [ ] Can users pause or end sessions easily?
### Mechanism #4: Explicit Opt-Out Placement
**❌ YouTube Shorts approach:**
- NO opt-out option exists
- Users forced to install third-party blockers
- 616 HN upvotes for blocker = massive user demand
**✅ Voice AI approach:**
```typescript
function render_exit_controls(): React.Component {
return (
{/* Exit button: ALWAYS VISIBLE, TOP RIGHT */}
{/* Settings: Disable features */}
);
}
```
**Questions to ask:**
- [ ] Is exit/opt-out prominently visible?
- [ ] Do users need third-party tools to disable our features?
- [ ] Are we hiding controls in nested menus?
---
## The Voice AI Parallel: Don't Force Features
**YouTube's mistake:** Force Shorts into every interface, provide no opt-out, wait for user revolt.
**Voice AI equivalent:**
```typescript
// WRONG: YouTube Shorts approach
async function voice_ai_conversation_wrong(): Promise {
// Force proactive suggestions (no opt-out)
while (true) {
await offer_proactive_suggestion(); // Can't disable
await extend_conversation(); // No natural end
await recommend_related_topics(); // Forced
}
// No exit control provided
}
// RIGHT: Layer 6 approach
async function voice_ai_conversation_right(): Promise {
const user_controls = get_user_controls();
for (let turn = 0; turn < user_controls.max_turns; turn++) {
// User goal completed? Offer exit
if (user_goal_completed) {
const user_choice = await offer_exit_or_continue();
if (user_choice === "exit") break;
}
// Respect user opt-out preferences
if (user_controls.proactive_suggestions) {
await offer_suggestion(); // Only if user enabled
}
// Natural stopping point
if (turn >= user_controls.max_continuous_turns) {
await offer_session_break();
break;
}
}
await end_conversation_gracefully();
}
```
**Key difference:** User controls engagement, not the platform.
---
## The Reddit / YouTube / TikTok Pattern
All three platforms now face user/regulatory revolt for the same reason:
**Platform:** Reddit
**Violation:** Blocks Internet Archive (Article #171)
**User impact:** Lose historical access
**Hypocrisy:** Sells same content to Google for millions
**Platform:** YouTube
**Violation:** Forces Shorts, no opt-out (Article #172)
**User impact:** Users build blockers (616 HN upvotes)
**Hypocrisy:** Provides autoplay toggle but not Shorts toggle
**Platform:** TikTok
**Violation:** Infinite scrolling, addictive design (Article #169)
**User impact:** EU bans infinite scroll, requires breaks
**Hypocrisy:** Claims "user choice" while providing no opt-out
**Pattern:**
1. Platform implements manipulative design
2. Platform refuses user controls
3. Users revolt OR regulators intervene
4. Platform forced to change
**Voice AI demos: Learn from this pattern. Implement controls BEFORE revolt/regulation.**
---
## The 244 Stars Metric
**Why does this matter?**
244 GitHub stars for a simple filter list. In days.
**What this signals:**
- High user demand for control
- Willingness to install third-party tools
- Frustration with platform refusal
- Community maintenance when creator disappears
**For Voice AI demos:**
If users are starring GitHub repos that block your features, **you've lost Layer 6 (Dark Pattern Prevention).**
**Prevention checklist:**
- [ ] Build opt-out controls natively
- [ ] Make exit easy and visible
- [ ] Respect user autonomy
- [ ] Don't wait for user revolt
- [ ] Don't wait for regulation
---
## Implementation: The Exit Button
The single most important Layer 6 control:
**Make exit EASY, VISIBLE, and PROMINENT.**
```typescript
// Voice AI Demo: Exit button implementation
function ExitButton(): React.Component {
return (
);
}
```
**What NOT to do** (YouTube Shorts approach):
- ❌ Hide exit in nested menus
- ❌ Make button small (8px font)
- ❌ Use low contrast colors
- ❌ Position at bottom (requires scroll)
- ❌ No exit button at all (force third-party blockers)
**What TO do** (Layer 6 approach):
- ✅ Top right, always visible
- ✅ Large, high contrast
- ✅ Clear label ("End Conversation")
- ✅ One click to exit
- ✅ No confirmation modal (unless data loss risk)
---
## Users Are Blocking Shorts Because YouTube Won't Let Them Hide It.
**The lesson for Voice AI demos:**
When platforms don't give users control, users revolt. They build blockers. They upvote those blockers on HackerNews (616 points). They maintain those blockers when creators vanish.
**YouTube chose:** Force features, ignore user demand, wait for revolt.
**Voice AI demos should choose:** Build controls in, respect user autonomy, implement Layer 6 from day one.
**Layer 6: Dark Pattern Prevention** means:
1. Equal conversational weight (no manipulation)
2. No negative reframing (no punishment for exit)
3. No artificial time pressure (natural stopping points)
4. **Explicit opt-out placement (EASY, VISIBLE exit)**
**Implement all four mechanisms. Or become a case study in user revolt.**
**616 HackerNews upvotes. 244 GitHub stars. Users are blocking Shorts because YouTube won't.**
**Don't be YouTube.**
---
**Nine-Layer Trust Architecture for Voice AI Demos:**
| Layer | Article | Framework | Latest Application |
|-------|---------|-----------|-------------------|
| **6: Dark Pattern Prevention** | #165, #169, #172 | Four mechanisms | Users revolt against platforms that don't provide controls (YouTube Shorts blocker: 616 HN pts, 244 stars) |
**Layer 6 mechanisms:**
1. Equal Conversational Weight
2. No Negative Reframing
3. No Artificial Time Pressure
4. **Explicit Opt-Out Placement** (YouTube violated this, users built blockers)
**Implement Layer 6. Before users build blockers for your features.**