# FreeTube: a desktop YouTube client that keeps cookies and JavaScript out of the loop

> FreeTube is an Electron desktop player that pulls YouTube data through its own extractor or an Invidious instance, stores subscriptions and history locally, and is still labelled Beta. Here is how it installs, what it does not do, and who should skip it.

**FreeTubeApp/FreeTube** — An Open Source YouTube app for privacy

- Repository: https://github.com/FreeTubeApp/FreeTube
- Website: https://freetubeapp.io/
- Stars: 21,991 · Forks: 1,528
- Language: Vue
- License: AGPL-3.0
- Published: 2026-09-21 · Updated: 2026-09-21 · Language: en
- Canonical page: https://hysenlabs.com/projects/freetubeapp-freetube

## The tracking surface FreeTube removes, and the one it cannot

The README is blunt about the mechanism: FreeTube does not use any official YouTube API to obtain data, and it prevents Google from tracking you with cookies and JavaScript. In a browser, a YouTube page is a JavaScript application that can read and write cookies, fingerprint the rendering stack and follow you across sessions. FreeTube replaces that page with an Electron shell that requests video data and streams, then renders it with its own Vue front end. There is no Google JavaScript executing in the renderer, and no Google cookie jar attached to your viewing.

What remains is the network layer. The README states plainly that YouTube can still see your video requests; only the cookie and script based tracking is gone. That is why the same document recommends a VPN or Tor. If your threat model is a network observer correlating requests to your IP address, FreeTube alone does not answer it, and the project says so rather than implying otherwise.

The second half of the design is local storage. Subscriptions, playlists and history live on your machine and are never sent out. That is a real architectural commitment, not a marketing line: there is no account system to sync them through, which is also why the export and import feature exists and why profiles are a local grouping rather than a server side one.

## Two extractors, and the failure mode that comes with both

FreeTube offers two ways to get data. The first is a built in extractor shipped with the app. The second is the Invidious API, which the README describes as optional and which points at an externally operated instance. Both routes sit outside any contract with YouTube, and that is the structural weakness of the whole approach: when YouTube changes how it serves video data, an extractor can stop returning results until the project ships a fix.

This is not hypothetical hand waving. It is the direct consequence of the design the README describes, and it is the reason the project carries a Beta notice stating that bugs and missing features still need to be addressed. A user who installs FreeTube and finds playback broken should read that as the extractor having drifted, not as a misconfiguration on their side.

The Invidious path trades one dependency for another. You gain a fallback when the built in extractor is having a bad week, but you now depend on an instance someone else runs, and the README notes that the most popular videos page is based on the set Invidious instance. Instance availability and rate limiting become part of your experience. For a self hosted instance this is under your control; for a public one it is not.

## Installing FreeTube on Windows, macOS and Linux

The README points to three official sources: the GitHub Releases page, the project website at freetubeapp.io, and Flathub for the Flatpak build. There is no package manager one liner documented for Debian, Ubuntu or Arch in the README text available here, so the honest instruction is to take the build for your platform from one of those three places. On Linux, Flathub is the documented distribution channel.

```bash
flatpak install flathub io.freetubeapp.FreeTube
flatpak run io.freetubeapp.FreeTube
```

After the first launch you land on the main window. The first real task is subscribing to a channel without an account: search for a channel, open it, and use the subscribe control. The subscription is written to your local profile, and the README confirms subscriptions, playlists and history can be searched locally afterwards.

The second task worth doing immediately is choosing a profile. Profiles are local groupings of subscriptions, and the README frames them as a way to build a more focused feed. If you follow channels in unrelated subjects, splitting them now saves reorganisation later.

If you want YouTube links in your browser to land in FreeTube, the README lists two extensions. LibRedirect redirects YouTube links automatically, and the README warns that you must select FreeTube as the Frontend in the extension's Services settings for it to work. RedirectTube does not redirect automatically; it adds toolbar and context menu buttons, though the README notes automatic opening can be enabled in its settings. Both extensions are documented as not working with Linux portable builds.

## Where FreeTube is the wrong tool

The clearest boundary is platform. The README lists FreeTube for Windows 10 and later, macOS 12 and later, and Linux, delivered through Electron. There is no Android build, no iOS build and no iPad build in the README. Anyone arriving from a phone search will not find an APK here, and the README does not offer one. That is a deliberate scope decision by a desktop project, not a gap waiting to be filled by a workaround.

A second boundary is system support. The README carries a caution that installing on unsupported systems may result in unexpected issues, and names Windows 10 and later and macOS 12 and above. Older machines are out of scope by declaration.

A third is stability expectations. The project labels itself Beta and states there are still bugs and missing features. If you need a player that behaves identically every week, a Beta Electron app that depends on an unofficial extractor is a poor fit. The same applies if you need server side sync across devices: local storage is the design, and nothing in the README describes a sync service.

## How FreeTube differs from NewPipe and from the browser

The closest comparison in the privacy client space is NewPipe, which occupies the Android slot FreeTube does not. NewPipe is a mobile application; FreeTube is an Electron desktop application for Windows, macOS and Linux. If your constraint is a phone, the choice is made for you by the platform list, not by features. The two projects are not in competition so much as on different sides of a form factor divide.

The other alternative is simply watching YouTube in a browser with an ad blocker and a container. That keeps Google's JavaScript running in a tab, which is exactly the surface FreeTube set out to remove, but it costs nothing to install and it never breaks because an extractor drifted. The trade is concrete: the browser path gives you reliability and a familiar interface, FreeTube gives you no Google cookies, no Google JavaScript, local subscriptions and history, and two extractor backends to fall back between. If you do not value the second list, the first option is better, and pretending otherwise would be dishonest.

Within FreeTube itself there is a smaller comparison worth noting. The built in extractor and Invidious are not equivalent. The built in one is maintained with the app; the Invidious one depends on an instance you or someone else operates. Choosing between them is a choice about who absorbs an outage.

## Licence, build cost and what a fork implies

FreeTube is licensed AGPL-3.0-or-later, and package.json records the same identifier. The practical consequence is the one the AGPL is known for: if you modify FreeTube and let users interact with it over a network, the source of your modified version has to be offered to those users. Running an unmodified build for yourself triggers nothing. Shipping a patched build to others, or hosting a modified version, does. This is a description of the licence's terms, not legal advice; read the LICENSE file before redistributing anything.

The build path is documented in package.json. The project uses pnpm, with pnpm-lock.yaml and pnpm-workspace.yaml at the top level, and the main scripts are build, build:arm64 and build:arm32, each of which runs a pack step and then node _scripts/build.mjs. Development uses node _scripts/dev-runner.js, with a debug variant that adds --remote-debug and a web variant. Linting runs through eslint.config.mjs and stylelint.config.mjs, and the repository includes lefthook.yml plus a lefthook-local.yml.example for git hooks.

Upgrade cost is the part that is easy to underestimate. Because the extractor is unofficial, staying current matters more than it would for a normal desktop app. The releases listed are Beta versions, and the README directs bug reports to GitHub issues with a request to search existing issues first. For a fork, that means either tracking upstream extractor fixes or accepting that your build will age into breakage. There is no documented rollback procedure in the README for a bad upgrade, so back up your local profile data before replacing a working build.

## Conclusion

Adopt FreeTube if you watch YouTube primarily at a desk on Windows 10 or later, macOS 12 or later, or Linux, and you want subscriptions, playlists and history kept in local files rather than an account. Do not adopt it if your watching happens on a phone or tablet, since the repository lists no Android or iOS build, or if you need a stable product rather than a Beta. Before committing, verify two things yourself: that the built in extractor still returns video data on your network, and that the AGPL-3.0-or-later licence terms fit how you intend to redistribute anything you build from src/.

## FAQ

### Is FreeTube the same as YouTube?

No. FreeTube is a desktop application that requests video data through its own extractor or an Invidious instance and renders it in its own interface, without Google cookies or JavaScript. The README notes YouTube can still see your video requests.

### Is FreeTube available on Android?

No Android build is listed. The README states FreeTube is available for Windows 10 and later, macOS 12 and later, and Linux, built with Electron.

### How do I install FreeTube on Linux?

The README lists a Flatpak build on Flathub as an official download, alongside GitHub Releases and the project website. There is no distro package command documented in the README text.

### How do I use an external player with FreeTube?

Watching videos using an external player is listed as a feature, so the option lives in the app rather than in a separate tool. The README does not document the configuration steps for it.

### Is FreeTube broken right now?

The README does not report a current outage, and it does describe FreeTube as Beta with bugs and missing features still to be addressed. Because data comes from an unofficial extractor rather than an official API, playback problems can appear when YouTube changes how it serves video data.

## Sources

- [FreeTubeApp/FreeTube on GitHub](https://github.com/FreeTubeApp/FreeTube)
- [License: AGPL-3.0](https://github.com/FreeTubeApp/FreeTube/blob/development/LICENSE)
- [Project website](https://freetubeapp.io/)
- [README](https://github.com/FreeTubeApp/FreeTube/blob/development/README.md)
- [Releases](https://github.com/FreeTubeApp/FreeTube/releases)

---

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