Grayjay
by FUTO · Source First License 1.1 · source available
Follow channels from many video platforms without an account on each. History stays on your phone, while an optional exchange shares subscription addresses with FUTO.
Needs:No root · Android 9+ · 64-bit ARM phone
2113 Apps is independent, not affiliated with or endorsed by FUTO. Official sources: grayjay.app · source code on gitlab.futo.org.
- Version
- 396
- Size
- 225.8 MB
- Requires
- Android 9+
- Updated
- 2026-10-29
Screenshots

Introduction
Grayjay is a video app from FUTO. Its FAQ: “Grayjay is a cutting-edge mobile app that serves as a video player and source aggregator.” And: “we are an aggregator to facilitate other streaming platforms. We do not host any content or distribute any content from servers.” You subscribe to channels from different platforms in one list, and, in FUTO’s words, “Your watch history does not leave your device unless you configure it that way”.
Plugins
Each platform is a plugin, a script that talks to that site. FUTO signs the plugins it publishes, and the app warns about unsigned ones: “This plugin does not have a signature. This makes updating the plugin less safe as it makes it easier for a malicious actor besides the developer to update a malicious version.” The plugins contact each platform directly from your phone. Grayjay’s FAQ: “Grayjay does not track you out of the box. For this reason, platforms do not know what content to show you. If you want more personalized content you will need to login to the platforms.”
Videos and whole playlists can be downloaded “for local, offline playback”, as the README puts it. What you may download is up to each platform’s terms and the creators’ rights.
What goes online
From the code of version 396:
- The platforms you enable, through their plugins.
- Telemetry on every start, sent to FUTO’s log server, as described in the questions below. FUTO’s own “Source First” principles say: “Any software that contains telemetry must have a mechanism for opting into said telemetry.” This version has none.
- Update checks on every start and about every 12 hours in the background, with the new version downloaded in the background, plus checks for plugin updates. The periodic task only waits for a network connection. You can set the app-version check to Never.
- FUTO’s announcements, loaded at startup.
- Subscription Exchange, an experimental feature that is on by default. When an automatic subscription refresh has more than ten channels whose videos are not all cached, Grayjay sends their addresses to FUTO’s exchange server and may upload the video lists the server asks for. Turn off Subscription Exchange in settings to stop this sharing.
- Harbor, the renamed Polycentric v2 identity, ratings and comment network, is on by default. Opening a non-local video queries Harbor for ratings by the video address. Version 396 also asks FUTO’s migration server about an existing Polycentric identity; only a device that holds the identity’s rotation key can change its Harbor servers. Separate synchronisation between your Grayjay devices, through FUTO’s relay server, is off until you set it up. Logs are sent only when you choose Submit logs or report a crash.
The licence
Grayjay’s source code is published, but under FUTO’s Source First License 1.1, which isn’t an open-source licence. It lets you use, copy and share the app, with limits: “You may distribute the software or provide it to others only if you do so free of charge for non-commercial purposes”, “you may not remove or obscure any functionality in the software related to payment to the Licensor”, and “You must ensure that anyone who gets a copy of any part of the software from you also gets a copy of these terms.” The full terms are in the project’s LICENSE.md, and we keep a copy of that file, word for word, linked right under the download button. We compared the 396 terms with both the 391 tag and our local copy: all three have the same SHA-256, 4d8522558ced82190b4b7e2d86d0955e4dc910d0fbb8eb2f01eed7cacd4f94ef. We host the app unchanged and free of charge.
Version 396 also bundles the Twemoji font under CC BY 4.0; its licence notice is included in the app’s assets.
About this file
- This is FUTO’s 64-bit ARM build of version 396, tagged on 29 October 2026 and downloaded from FUTO’s release server at its fixed address for that version. Its published changelog lists the Harbor migration, seek thumbnails and a larger seek-bar touch area. FUTO also offers a universal build for all processor types through its own F-Droid repository; we host the smaller one. grayjay.app publishes no checksum. The file is signed with FUTO’s key, the same one FUTO’s signed F-Droid repository lists for Grayjay, and we require it for every update.
- The Google Play version is a different app,
com.futo.platformplayer.playstore, which comes without the bundled plugins; it and this file don’t update each other. - The 225.8 MB file runs on Android 9 and later and declares 19 permissions: internet and network state, notifications, media and storage for downloads, the camera for scanning plugin QR codes, the services that keep playback and downloads running, installing its own updates, alarms, and changing system settings.
- The app is partly translated into Portuguese, as generic Portuguese rather than Brazilian.
- The screenshots are FUTO’s own, from its F-Droid repository; they show an older version.
What’s inside the APK
Trackers
No code matching the Exodus Privacy tracker signatures.
Native code
Needs a 64-bit ARM phone; 32-bit-only devices are not supported.
Android versions
Built for Android 16 (target API 36).
Permissions
6 of them need your approval first.
CPU types in this build: arm64-v8a (64-bit ARM, almost every phone since 2017).
Asks you first (6)
Android shows a prompt before the app can use these.
- Use the camera · CAMERA
- Show notifications (Android 13+) · POST_NOTIFICATIONS
- Read shared storage (Android 12 and older) · READ_EXTERNAL_STORAGE
- Read music and audio files · READ_MEDIA_AUDIO
- Read videos · READ_MEDIA_VIDEO
- Write shared storage (Android 10 and older) · WRITE_EXTERNAL_STORAGE
You switch these on in Settings (3)
Special app access. Nothing is granted until you turn it on yourself.
- Install unknown apps · REQUEST_INSTALL_PACKAGES
- Alarms and reminders · SCHEDULE_EXACT_ALARM
- Modify system settings · WRITE_SETTINGS
Granted at install (8)
Low-risk permissions Android grants automatically, plus any we have not classified.
- ACCESS_NETWORK_STATE
- ACCESS_WIFI_STATE
- FOREGROUND_SERVICE
- FOREGROUND_SERVICE_DATA_SYNC
- FOREGROUND_SERVICE_MEDIA_PLAYBACK
- INTERNET
- RECEIVE_BOOT_COMPLETED
- WAKE_LOCK
Defined by other apps (2)
Permissions that belong to another app or to this app itself.
- com.android.alarm.permission.SET_ALARM
- com.futo.platformplayer.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
More Information
- Package name
- com.futo.platformplayer
- Version
- 396 (build 396)
- File size
- 225.8 MB (225,756,495 bytes)
- Requires
- Android 9 or later
- Category
- Media
- License
- Source First License 1.1
- Developer
- FUTO
- Source code
- gitlab.futo.org/videostreaming/grayjay
- Released
- Oct 29, 2026
- Signer SHA-256
- ef81eda98f617f7f1707d80509f28dae4e50f56e41e077eb3024d9c9072d074e
- File SHA-256
- c3cfe443651ebaccddf4f84f43ff52d782a47eda2821fb9796e6dbb7cdddc0bf
- Checked
- , against the download on grayjay.app · how we check · verify it yourself
Common questions
Is this APK the official Grayjay release?
Yes. It is the file grayjay.app offers for download, byte for byte. It is signed with the certificate we recorded when we first checked Grayjay (SHA-256 ef81eda98f617f7f1707d80509f28dae4e50f56e41e077eb3024d9c9072d074e); a release signed with a different key would not be published here.
What Android version does Grayjay need?
Android 9 or later (API level 28). Version 396 is built for Android 16 (target API 36). Needs a 64-bit ARM phone; 32-bit-only devices are not supported.
Can Grayjay access the internet?
Yes. The APK requests Android’s internet permission. In total it declares 19 permissions, and 6 of them need your approval first.
Does Grayjay contain trackers?
No known trackers: our scan of version 396 found no code matching the Exodus Privacy tracker signatures. The scan covers known tracker libraries; it doesn’t show what data the app itself sends.
Is Grayjay open source?
No. Its source code is published at https://gitlab.futo.org/videostreaming/grayjay, but under the Source First License 1.1, which isn’t an open-source licence. The licence allows sharing the app only “free of charge for non-commercial purposes”, and anyone who gets a copy must also get its terms, which are linked under the download button.
Is Grayjay free?
Yes. FUTO sells a licence but says: “Does Grayjay require a subscription? No, We offer a way to pay for the app once. The app will function identically without paying.” In the code, the difference is a Buy tab in the menu bar until you pay.
Which platforms does it work with?
This build carries 22 plugins made and signed by FUTO, among them YouTube, PeerTube, Odysee, Rumble, Twitch, SoundCloud, Dailymotion, Nebula, Internet Archive and NASA+. Only YouTube is switched on at first; you enable the others under Sources. More plugins install from a QR code or a link, and the app warns when a plugin isn’t signed.
What does it send to FUTO?
Every start sends telemetry with a random ID, app version, phone make and model, Android version and enabled-plugin list; we found no off switch. The default experimental Subscription Exchange also sends channel addresses when a refresh has more than ten video or mixed channels not served from its cache, and may upload fetched video lists. You can turn the exchange off.
Does it update itself?
Yes, by default. It checks FUTO’s server on every start and a background task checks about every 12 hours while the phone has a network connection. A new version downloads in the background. In the settings you can set the check to Never.