Premium YouTube enhancement extension for Chrome and Firefox with 150+ features — theater split, DeArrow, downloads, transcript viewer, video/channel hiding, and deep playback controls. Zero configuration required.
Option A — CRX sideload:
- Download
astra-deck-chrome-v*.crxfrom the latest release - Open
chrome://extensions/, enable Developer mode - Drag and drop the
.crxfile onto the page
Option B — Unpacked:
- Download or clone the
extension/folder - Open
chrome://extensions/, enable Developer mode - Click Load unpacked and select the
extension/folder
- Download
astra-deck-firefox-v*.xpifrom the latest release - Open
about:addons, click the gear icon, select Install Add-on From File - Select the
.xpifile
Requires Firefox 128+.
A userscript build is also available. Install Tampermonkey or Violentmonkey, then click here to install.
Some features (SharedAudio, SponsorBlock per-category, Cobalt downloads) are only available in the userscript. The extension uses a MediaDL-only download path.
| Feature | Default |
|---|---|
| Theater Split — fullscreen video, scroll to reveal comments side-by-side | On |
| Video Hider — hide videos/channels from feeds with X buttons, keyword filter, regex, duration filter | On |
| Video Context Menu — right-click player for downloads, VLC/MPV streaming, transcript, screenshot | On |
| Settings Panel — searchable, categorized, instant-apply, export/import/reset | On |
| Return YouTube Dislike — show dislike counts via RYD API | Off |
| DeArrow — replace clickbait titles/thumbnails via crowdsourced database | Off |
| Feature | Default |
|---|---|
| Logo Quick Links — hover dropdown with History, Watch Later, Playlists, Liked, Subs | On |
| Hide Sidebar / Hide Shorts / Hide Related / Hide Description | On |
| Subscriptions Grid / Homepage Grid Align / Videos Per Row | On |
| Styled Filter Chips / Compact Layout / Thin Scrollbar | On |
| Square Search Bar / Square Avatars | On |
| Compact Unfixed Header / Force Dark Everywhere | Off |
| Feature | Default |
|---|---|
| Watch Page Restyle — glassmorphism accents, refined metadata | On |
| Refined Comments — card layout with clean thread lines | On |
| Expand Video Width / Disable Ambient Mode | On |
| Hide Merch, AI Summary, Hashtags, Pinned Comments, Info Panels | On |
| Clean Share URLs — strip tracking params | On |
| Auto-Expand Description / Sticky Chat / Scroll to Player | Off |
| Feature | Default |
|---|---|
| Auto Quality (Max/4K/1440p/1080p/720p/480p) / Enhanced Bitrate | On |
| Auto-Resume Position (configurable threshold) | On |
| Custom Progress Bar Color (color picker) | Off |
| Remaining Time Display / Time in Tab Title | Off |
| A-B Loop / Fine Speed Control / Persistent Speed / Per-Channel Speed | Off |
| Codec Selector (H.264/VP9/AV1) / Force Standard FPS | Off |
| Video Screenshot / Video Zoom (Ctrl+scroll, up to 5x) | Off |
| Cinema Ambient Glow / Nyan Cat Progress Bar | Off |
| Speed Indicator Overlay / Custom Speed Buttons (0.5x-3x) | Off |
| Pop-Out Player (Document PiP) / PiP Button / Fullscreen on Double-Click | Off |
| Feature | Default |
|---|---|
| Remove Shorts / Redirect Shorts to Regular Player | On |
| Channels open on Videos Tab | On |
| Hide Collaborations / News / Playlists / Playables / Members Only | On |
| Hide Watched Videos (dim or hide) / Grayscale Thumbnails | Off |
| Anti-Translate / Not Interested Button / Open in New Tab | Off |
| Disable Infinite Scroll / Disable SPA Navigation | Off |
| Feature | Default |
|---|---|
| Local Download Button (via MediaDL / yt-dlp) | On |
| MP3 Download Button | On |
| Auto-Download on Visit | Off |
| Download Thumbnail (maxres) | Off |
| Download Quality selector (best/2160/1440/1080/720/480) | Best |
Downloads use the built-in MediaDL server which bundles yt-dlp + ffmpeg. Install via the one-click installer in the settings panel — no manual setup required.
| Feature | Default |
|---|---|
| Comment Search — filter bar above comments | Off |
| Comment Navigator — J/K keyboard navigation | Off |
| Sort Comments Newest First | Off |
| Creator Comment Highlight | Off |
| Handle Revealer — show original channel name next to @handle | Off |
| Feature | Default |
|---|---|
| Premium Live Chat styling | On |
| Configurable element hiding (header, emoji, super chats, polls, etc.) | On |
| Chat Keyword Filter | Off |
| Adaptive Live Layout | Off |
| Feature | Default |
|---|---|
| Auto-Dismiss "Still Watching?" | Off |
| Auto Theater Mode / Auto Subtitles / Auto-Like Subscribed | Off |
| Auto-Pause on Tab Switch / Pause Other Tabs | Off |
| Auto-Open Chapters / Auto-Open Transcript | Off |
| Auto-Close Popups (cookie/survey/premium) | Off |
| Prevent Autoplay / Disable Autoplay Next | Off |
| Redirect Home to Subscriptions | Off |
| Remember Volume / Persistent Speed | Off |
| Feature | Default |
|---|---|
| Resume Playback (500-entry cap, 15s save interval) | Off |
| Mini Player Bar (floating progress/play/pause on scroll-past) | Off |
| Playback Stats Overlay (codec, resolution, dropped frames, bandwidth) | Off |
| Watch Time Tracker (90-day retention) | Off |
| Timestamp Bookmarks (inline notes, persistent storage) | Off |
| Transcript Viewer (sidebar with clickable timestamps) | Off |
| Blue Light Filter (adjustable 10-80%) | Off |
| Focused Mode (hide everything except video + comments) | Off |
| Custom CSS Injection | Off |
| CPU Tamer (background tab timer throttling) | Off |
| Settings Profiles / Statistics Dashboard / Debug Mode | Off |
| Fit Player to Window | Off |
Toggle individual elements on/off through the settings panel:
- Action Buttons — Like, Dislike, Share, Ask/AI, Clip, Thanks, Save, Sponsor, More Actions
- Player Controls — Next, Autoplay, Subtitles, Captions, Miniplayer, PiP, Theater, Fullscreen
- Watch Elements — Join Button, Ask Button, Save Button, Ask AI Section, Podcast Section, Transcript Section
- Chat Elements — Header, Menu, Popout, Reactions, Timestamps, Polls, Ticker, Leaderboard, Super Chats, Emoji, Bots
Click the gear icon in the YouTube masthead or player controls, or press Ctrl+Alt+Y / Ctrl+Shift+Y.
- Searchable sidebar with categorized feature groups
- Toggle switches with instant apply
- Sub-feature controls for granular element hiding
- Textarea editors for keyword filters, quick links, custom CSS
- Export / Import / Reset
- Conflict detection (auto-disables conflicting features with toast notification)
The extension also has a standalone Options Page (chrome://extensions > Astra Deck > Details > Extension options) with storage stats, backup/restore, and a full settings editor modal.
document_start
early.css Anti-FOUC CSS (scoped to feature body classes)
document_idle
ytkit.js ISOLATED world — all features, DOM manipulation, settings UI
background.js Service worker — fetch proxy, downloads, cookie bridge, panel toggle
- Single ISOLATED world script — no MAIN world scripts in the extension build
- SPA-aware — hooks
yt-navigate-finish,yt-page-data-updated,popstate, andvideo-idattribute changes - Tiered feature init — critical features load synchronously, normal features in
requestAnimationFrame, lazy features inrequestIdleCallback - Crash recovery — features that crash 3 times auto-disable with console warning
- Conflict map — 6 conflict pairs enforced at both toggle and init time
- Trusted Types compliant — all innerHTML via
TrustedHTMLpolicy wrapper - Safe mode — append
?ytkit=safeto any YouTube URL, orytkit.unsafe()in console to exit
- EXT_FETCH proxy uses domain allowlist — blocks SSRF to private networks
- Request/response headers filtered (strips
Cookie,Authorization,Set-Cookie, etc.) - Response body capped at 10 MB, fetch timeout capped at 60s
- HTTP methods validated, download URLs protocol-checked (HTTP/S only)
- Explicit CSP:
script-src 'self'; object-src 'self'
| Browser | Method | Status |
|---|---|---|
| Chrome / Edge / Brave | Extension (MV3) | Fully supported |
| Firefox 128+ | Extension (MV3) | Fully supported |
| Chrome / Firefox | Tampermonkey / Violentmonkey | Supported (userscript) |
| Safari | Userscripts app | Limited |
Not supported: Mobile browsers, YouTube Music, YouTube Studio, embedded players.
npm install
node build-extension.js # Build at current version
node build-extension.js --bump patch # Bump and build
node build-extension.js --bump minor --with-userscript # Include userscript artifactOutputs in build/:
astra-deck-chrome-v*.zip+.crx(CRX3 signed withytkit.pem)astra-deck-firefox-v*.zip+.xpiytkit-v*.user.js(with--with-userscript)
| Project | Description |
|---|---|
| YoutubeAdblock | Standalone aggressive ad blocker with deeper proxy hooks |
| Chapterizer | Offline AI chapter generation via NLP (formerly YTKit's ChapterForge) |
MIT — Matthew Parker