# ContentMetadata

Artifact: [androidx.media3:media3-datasource](https://developer.android.com/jetpack/androidx/releases/media3) [View Source](https://cs.android.com/search?q=file:androidx/media3/datasource/cache/ContentMetadata.java+class:androidx.media3.datasource.cache.ContentMetadata)

*** ** * ** ***

<br />

```
@UnstableApi
interface ContentMetadata
```

<br />

Known direct subclasses [DefaultContentMetadata](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/DefaultContentMetadata)

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/DefaultContentMetadata` | Default implementation of `https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/ContentMetadata`. |

*** ** * ** ***

Interface for an immutable snapshot of keyed metadata.

## Summary

| ### Constants |
|---|---|
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/ContentMetadata#KEY_CONTENT_LENGTH() = "exo_len"` Key for content length in bytes (type: long). |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/ContentMetadata#KEY_CUSTOM_PREFIX() = "custom_"` Prefix for custom metadata keys. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/ContentMetadata#KEY_REDIRECTED_URI() = "exo_redir"` Key for redirected uri (type: String). |

| ### Public functions |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/ContentMetadata#contains(java.lang.String)(key: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!)` Returns whether the metadata is available. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte/index.html>?` | `https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/ContentMetadata#get(java.lang.String,byte[])(key: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!, defaultValue: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte/index.html>?)` Returns a metadata value. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/ContentMetadata#get(java.lang.String,long)(key: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!, defaultValue: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)` Returns a metadata value. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?` | `https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/ContentMetadata#get(java.lang.String,java.lang.String)(key: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!, defaultValue: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?)` Returns a metadata value. |
| `java-static https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/ContentMetadata#getContentLength(androidx.media3.datasource.cache.ContentMetadata)(contentMetadata: https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/ContentMetadata!)` Returns the value stored under `https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/ContentMetadata#KEY_CONTENT_LENGTH()`, or `https://developer.android.com/reference/kotlin/androidx/media3/common/C#LENGTH_UNSET()` if not set. |
| `java-static https://developer.android.com/reference/android/net/Uri.html?` | `https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/ContentMetadata#getRedirectedUri(androidx.media3.datasource.cache.ContentMetadata)(contentMetadata: https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/ContentMetadata!)` Returns the value stored under `https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/ContentMetadata#KEY_REDIRECTED_URI()` as a `https://developer.android.com/reference/android/net/Uri.html`, or {code null} if not set. |

## Constants

### KEY_CONTENT_LENGTH

```
const val KEY_CONTENT_LENGTH = "exo_len": String!
```

Key for content length in bytes (type: long).

### KEY_CUSTOM_PREFIX

```
const val KEY_CUSTOM_PREFIX = "custom_": String!
```

Prefix for custom metadata keys. Applications can use keys starting with this prefix without any risk of their keys colliding with ones defined by the ExoPlayer library.

### KEY_REDIRECTED_URI

```
const val KEY_REDIRECTED_URI = "exo_redir": String!
```

Key for redirected uri (type: String).

## Public functions

### contains

```
fun contains(key: String!): Boolean
```

Returns whether the metadata is available.

### get

```
fun get(key: String!, defaultValue: ByteArray<Byte>?): Array<Byte>?
```

Returns a metadata value.

| Parameters |
|---|---|
| `key: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | Key of the metadata to be returned. |
| `defaultValue: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte/index.html>?` | Value to return if the metadata doesn't exist. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte/index.html>?` | The metadata value. |

### get

```
fun get(key: String!, defaultValue: Long): Long
```

Returns a metadata value.

| Parameters |
|---|---|
| `key: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | Key of the metadata to be returned. |
| `defaultValue: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | Value to return if the metadata doesn't exist. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The metadata value. |

### get

```
fun get(key: String!, defaultValue: String?): String?
```

Returns a metadata value.

| Parameters |
|---|---|
| `key: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | Key of the metadata to be returned. |
| `defaultValue: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?` | Value to return if the metadata doesn't exist. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?` | The metadata value. |

### getContentLength

```
java-static fun getContentLength(contentMetadata: ContentMetadata!): Long
```

Returns the value stored under `https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/ContentMetadata#KEY_CONTENT_LENGTH()`, or `https://developer.android.com/reference/kotlin/androidx/media3/common/C#LENGTH_UNSET()` if not set.

### getRedirectedUri

```
java-static fun getRedirectedUri(contentMetadata: ContentMetadata!): Uri?
```

Returns the value stored under `https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/ContentMetadata#KEY_REDIRECTED_URI()` as a `https://developer.android.com/reference/android/net/Uri.html`, or {code null} if not set.