Support Center

Everything you need to install, use, and troubleshoot the YouTube History Sidebar extension.

📦 Installation

Load from source (Developer Mode)
  1. Download or clone the repository and run npm install && npm run build to produce the dist/ folder.
  2. Open Chrome and navigate to chrome://extensions
  3. Enable Developer mode using the toggle in the top-right corner.
  4. Click Load unpacked and select the dist/ folder.
  5. Go to YouTube — the history sidebar appears in the left navigation panel.
⚠️ After every rebuild

After running npm run build, click the reload icon (↺) on the extension card in chrome://extensions to apply the latest changes.

Frequently Asked Questions

The sidebar doesn't appear on YouTube.

Make sure the extension is enabled in chrome://extensions and that you loaded the dist/ folder (not the project root). After loading, refresh your YouTube tab — do a hard reload with Ctrl + Shift + R if a normal refresh doesn't help. If the left nav panel hasn't loaded yet, the sidebar waits for it via MutationObserver and will inject automatically.

Videos aren't being saved to my history.

The extension saves entries when a /watch?v= URL is detected. Make sure you are visiting a full video page (not a YouTube Short or homepage). The extension also needs the page to finish loading to scrape metadata — if you navigate very quickly, a scrape may be skipped. Try reopening the video tab.

I see duplicate entries or entries aren't deduplicating.

The extension deduplicates by video ID — re-watching a video moves it to the top rather than adding a new row. If you see duplicates, it may indicate a version mismatch between the loaded extension and your built files. Rebuild (npm run build) and reload the extension from chrome://extensions.

My history is limited to 500 entries — can I increase this?

The 500-entry cap (FIFO eviction) is currently hardcoded in src/types.ts as the MAX_ENTRIES constant. If you are running from source, you can change this value, rebuild, and reload the extension. A UI setting for this is planned for a future release.

The extension broke after a YouTube update.

YouTube occasionally changes its DOM structure, which can affect the sidebar injection or the metadata scraper. Check the GitHub Issues page to see if it's a known problem. If not, please open a new issue with your Chrome version and a description of what's broken.

Can I use this on Firefox or other browsers?

The extension is built for Chrome (Manifest V3) and uses chrome.* APIs. Firefox has partial MV3 support, but it is not officially tested or supported at this time.

Will my history sync across devices?

No. History is stored in chrome.storage.local, which is local to each Chrome profile and does not sync across devices. This is intentional for privacy. Cross-device sync is not planned.

How do I clear all my history?

You can remove individual entries using the ✕ button next to each item. To clear everything at once, go to chrome://extensions → click Details on the extension → Extension options or open Chrome DevTools on YouTube, and run chrome.storage.local.clear() in the console with the extension's service worker selected. Alternatively, uninstalling and reinstalling the extension will wipe all stored data.

Does this extension slow down YouTube?

The extension is intentionally lightweight — no framework, vanilla DOM only, and all storage calls are async. It uses a MutationObserver to wait for YouTube's nav panel before injecting, so it does not block page load. Performance impact should be negligible.

🔧 Troubleshooting Steps

Quick checklist
  • Confirm you loaded the dist/ folder in chrome://extensions, not the project root.
  • Reload the extension after every npm run build using the ↺ icon.
  • Hard-reload the YouTube tab (Ctrl + Shift + R) after enabling the extension.
  • Open DevTools (F12) on YouTube and check the Console for any extension errors prefixed with [YTHS].
  • Check the extension's service worker logs via chrome://extensions → Details → Service worker → Inspect.
  • Disable other YouTube-modifying extensions temporarily to rule out conflicts.
  • Try in a fresh Chrome profile to isolate the issue.

🔒 Privacy

This extension was designed with privacy as a first principle. Here's exactly what it does and doesn't do:

100% local storage

All data lives in chrome.storage.local on your machine only.

No network requests

Zero external API calls. The extension never phones home.

No account required

Works entirely without a Google or YouTube login.

No tracking

No analytics, telemetry, or usage data collected.

Clean uninstall

Removing the extension deletes all stored history automatically.

Minimal permissions

Only storage permission + YouTube host access.

🐛 Report a Bug or Request a Feature

Found something broken or have an idea for an improvement? Open an issue on GitHub — it's the fastest way to get a response.

When reporting a bug, please include:
  • Chrome version (Help → About Google Chrome)
  • Extension version (v1.0.0)
  • Steps to reproduce the issue
  • Any console errors from DevTools (F12 on YouTube)
  • Whether other extensions are active