# Installation

## Dependencies

All Stream Android libraries are available from MavenCentral. Most Android projects already include MavenCentral by default, but verify your repositories configuration includes it.

In your `settings.gradle` file, ensure these repositories are configured:

```kotlin
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
    }
}
```

Or if you're using an older project setup, add these repositories in your project level `build.gradle` file:

```groovy
allprojects {
    repositories {
        google()
        mavenCentral()
    }
}
```

Check the [Releases page](https://github.com/GetStream/stream-video-android/releases) for the latest version and the changelog.

![Stream Video Android Core](https://img.shields.io/maven-central/v/io.getstream/stream-video-android-core.svg?label=Maven%20Central)

## Available Artifacts

### Core Client

To add the low-level Video client library to your app, open your module's `build.gradle` script and add the following:

```groovy
dependencies {
    implementation("io.getstream:stream-video-android-core:$stream_version")
}
```

### Compose Video UI Components

To use the Compose Video Components instead, add the following dependency:

```groovy
dependencies {
    implementation("io.getstream:stream-video-android-ui-compose:$stream_version")
}
```

Adding the Compose Video Components library as a dependency will automatically include the client library.

### Push Notifications

We ship multiple artifacts to easily integrate Stream Video with third party push notification providers. See the [Push Notification](/video/docs/android/advanced/incoming-calls/push-notifications/) page for more details.

### Video Filters

We offer two AI video filters (_background blur_ and _virtual background_) in a separate artifact. See the [Video & Audio Filters](/video/docs/android/advanced/apply-video-filters/) page for more details.

## Permissions

The Stream Video SDK requires the following permissions in your `AndroidManifest.xml`:

```xml
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
```

These permissions are automatically merged from the SDK's manifest, so you typically don't need to add them manually. However, you must request **runtime permissions** for camera and microphone before joining a call.

The SDK provides the `LaunchCallPermissions` composable to handle this automatically. See the [Permission Requests](/video/docs/android/ui-cookbook/permission-requests/) guide for detailed information on requesting permissions.

### BOM (Bill of Materials)

The Stream Video Bill of Materials (BOM) simplifies dependency management by allowing you to specify only the BOM's version, ensuring compatibility across all Stream Video SDKs. The BOM references stable versions of the SDKs that work seamlessly together, eliminating the need to manually specify versions for individual dependencies. When you update the BOM version, all associated libraries automatically update to their latest compatible versions, streamlining the upgrade process.

```kotlin
dependencies {
    // Import the Stream Video SDK BOM
    implementation(platform("io.getstream:stream-video-android-bom:$version"))

    // Now add dependencies without versions - BOM manages them
    implementation("io.getstream:stream-video-android-core")
    implementation("io.getstream:stream-video-android-ui-core")
    implementation("io.getstream:stream-video-android-ui-compose")
    implementation("io.getstream:stream-video-android-filters-video")
    implementation("io.getstream:stream-video-android-previewdata")
}
```

## Snapshot Builds

Snapshot builds are published from the **develop** branch.
Please don't use Snapshot builds in production as they aren't as well tested as our regular releases.

To use snapshot builds, you need to add the Sonatype snapshot repository in your Gradle build configuration (see at the top of this page for where to add this):

```groovy
maven(url="https://central.sonatype.com/repository/maven-snapshots/")
```

Then you can add a snapshot dependency on any of our artifacts by replacing the version number with a `-SNAPSHOT` postfix. Snapshot versions are one patch version ahead of the latest stable release. For example, if the latest stable release is `1.2.3`, the snapshot version is `1.2.4-SNAPSHOT`.


---

This page was last updated at 2026-07-09T16:01:22.643Z.

For the most recent version of this documentation, visit [https://getstream.io/video/docs/android/basics/installation/](https://getstream.io/video/docs/android/basics/installation/).