Changelog
Release notes and updates
v1.7.2 — 2026-04-29
- The bookmarklet doesn't fail on upcoming live videos. It now shows a box to copy instead of relying on browser permissions to copy to your clipboard.
v1.7.1 — 2026-04-25
Sync Bookmarklet (v1.4)
- Running the bookmarklet on a YouTube channel page now copies the channel's link to your clipboard so you can paste it directly into the Add Channel bar on the dashboard.
- Running the bookmarklet on an unsupported page (home, search, etc.) now shows links to all three pages it can scrape: All Subscriptions, the Subscriptions feed, and a specific playlist.
Imports
- Raised the per-channel video cap from 100 to 500 so big imports (Watch Later, archive playlists) carry through without truncation.
v1.7.0 — 2026-04-25
Supporter Accounts
- Added Channel Surfer accounts with sign up, sign in, and a full dashboard.
- Added the Supporter plan with monthly and annual billing.
Cloud-Synced Channels
- Added cloud-synced custom channels for Supporters.
- Supporters can now view, rename, refresh, edit, delete, and bulk-delete channels from the dashboard.
- Added favorites sync for Supporters, so starred channels follow your account instead of only one device.
- Newly imported or built Supporter channels are now favorited automatically, so they appear on the TV guide right away.
- Added safer downgrade handling so Supporter channels can be preserved locally if you return to the free tier.
Better Importing
- Importing now happens from your dashboard, so you do not need to enter your email every time.
- Added Supporter clipboard detection for Sync bookmarklet imports, with manual paste fallback for browsers that block clipboard reads.
- Added channel lists so you can see which channels you created and delete them whenever you want.
Supporter Sync Bookmarklet
- Added the new Channel Surfer Sync bookmarklet for Supporters.
- Added full subscription sync from YouTube's `/feed/channels` page.
- Added private playlists as first-class saved data, including locked playlist sources that are safe to edit.
- Re-running the Sync bookmarklet on a playlist now updates the existing playlist channel instead of creating duplicates.
- Added a version check so outdated Sync bookmarklets can prompt you to reinstall.
- The Sync bookmarklet now sends channel pages to the dashboard paste-link flow instead of relying on fragile YouTube page parsing.
Paste-Link and Channel Builder
- Added a Supporter paste-link bar for adding YouTube channels and playlists directly from the dashboard.
- Added Channel Builder for creating custom channels from multiple YouTube sources.
- Added category support for custom channels.
- Added support for legacy YouTube vanity URLs like `youtube.com/bloomberg`.
- Added a locked private-playlist row in the editor so private playlist videos are not accidentally wiped on save.
Free Bookmarklet Improvements
- Fixed YouTube's newer layout causing imported videos to fall into an "Unknown Channel" bucket.
- Fixed multi-channel collab cards creating odd channel names like "Channel and 2 more."
- Changed the watched-video filter so a video counts as watched only after 80% progress, instead of any tiny progress bar.
- Added friendlier messages when a page has no videos, only watched videos, or only Shorts.
- Added anonymous diagnostics to help detect when YouTube changes its layout and the bookmarklet needs repair.
- Added source context to free bookmarklet diagnostics for better import health tracking.
Reliability and Testing
- Added a lot of automated tests to improve code quality and reduce regressions.
- Added better error tracking so bugs are easier to spot, understand, and fix.
- Added more tooling to keep the codebase cleaner and safer as Channel Surfer grows.
v1.6.4 — 2026-04-24
- Free bookmarklet on YouTube's "All Subscriptions" page (/feed/channels) now shows a clear Supporter upsell instead of dumping a bug-report dialog. That page is a Supporter-only feature.
- Friendlier messages when the bookmarklet finds nothing to import: a "wrong page" hint when there are no videos at all, and a "looks like all Shorts or already watched" hint when the page has items but none qualify. The full bug-report dialog is reserved for genuine parser failures, not benign empty states.
- Loosened the "watched" filter: a video is now treated as watched only at 80%+ progress, not at any non-zero progress. The old rule wiped out entire playlists where a user had briefly tapped every video. Anything under 80% probably means you started but didn't finish, and you may still want to import it.
- When all videos on a playlist register as watched, the bookmarklet now points at the Supporter Sync bookmarklet, which imports the whole playlist (private playlists too) regardless of watch status.
- Fixed Supporter-page redirect from upsell prompts: clicking OK after the confirm dialog used to silently fail in some browsers (popup blocker treated it as a non-user-gesture). It now reliably opens the page in a new tab when allowed, or in the current tab as a fallback.
- Fixed the "Unknown Channel" mystery tile: videos whose channel attribution couldn't be parsed (often multi-channel collab cards on /feed/subscriptions) are now skipped instead of lumped into a single confusing channel that mixed unrelated creators. The success toast reports the skipped count alongside the watched count.
- Fixed channel-name extraction for YouTube's new lockup view-model layout (rolled out late 2025). The new layout renders channel bylines as plain text inside spans rather than as anchor links, so the old "find an `<a href="/@handle">`" selectors silently failed on ~25% of cards. Channel Surfer now reads from the new `.ytContentMetadataViewModelMetadataText` element and strips "and N more" suffixes from collab cards.
- Added anonymous diagnostics to the import payload so we get alerted when YouTube changes their DOM and our scraper silently breaks. We collect render counts + a few sample HTML snippets of cards we couldn't parse, ride them along with your import, and surface them in our error tracker if the failure rate spikes. Only public, page-level YouTube data is captured (titles, channel names, view counts) — no session info, no watch history, no account data.
v1.6.3 — 2026-04-02
- Added Weather Channel (Ch 50) with live local conditions, forecast, radar, and moon phases
- Auto-detects Fahrenheit/Celsius and 12h/24h time from your location — override in Settings
v1.6.2 — 2026-04-01
- Added live channel (Ch 98) for live events with real-time ticker chat
- Live event banner with auto-expiry and dismiss support
v1.6.1 — 2026-03-31
- Add closed captions to the options and keyboard shortcuts. Press C or toggle in Settings
- Guide version check: long-lived tabs now detect when new channel data is available and show a subtle "New guide available" toast
- Fixed info modal on iOS
v1.6 — 2026-03-31
- Never-ending schedule: playback no longer resets at midnight UTC. Watching through midnight is now seamless
- Stable channel order: daily data refreshes no longer scramble video order
- Better error handling: unavailable videos (error 150) show "This video isn't available in your country"
- Bug fix: Fullscreen auto-advance: videos now advance to the next program immediately when they end
v1.5.3 — 2026-03-23
- Update the bookmarklet to support importing of playlists
- Added: Bookmarklet version check — old bookmarklets are rejected with a clear message to update
- Added: Clipboard fallback for Safari and private browsing
v1.5.2 — 2026-03-19
- Volume control: Click the speaker icon to open a vertical slider, drag to adjust
- Mute with `M` key, unmute restores your previous volume level
- Channel number overlay appears in the info panel when switching channels
- Better styling in the guide so you know what channel you're on
- Removed "Click to Expand" and "G: Guide" hints from footer
v1.5.1 — 2026-03-17
- Fix party messages in mobile
- Allow importing that doesn't overwrite previous imports
v1.5 — 2026-03-16
- Party channel with live viewer messages
v1.4.1 — 2026-03-16
- Seasonal video filtering: Holiday content is automatically excluded from ambient channels when out of season
v1.4 — 2026-03-15
- Favorite channels: Star channels in the guide to mark them as favorites
- Favorites Only mode: Toggle in settings to surf only through your favorite channels with arrow keys
- Right-click context menu: Add/remove favorites directly from the guide
- Fullscreen and Power buttons in the toolbar for mobile and touch devices
- Toolbar button tooltips now show keyboard shortcuts
v1.3 — 2026-03-15
- Power off mode: Press `P` to power down the TV with a classic CRT shutdown animation — pauses everything, press `P` or click to power back on
v1.2 — 2026-03-15
- Fullscreen mode: Press `F` to toggle browser fullscreen (hides guide, keeps toolbar)
- Channel names in expanded guide: Click a channel row to see YouTube creator names on each program block
- New keyboard shortcuts: `F` fullscreen, `O` settings
- Feedback board: Added link to public feedback/feature request board
- Version numbers and changelog
- Fixed footer
v1.1 — 2026-03-11
- Sponsor channel support
v1.0 — 2026-03-10
- Initial launch
- 35+ curated YouTube channels as live TV
- Retro TV guide with program schedule
- Channel import via bookmarklet
- Real-time viewer count via PartyKit
- Settings: scanlines, dark mode, hide imported channels
- Keyboard shortcuts: arrows, G, M, I, ?