MarmadileManteater / FreeTubeAndroid

A soft fork of FreeTube which brings it to Android (formerly FreeTubeCordova)
GNU Affero General Public License v3.0
322 stars 6 forks source link
android html5 subscriptions video youtube

FreeTube Logo

An open source YouTube player built with privacy in mind.

Build Status izzyondroid version Translation status


ScreenshotsHow does it work?FeaturesBuilding and testingContributingLocalizationContactDonateLicense

WebsiteBlogDocumentationFAQDiscussions


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.

[!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.

Get it on IzzyOnDroid

Download FreeTube Android


How does it work?

The APK uses a built in extractor to grab and serve data / videos, and can optionally use the Invidious API. 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

Go to FreeTube's Documentation if you'd like to know more about how to operate FreeTube and its features.

Screenshots

watching video trending videos subscription feed

Automated Builds (Nightly / Weekly)

Builds are automatically created from changes to our development branch via GitHub Actions.

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

# 📦 Packs the project using `webpack.android.config.js`
yarn pack: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

# 🐛 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


# 💨 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 pull ghcr.io/marmadilemanteater/freetubecordova:latest
# 👟 Runs the image from 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 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 follow the Contribution Guidelines before sending your pull request.

Localization

Translation status

If you'd like to localize FreeTube Android, please send submissions to FreeTube's weblate.

Contact

If you ever have any questions, feel free to make an issue here on GitHub.

Upstream Donations

If you enjoy using FreeTube Android, you're welcome to leave a donation using the following methods to support upstream development and maintenance.

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.

License

GNU AGPLv3 Image

FreeTube is Free Software: You can use, study share and improve it at your will. Specifically you can redistribute and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.