Skip to content

Commit 04e4617

Browse files
BUMP: v3.1.8 support page and export fix
1 parent 23a2e97 commit 04e4617

20 files changed

+226
-49
lines changed

CHANGELOG.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,22 @@
11
# Changelog
22

3+
## Version 3.1.8
4+
5+
### Support + Backups
6+
7+
- Added a new Support page in the dashboard with Ko-fi embed.
8+
- Auto-backups now overwrite a single rolling file: `Downloads/FilterTube Backup/FilterTube-Backup-Latest.json`.
9+
- Auto-backup download URL handling is now cross-browser:
10+
- Uses Blob URLs when available.
11+
- Falls back to `data:` URLs in Chrome MV3 service worker contexts where `URL.createObjectURL` is unavailable.
12+
13+
### Fixes
14+
15+
- Fixed auto-backup failures in Chrome caused by `URL.createObjectURL is not a function`.
16+
- Fixed download failures in Firefox caused by `data:` URL download restrictions.
17+
18+
---
19+
320
## Version 3.1.7
421

522
### YouTube Kids & Backup support

README.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66

77
[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/varshneydevansh/FilterTube)
88

9+
[![Ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/filtertube)
10+
911
## Overview
1012

1113
FilterTube is a browser extension that gives you control over your YouTube feed. Filter videos, shorts, channels, and comments using keywords and smart rules—all processing happens privately on your device.
@@ -160,7 +162,7 @@ We believe in privacy by design.
160162
161163
FilterTube uses a robust hybrid blocking mechanism for YouTube Shorts.
162164
163-
**Current behavior (v3.1.7):** Shorts blocking is often **near-instant** because FilterTube learns `videoId → UC...` mappings from intercepted YouTube JSON and persists them. This makes Shorts behave much more like regular videos on Home/Search.
165+
**Current behavior (v3.1.8):** Shorts blocking is often **near-instant** because FilterTube learns `videoId → UC...` mappings from intercepted YouTube JSON and persists them. This makes Shorts behave much more like regular videos on Home/Search.
164166
165167
```ascii
166168
[User Clicks "Block"]
@@ -191,6 +193,8 @@ FilterTube uses a robust hybrid blocking mechanism for YouTube Shorts.
191193
192194
Found a bug or have a feature request? [Open an issue on GitHub](https://github.com/varshneydevansh/FilterTube/issues).
193195
196+
Want to support the project? You can donate on Ko-fi: [ko-fi.com/filtertube](https://ko-fi.com/filtertube)
197+
194198
## License
195199
196200
This project is licensed under the MIT License - see the LICENSE file for details.

css/tab-view.css

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -436,6 +436,41 @@ body {
436436
gap: var(--ft-space-md);
437437
}
438438

439+
/* Support page */
440+
.support-actions {
441+
display: flex;
442+
align-items: center;
443+
gap: var(--ft-space-sm);
444+
flex-wrap: wrap;
445+
margin-top: var(--ft-space-md);
446+
}
447+
448+
.support-actions .btn-secondary {
449+
text-decoration: none;
450+
display: inline-flex;
451+
align-items: center;
452+
justify-content: center;
453+
}
454+
455+
.support-kofi-iframe {
456+
border: 1px solid var(--ft-color-sem-neutral-border);
457+
border-radius: var(--ft-radius-md);
458+
width: 100%;
459+
background: var(--ft-color-bg-panel);
460+
padding: 4px;
461+
box-sizing: border-box;
462+
}
463+
464+
.support-disclaimer {
465+
font-size: 13px;
466+
color: var(--ft-color-text-secondary);
467+
background: var(--ft-color-bg-panel);
468+
border: 1px solid var(--ft-color-sem-neutral-border);
469+
border-radius: var(--ft-radius-md);
470+
padding: 10px 12px;
471+
margin-bottom: var(--ft-space-md);
472+
}
473+
439474
.help-item {
440475
padding: var(--ft-space-md);
441476
border: 1px solid var(--ft-color-sem-neutral-border);

data/release_notes.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,19 @@
22
{
33
"_comment": "Shared release notes source for the dashboard What’s New tab and the YouTube release banner. Keep entries sorted newest-first by version."
44
},
5+
{
6+
"version": "3.1.8",
7+
"headline": "Support tab + reliable auto-backups",
8+
"summary": "New Support page (Ko-fi) and auto-backups now work reliably on both Chrome and Firefox.",
9+
"bannerSummary": "Auto-backups are now cross-browser and overwrite a single latest backup file.",
10+
"highlights": [
11+
"Added a Support page in the dashboard with Ko-fi embed.",
12+
"Auto-backups now overwrite a single rolling file: Downloads/FilterTube Backup/FilterTube-Backup-Latest.json.",
13+
"Download strategy is cross-browser (Blob URL when available; data: URL fallback for Chrome MV3 service worker).",
14+
"Firefox downloads no longer fail due to data: URL restrictions."
15+
],
16+
"detailsUrl": "https://github.com/varshneydevansh/FilterTube/releases/tag/v3.1.8"
17+
},
518
{
619
"version": "3.1.7",
720
"headline": "YT Kids + Auto-backup support",

docs/ARCHITECTURE.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
# FilterTube v3.1.7 Architecture Documentation
1+
# FilterTube v3.1.8 Architecture Documentation
22

33
## Executive Summary
44

5-
FilterTube v3.1.7 implements a robust **Hybrid Filtering Architecture** that combines preemptive **Data Interception (Main World)** with a resilient **DOM Fallback (Isolated World)**. This dual-layer approach ensures comprehensive content filtering across all YouTube surfaces (Home, Search, Watch, Shorts) while maintaining high performance and a "Zero Flash" user experience when YouTube routes content through JSON.
5+
FilterTube v3.1.8 implements a robust **Hybrid Filtering Architecture** that combines preemptive **Data Interception (Main World)** with a resilient **DOM Fallback (Isolated World)**. This dual-layer approach ensures comprehensive content filtering across all YouTube surfaces (Home, Search, Watch, Shorts) while maintaining high performance and a "Zero Flash" user experience when YouTube routes content through JSON.
66

77
## Architecture Overview
88

docs/CHANNEL_BLOCKING_SYSTEM.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Channel Blocking System (v3.1.7)
1+
# Channel Blocking System (v3.1.8)
22

33
## 0. Goal & Non-Goals
44

docs/NETWORK_REQUEST_PIPELINE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## Overview
44

5-
FilterTube v3.1.7 implements a sophisticated network request pipeline for channel identity resolution across both YouTube Main and YouTube Kids domains. This pipeline ensures accurate channel information is available for 3-dot menu labels and blocking actions.
5+
FilterTube v3.1.8 implements a sophisticated network request pipeline for channel identity resolution across both YouTube Main and YouTube Kids domains. This pipeline ensures accurate channel information is available for 3-dot menu labels and blocking actions.
66

77
## Architecture
88

docs/TECHNICAL.md

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# FilterTube v3.1.7 Technical Documentation
1+
# FilterTube v3.1.8 Technical Documentation
22

3-
This document provides a deep technical dive into implementation of FilterTube's hybrid filtering engine as of v3.1.7.
3+
This document provides a deep technical dive into implementation of FilterTube's hybrid filtering engine as of v3.1.8.
44

55
## Core Technologies
66

@@ -11,6 +11,17 @@ This document provides a deep technical dive into implementation of FilterTube's
1111
* **Custom Events / postMessage**: Used for cross-world communication.
1212
* **StateManager**: Centralized state management for consistent settings across UI and background.
1313

14+
## Cross-browser Downloads (Export + Auto-backup)
15+
16+
FilterTube writes JSON files using the browser `downloads` API.
17+
18+
* **Blob URL path**: when `URL.createObjectURL` is available, FilterTube generates a Blob URL so downloads work in Firefox (which blocks `data:` URL downloads).
19+
* **Data URL fallback**: in Chrome MV3 service worker contexts, `URL.createObjectURL` may be unavailable; FilterTube falls back to `data:application/json` URLs.
20+
21+
Auto-backups are written as a single rolling file (silent overwrite) to avoid clutter:
22+
23+
* `Downloads/FilterTube Backup/FilterTube-Backup-Latest.json`
24+
1425
## 1. Data Interception: `ytInitialData` Hook
1526

1627
**Motivation:**

docs/THREE_DOT_MENU_IMPROVEMENTS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## Overview
44

5-
FilterTube v3.1.7 significantly improves the 3-dot menu experience across YouTube Main and YouTube Kids, ensuring accurate channel names are displayed and blocking actions work reliably for Shorts, Mixes, Playlists, and Watch page videos.
5+
FilterTube v3.1.8 significantly improves the 3-dot menu experience across YouTube Main and YouTube Kids, ensuring accurate channel names are displayed and blocking actions work reliably for Shorts, Mixes, Playlists, and Watch page videos.
66

77
## Problem Statement
88

docs/YOUTUBE_KIDS_INTEGRATION.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## Overview
44

5-
FilterTube v3.1.7 introduces native integration with YouTube Kids, allowing users to block channels directly from Kids UI while maintaining the same filtering power available on YouTube Main.
5+
FilterTube v3.1.8 introduces native integration with YouTube Kids, allowing users to block channels directly from Kids UI while maintaining the same filtering power available on YouTube Main.
66

77
## Architecture
88

0 commit comments

Comments
 (0)