---
title: MPPlayableContentDataSource
framework: mediaplayer
role: symbol
role_heading: Protocol
path: mediaplayer/mpplayablecontentdatasource
---

# MPPlayableContentDataSource

The data source providing media metadata to external media players so they can build user interfaces displaying your app’s content.

## Declaration

```swift
protocol MPPlayableContentDataSource : NSObjectProtocol
```

## Overview

Overview To support external media players, create a class that conforms to the MPPlayableContentDataSource protocol. When your app launches, create an instance of this class and assign it to the shared dataSource property. This data source provides media metadata to external media players so that they can build user interfaces displaying your app’s content. It’s best to set this data source as early as possible in your app’s lifecycle, as iOS may start asking for content right away. important: This class is only used for CarPlay. Using it requires a special entitlement issued by Apple. Apps without the correct entitlement won’t appear on the CarPlay home screen. See http://www.apple.com/ios/carplay/ for more information.

## Topics

### Retrieving a media item

- [contentItem(at:)](mediaplayer/mpplayablecontentdatasource/contentitem(at:).md)
- [contentItem(forIdentifier:completionHandler:)](mediaplayer/mpplayablecontentdatasource/contentitem(foridentifier:completionhandler:).md)

### Working with child nodes

- [beginLoadingChildItems(at:completionHandler:)](mediaplayer/mpplayablecontentdatasource/beginloadingchilditems(at:completionhandler:).md)
- [childItemsDisplayPlaybackProgress(at:)](mediaplayer/mpplayablecontentdatasource/childitemsdisplayplaybackprogress(at:).md)
- [numberOfChildItems(at:)](mediaplayer/mpplayablecontentdatasource/numberofchilditems(at:).md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Providing playable content

- [dataSource](mediaplayer/mpplayablecontentmanager/datasource.md)
