Work in progress. A ground-up rewrite of the put.io Android app, not on Google Play yet; expect missing features and breaking changes between commits. The put.io TV app on Play stays until this app replaces it; #14 tracks the rollout. Bug reports are welcome; open an issue before sending a pull request.
Native Android app for put.io, built with Kotlin and Jetpack Compose for phones, tablets, Android TV, and Fire TV from one codebase.
Mobile, on the emulator harness against the live API:
- OAuth sign-in, with the session in Android secure storage
- Files, Search, History, Transfers, Downloads, Trash and Account, with adaptive layouts for tablets
- Item actions, multi-select, public links and in-app image, PDF and text viewers
- Video and background audio playback with resume, tracks, subtitles, picture-in-picture and positions saved to put.io
- Offline downloads with offline playback
- Transfer intake from magnet links,
.torrentfiles and shared links - Launcher shortcuts, a Transfers widget and the system file picker
TV:
- Device-code sign-in with a QR code
- Files, Search, History and Account
- Full-screen playback with D-pad scrubbing, resume and track pickers
- The launcher's Watch Next row and Android TV system search
Both apps report crashes and player failures to Sentry only while the account's Diagnostics control is on, and send only exception types, stack frames, device facts and failure codes.
Requires JDK 21, Node 24, python3, and, on macOS, Homebrew.
./scripts/bootstrap.sh # once per machine: Android SDK, AVDs, brand fonts, local.properties
./gradlew verify
./gradlew :mobile:assembleProductionDebug :tv:assembleProductionDebug
./scripts/prove.sh mobile && ./scripts/prove.sh tv # emulator launch proof with evidenceThe Agent guide covers what the gate runs and building against an unreleased SDK.
- Design: the Android design contract
- Agent guide: module layout, hazards, proof map and CI
Report vulnerabilities through the put.io security policy.
MIT, see LICENSE.