Contributing¶
Fathom is built with Flutter. Contributions, bug reports, and translations are all welcome.
Build from source¶
ffmpeg is recommended but optional (it merges YouTube's separate video and audio streams for higher-quality downloads).
For the packaged, self-contained AppImage that bundles libmpv, use tool/build_appimage.sh. It takes an ARCH of x86_64 or aarch64.
Run the tests¶
flutter test # offline, deterministic
flutter test --tags live --run-skipped # hits real YouTube / network endpoints
Learn the codebase¶
- ARCHITECTURE.md is a tour of the code and the design decisions worth knowing before touching things.
- ROADMAP.md tracks what is planned, done, and parked.
Translations¶
Fathom's interface is internationalized with Flutter's built-in ARB localization, the same approach the wider Jellyfin ecosystem uses.
- English,
lib/l10n/app_en.arb, is the source of truth. Every other language is anapp_<lang>.arbbeside it. - Only English is edited in-repo; other locales flow in from translators, and the setup is Weblate-ready.
- After editing an ARB file, regenerate the bindings with
flutter gen-l10n.
Translations are welcome by pull request.
These docs¶
The documentation site is built with MkDocs Material from the docs/ folder and deploys automatically when changes reach main. To preview locally:
Keep the docs in step with the app: when a change alters something a user sees or does, update the relevant page in the same pull request.
License¶
Fathom is free software under the GNU AGPL-3.0 license.