github NicholasBly/youtube-webos 0.7.4

8 hours ago

Added

  • Added "Reduce Telemetry & Tracking"
  • Strips "trackingParams" and "clickTrackingParams" from every JSON request
  • Hooks Fetch/XHR to filter out outgoing network requests to:
    /youtubei/v1/log_event
    /ptracking
    /api/stats/atr
    /api/stats/qoe
    /pagead/viewthroughconversion
    Note: watchtime stats are not filtered as that would likely affect your playback history

AdBlock

  • Clean out player attestation challenge and ad break heartbeat keys when filtering out ads

Fixes

  • Fixed inability to type numbers with a keyboard into the YouTube search bar
    + Fixed SponsorBlock segments not appearing on non-chapter video's progress bars - #68

General / Optimizations

  • Consolidated UI.js UI component generation
  • Centralized config caching across config.js, sponsorblock.js, and adblock.js
  • Removed unused packages - jiti, baseline-browser-mapping
  • Converted some constants to sets for O(1) lookups

Thumbnail Quality

  • Removed intersection observer and scroll observer for legacy webOS
  • Thumbnails are now queued from the order they appear via requestQueue Set
  • Added qualityCache map to store videoID and the max quality for that video, so if the thumbnail gets destroyed/removed we can check the cache later for faster lookup

Performance & Memory Optimizations (webOS)

Event Bus Integration (sponsorblock.js, watch.js)

  • New yt-player-state-change custom event: created a single event dispatcher inside video-quality.js to synchronize video elements/queries across SponsorBlock and watch (clock UI)

Garbage Collection — O(1) (thumbnail-quality.js, emoji-font.js)

  • Cache Clearing Enhancements

Smart UI Pausing (thumbnail-quality.js, emoji-font.js)

  • Thumbnail quality and emoji replacement logic now pauses when not actively viewing the home / video page

Scoped Mutation Observers (thumbnail-quality.js)

  • Split the global observer into two lightweight ones — a structural observer for new elements, and a targeted style observer scoped strictly to individual thumbnail nodes

O(1) Selector Caching (ui.js)

  • Cache successful selector for shortcut elements

Document Tag Filtering (emoji-font.js)

  • Added ALLOWED_EMOJI_TAGS Set to skip unnecessary emoji replacement

OLED-Care Mode

  • Updated Video Time Label to pure black from #060606

Config UI

  • Updated Config UI to use page tabs at the top
  • Fixed navigation logic to ensure proper navigation functionality between tabs/pages/elements

Thumbnail Quality

  • Use fetch request to identify max thumbnail quality before downloading anything to save network resources
  • Use requestAnimationFrame for DOM writes
  • Use getElementsByTagName instead of querySelectorAll
  • Other optimizations to reduce CPU cycles

UI.js

  • Reduce file sizes of NB Logo and SponsorBlock logo

Don't miss a new youtube-webos release

NewReleases is sending notifications on new releases.