Skip to content
OpenTubeXPublic

About

Official F-Droid repository for OpenTubeX

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

41 Commits

Folders and files

Repository files navigation

OpenTubeX F-Droid repository

This repository publishes signed Android packages at fdroid.opentubex.org. It contains the stable beta package and a separately installable nightly package, plus a Lite package for each channel without yt-dlp and FFmpeg.

Add the repository

Scan the QR code or add the signed URL to F-Droid:

QR code for the signed OpenTubeX F-Droid repository

https://fdroid.opentubex.org/repo?fingerprint=99BCBB15868B41FE7263E409746D4ABCFC4D32262BEF2AB0B494BBA0929347CD

How publishing works

Stable and nightly releases in OpenTubeX/OpenTubeX dispatch their exact tag to this repository. The publish workflow downloads the architecture APKs of the latest stable and nightly releases, builds a signed F-Droid index, and deploys the index with the landing page to GitHub Pages. F-Droid prefers architecture APKs over universal APKs, so the repository leaves the universal APKs out to stay below the 1 GB GitHub Pages limit.

When the stable release has a higher version code than the latest nightly, the workflow builds the stable tag with the nightly app IDs and signing key, so existing OpenTubeX Nightly and Nightly Lite users receive the stable code without switching apps. The promoted APKs are published directly in the signed F-Droid repository, without creating a GitHub release or adding extra assets to the application's stable release. Repository refreshes rebuild them until a newer nightly is published. A separate job without repository secrets or Pages permissions downloads and builds the APKs.

The APKs keep their original OpenTubeX signatures. F-Droid signs only the repository index, using a dedicated key stored in GitHub Actions secrets. Each run seeds the previously published index-v2.json so F-Droid keeps the date each APK was first published. fdroidserver adds "What's new" to index-v2 only for apps built from source, so scripts/add-whats-new.py copies it there from index-v1 before the index is signed.

The catalog icons live in metadata/<package>/en-US/images/icon.png because extracting icons from these APKs produces no usable catalog icon. The Lite packages reuse the stable and nightly icons. Keep all four PNGs in sync with the app's branding. Render the nightly PNG from the application's _scripts/brand/icon-nightly.svg at 512 × 512 pixels to preserve its wrench badge. Publishing checks that every app has a valid icon and phone screenshots in the generated index using python scripts/check-app-icons.py.

All four packages use the same phone screenshots. Publishing downloads them from the application's fastlane/metadata/android/en-US/images/phoneScreenshots/ on development into each package's metadata/<package>/en-US/images/phoneScreenshots/. The application's pnpm run screenshots:android updates them, and pushing the new images publishes a nightly, which refreshes this repository.

Maintainer setup

The repository expects these Actions secrets:

  • FDROID_KEYSTORE_BASE64, containing the base64-encoded PKCS#12 repository key
  • FDROID_KEYSTORE_PASSWORD, containing the password for that key

Configure GitHub Pages to use GitHub Actions, set fdroid.opentubex.org as the custom domain, and add a DNS CNAME from that name to opentubex.github.io. The PUSH_TOKEN used by the OpenTubeX application repository must have write access to this repository so it can send release dispatches.

Back up the repository key and password before the first public deployment. Replacing the key changes the fingerprint and makes existing F-Droid clients distrust future index updates.

About

Official F-Droid repository for OpenTubeX

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Used by

Contributors

Languages