# code-charity/youtube (ImprovedTube): a 300-tweak extension for people who watch YouTube in a browser

> ImprovedTube is a WebExtension that rewrites YouTube's player, layout and defaults from a settings page. The repository is active, the licence file is unclassified, and the extension is not a YouTube client.

**code-charity/youtube** — YouTube / Video Browser-Extension. [Top1 FOSS.]  Enrich your experience & choice! 🧰Smart features📌set & forget📌300+ tweaks. Longest-standing. Join🧩us?👨‍👩‍👧‍👧  ⋮ {playback|discovery|extra player buttons|quality|codec|full tab|full screen|no distraction|shorts}

- Repository: https://github.com/code-charity/youtube
- Website: http://improvedtube.com
- Stars: 4,604 · Forks: 1,001
- Language: JavaScript
- License: NOASSERTION
- Published: 2026-09-23 · Updated: 2026-09-23 · Language: en
- Canonical page: https://hysenlabs.com/projects/code-charity-youtube

## What ImprovedTube changes about a YouTube tab

The extension exists because YouTube's interface is designed for the median viewer, not for yours. A default playback speed of 1x, a default resolution chosen by the adaptive bitrate algorithm, autoplay, and Shorts in the subscription feed are all decisions made upstream. ImprovedTube moves those decisions into a settings page that persists across sessions.

The repository describes the project as "a powerful but lightweight extension, to enrich your video experience & enable your content selection." The topics list attached to the repository names the areas it touches: playback-speed, subtitles, youtube-player, youtube-playlist, youtube-channel, and youtube-api. The README's own summary is a brace-delimited list: playback, discovery, extra player buttons, quality, codec, full tab, full screen, no distraction, shorts.

That scope matters when you evaluate it. ImprovedTube does not proxy YouTube, does not re-host video, and does not replace the site. It runs against the page YouTube serves you. If YouTube changes a DOM node, the feature that depended on it breaks until a contributor fixes it. That is the structural cost of the approach, and it is the reason this class of extension needs regular releases rather than a single stable version.

## How the extension is put together: manifest, background script, content scripts

The repository layout is a conventional WebExtension. At the top level sit manifest.json, background.js, js&css/, menu/, _locales/, build/, tests/, and ur_PK/. The package.json file names background.js as the main entry and defines three scripts: jest tests, an eslint lint pass, and a start script whose body is an echo telling you that this is a browser extension and pointing at walkthrough.md.

That start script is the clearest signal about the architecture. There is no dev server and no build step you run before loading it. The extension is loaded into the browser, and the browser executes background.js as the extension's background context while content scripts injected into YouTube pages do the visible work. The menu/ directory holds the settings interface, _locales/ holds translations, and ur_PK/ is a locale directory for Urdu (Pakistan).

Changes to YouTube's page are therefore split across two places: the background context, which survives navigation, and content scripts, which are re-injected per page. The tests/ directory and jest.config.js indicate that some of this logic is unit-tested in Node rather than in a browser, which is a real limitation: Jest can check pure functions, but it cannot verify that a selector still matches YouTube's markup.

## Installing ImprovedTube from a store, or loading the repository unpacked

The README's header links to store listings for Safari (the App Store entry id1672777754), Whale, Firefox, Chrome, Edge, and Opera. For most readers that is the whole install: open the listing for your browser and add the extension. The Chrome listing is also the one used for Chromium-based browsers that do not have their own entry.

If you want the current master branch rather than the published build, the README links a Release.zip from the releases page and a Latest.zip of the master branch. Download and unzip it, then load the unpacked directory. In Chrome and Edge the path is chrome://extensions with Developer mode enabled, then Load unpacked. In Firefox it is about:debugging, then This Firefox, then Load Temporary Add-on, and you select manifest.json.

Once loaded, open youtube.com. The extension adds its own entry points to the page. The project's own first-run instruction is a walkthrough file rather than a command:

```bash
npm start
```

That prints a message saying this is a browser extension and to see walkthrough.md for loading instructions. There is no npm install step that produces a runnable app. The dev dependencies in package.json (jest, eslint, jslint, eslint-plugin-compat) are for testing and linting the source, not for building it:

```bash
npm test
npm run lint
```

Run those only if you are changing the code. npm test invokes jest against the tests directory; npm run lint invokes eslint with tests/.gitignore as the ignore path. Neither one loads the extension into a browser.

## Where ImprovedTube is the wrong tool

The extension cannot do anything outside a browser tab running YouTube. If your actual problem is downloading a video for offline viewing, converting audio, or playing YouTube audio with the screen off on a phone, ImprovedTube is not the answer, and no amount of tweaking will make it one. Its whole surface is the page YouTube renders in your browser.

A second limit is fragility by design. Every feature that adjusts the player or the layout depends on YouTube's current markup and on the extension's own selectors staying valid. When YouTube ships a redesign, features can silently stop applying, and the fix arrives in a later release. The release history shows the cadence this implies: v4.1400 in December 2025, 4.2026 in February 2026, and v4.2027 in May 2026. If you need a guarantee that a specific tweak will keep working for a year without an update, this project does not offer one.

A third limit is licensing. GitHub reports the licence as NOASSERTION, meaning the repository's LICENSE file did not match a recognised licence template. package.json states "ISC" in its license field, which is a different claim from whatever the LICENSE file contains. Those two signals disagree, and anyone embedding this code in another product should read the LICENSE file directly rather than trusting either metadata field.

## ImprovedTube compared with a userscript manager

The closest alternative in kind is a userscript manager such as Tampermonkey or Violentmonkey, paired with a YouTube userscript. The difference in approach is packaging and update path, not capability.

A userscript manager runs whatever script you install into it, and you choose each script separately. You get fine-grained control and you can edit the script yourself in the manager's editor. You also get the responsibility: each script updates on its own schedule, or not at all, and conflicts between two scripts that both touch the player are yours to debug.

ImprovedTube ships as one extension with one settings page and one update channel through the browser store. The 300-plus tweaks are curated into that single interface, translations live in _locales/, and a broken selector is fixed once for everyone. The trade-off is that you cannot easily remove one feature you dislike, and you depend on the maintainers' release cadence. If you want exactly one behaviour changed and nothing else, a userscript is lighter. If you want a settings page you configure once and forget, the extension is the better fit.

## Maintenance, releases and what an upgrade costs you

The repository is not archived, and the last push was on 2026-09-22. Releases are frequent and named rather than numbered plainly: v4.2027 (Community Release) on 2026-05-30, 4.2026 (Arya Edition) on 2026-02-25, and v4.1400 on 2025-12-07. The release notes for 4.2026 and v4.1400 both call out new contributors by count.

For a user, the upgrade cost is low: store-managed extensions update themselves, and settings are stored by the extension. The real cost is verification after an update. A settings key that no longer does anything looks identical to one that works, so the practical check is to open the settings page after a major release and confirm the options you rely on are still present and still taking effect on a live video.

For a contributor, the cost is higher. The codebase is JavaScript with a Jest suite and an eslint configuration that pins brace-expansion to 5.0.9 through a long list of overrides in package.json, which suggests dependency conflicts have been handled by pinning rather than by upgrading. The browserslist entry targets the last 10 versions, excluding dead browsers and anything under 1 percent share, with op_mini excluded. That is a broad support matrix for a project maintained by volunteers.

## Conclusion

Adopt ImprovedTube if you watch YouTube in Chrome, Firefox, Edge, Opera, Whale or Safari and want persistent control over playback speed, codec, quality and layout without a separate client. Do not adopt it if you need a downloader, a background audio player, or anything that works outside a browser tab; the extension only edits YouTube's own page. Before installing, verify the licence file, since GitHub reports NOASSERTION, and check that the settings you depend on still exist after a release, because the settings list changes between versions such as v4.2027 and the earlier 4.2026 build.

## FAQ

### Is ImprovedTube the same thing as YouTube?

No. ImprovedTube is a browser extension that modifies the YouTube page you already load; it does not host, serve or replace video. The repository describes it as an extension to enrich your video experience and enable your content selection.

### Does ImprovedTube cost anything?

The README links to free store listings on the App Store, Firefox Add-ons, Chrome Web Store, Microsoft Edge Add-ons, Opera add-ons and the Whale store, and the project accepts donations. The README does not describe a paid tier for the extension itself.

### Which browsers can run ImprovedTube?

The README header links store listings for Safari, Whale, Firefox, Chrome, Edge and Opera, and links a Release.zip for loading the build yourself. package.json targets the last 10 browser versions, excluding dead browsers and those under 1 percent share.

### How do I install ImprovedTube from the repository instead of a store?

Download the Release.zip or the master branch zip linked in the README, unzip it, and load the unpacked directory through your browser's extension developer page. The npm start script only prints a note pointing to walkthrough.md for loading instructions.

## Sources

- [code-charity/youtube on GitHub](https://github.com/code-charity/youtube)
- [Issues](https://github.com/code-charity/youtube/issues)
- [Project website](http://improvedtube.com)
- [README](https://github.com/code-charity/youtube/blob/master/README.md)
- [Releases](https://github.com/code-charity/youtube/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/code-charity-youtube
