<palign="center"><ahref="#screenshots">Screenshots</a>•<ahref="#how-does-it-work">How does it work?</a>•<ahref="#features">Features</a>•<ahref="#how-to-build-and-test">Building and testing</a>•<ahref="#contributing">Contributing</a>•<ahref="#localization">Localization</a>•<ahref="#contact">Contact</a>•<ahref="#upstream-donations">Donate</a>•<ahref="#license">License</a></p>
FreeTube Android is an open source YouTube player built with privacy in mind. Use YouTube without advertisements and prevent Google from tracking you with their cookies and JavaScript.
Available as an APK and as a PWA (progressive web app). FreeTube Android is a fork of [FreeTube](https://www.github.com/FreeTubeApp).
> [!NOTE]
> FreeTube Android is currently in Beta. While it should work well for most users, there are still bugs and missing features that need to be addressed.
The APK uses a built in extractor to grab and serve data / videos, and can optionally use the [Invidious API](https://github.com/iv-org/invidious). The PWA *only* uses the Invidious API. No official YouTube APIs are used to obtain data. Your subscriptions and history are stored locally on your device and are never sent out.
## Features
* Watch videos without ads
* Use YouTube without Google tracking you using cookies and JavaScript
* Subscribe to channels without an account
* Connect to an externally setup proxy such as Tor
* View and search your local subscriptions, history, and saved videos
* Organize your subscriptions into "Profiles" to create a more focused feed
* Export & import subscriptions
* Youtube Trending
* Youtube Chapters
* Most popular videos page based on the set Invidious instance
* SponsorBlock
* Full Theme support
* Keyboard shortcuts
* Option to show only family friendly content
* Show/hide functionality or elements within the app using the distraction free settings
Go to [FreeTube's Documentation](https://docs.freetubeapp.io/) if you'd like to know more about how to operate FreeTube and its features.
Builds are automatically created from changes to our development branch via [GitHub Actions](https://github.com/MarmadileManteater/FreeTubeCordova/actions/workflows/buildCordova.yml).
The first build with a green check mark is the latest build. You will need to have a GitHub account to download these builds.
## How to build and test
### Commands for the APK
```bash
# 📦 Packs the project using `webpack.android.config.js`
yarn pack:android
# 🤖 Packs the botguard script
yarn pack:botGuardScript:android
# 🚧 for development
yarn pack:android:dev
```
> [!NOTE]
> These commands only build the assets necessary for the project located in `android/` to be built. In order to obtain a complete build, you will need to build the project located in `android/` with `gradle`.
### Commands for the PWA
```bash
# 🐛 Debugs the project using `webpack.web.config.js`
yarn dev:web
# 📦 Packs the project using `webpack.web.config.js`
yarn pack:web
```
### Commands for the PWA Docker Image
```bash
# 💨 Creates and runs the image locally. Add `--platform=linux/arm64` to docker build for ARM64 devices including Apple Silicon
docker build -t freetubecordova . # Warning, might take a while on Apple Silicon
docker run --name ftcordova -d -p 8080:80 freetubecordova
# ⬇ Pulls the latest from the Github Container Registry (ghcr.io)
docker run --name ftcordova -d -p 8080:80 ghcr.io/marmadilemanteater/freetubecordova:latest
# 🏃 Runs the image from Docker Hub.
docker run --name ftcordova -d -p 8080:80 owentruong/freetubecordova:latest
# 🏃♂️ Runs the image from Docker Hub (ARM64)
docker run --platform=linux/arm64 --name ftcordova -d -p 8080:80 owentruong/freetubecordova:latest-arm64
```
## Contributing
**NOTICE: MOST CHANGES SHOULD PROBABLY BE MADE TO [UPSTREAM](https://www.github.com/freetubeapp/freetube) UNLESS DIRECTLY RELATED TO CORDOVA CODE OR WORKFLOWS.**
If you like to get your hands dirty and want to contribute, we would love to
have your help. Send a pull request and someone will review your code. Please
While your donations are much appreciated, only donate if you really want to. Donations are used for keeping the website up and running and eventual code signing costs.