Skip to content

UmairKhalid786/ComposeTv

ComposeTv

Android TV sample app built with Jetpack Compose for TV, Hilt, Ktor, and Media3.

TMDB Login

The login screen uses TMDB's v3 user authentication flow.

Requirements

  • 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_here

How It Works

When the user signs in, the app calls TMDB in this order:

  1. POST /authentication/token/new to create a request token.
  2. POST /authentication/token/validate_with_login with the TMDB username, password, and request token.
  3. POST /authentication/session/new to exchange the validated token for a TMDB session_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.

Notes

  • 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.

Screens

Login

Screenshot_20251209_233857

Who is watching

Screenshot_20251209_233910

Home Hero Item

Screenshot_20251209_233923

Hero Item Focused

Screenshot_20251209_233937

Home Top Pick

Screenshot_20251209_233951

Music

Screenshot_20251209_234035

Player Screen

Screenshot_20251209_234011

Movie Detail

Screenshot_20251211_154352

Movie detail view more

Screenshot_20251211_154409

Sponsor this project

Packages

 
 
 

Contributors

Languages