Android TV sample app built with Jetpack Compose for TV, Hilt, Ktor, and Media3.
The login screen uses TMDB's v3 user authentication flow.
- Configure a TMDB API key before running the app.
- Use a TMDB username and password on the login screen. TMDB does not accept email for this API flow.
You can provide the API key with either option:
export TMDB_API_KEY="your_api_key_here"or:
# ~/.gradle/gradle.properties
tmdbApiKey=your_api_key_hereWhen the user signs in, the app calls TMDB in this order:
POST /authentication/token/newto create a request token.POST /authentication/token/validate_with_loginwith the TMDB username, password, and request token.POST /authentication/session/newto exchange the validated token for a TMDBsession_id.
The resulting session_id is stored through the app's UserSession layer. After a successful login, the app navigates to the "Who Is Watching" screen and then into Home.
- The app stores the TMDB session id, not the user's password.
- If the device is behind an HTTPS-intercepting proxy, debug builds may need a trusted user certificate.
- If the TMDB API key is missing, the login screen shows a configuration error instead of attempting authentication.