Android client application for invidious, the privacy focused youtube front end
Copyright (C) 2023 Paul Fauchon
This program is free software: you can redistribute it 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.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.
- Use own or public server
- Subscription management
- SponsorBlock + DeArrow (click bait removal)
- Video view/progress tracking
- Playlists
- background playback
- Live stream support
- Android TV ui
- Audio playback
- Video / audio download
- Video filtering
- Return YouTube dislikes
The best way to install is to get it directly from the release page. Using Obtainium can help keeping the app up to date.
It is also available on F-Droid, IzzyOnDroid, and Accrescent:
Or download the latest APK from the Releases Section.
For TV users it is recommended to use Accrescent as it works well enough on TV and allows updates.
- Check the Common issue wiki page
- Open an issue
To get started, you'll need to create a fork of the repo and might run:
git submodule init
git submodule update
#enable git pre commit hooks for auto formatting
./submodules/flutter/bin/dart run tools/setup_git_hooks.dart
or using nix that will handle all the above plus starting a working invidious instance with user test and password test.
nix-shell
Flutter itself is used as a submodule of this repo in order to pin the version I want to use to enable reproducible build on f-droid
You'll need to also set up your android SDK and a device / emulator to run the app on.
The app has some tests and they expect to have a locally running invidious server, with a test user (password test).
The easy way it to use nix and run
nix-shell
That will spin a postgres DB, an invidious server and the required user (this is how the tests are run in the ci/cd).
Nothing keeps you to run your own user docker or other ways.
Alternatively, you can directly run the tests with its environment:
nix-shell --run './submodules/flutter/bin/flutter test'
The translations are done via weblate.
We take no responsibility for the use of our tool, or external instances provided by third parties. We strongly recommend you abide by the valid official regulations in your country. Furthermore, we refuse liability for any inappropriate use of Invidious, such as illegal downloading. This tool is provided to you in the spirit of free, open software.
You may view the LICENSE in which this software is provided to you here.
- Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.