---
title: "makeStreamingContentKeyRequestData(forApp:contentIdentifier:options:completionHandler:)"
framework: avfoundation
role: symbol
role_heading: Instance Method
path: "avfoundation/avcontentkeyrequest/makestreamingcontentkeyrequestdata(forapp:contentidentifier:options:completionhandler:)"
---

# makeStreamingContentKeyRequestData(forApp:contentIdentifier:options:completionHandler:)

Obtains encrypted key request data for a specific combination of app and content.

## Declaration

```swift
func makeStreamingContentKeyRequestData(forApp appIdentifier: Data, contentIdentifier: Data?, options: [String : Any]? = nil, completionHandler handler: @escaping @Sendable (Data?, (any Error)?) -> Void)
```

```swift
func makeStreamingContentKeyRequestData(forApp appIdentifier: Data, contentIdentifier: Data?, options: [String : Any]? = nil) async throws -> Data
```

## Parameters

- `appIdentifier`: An opaque identifier for the app.
- `contentIdentifier`: An opaque identifier for the content.
- `options`: A dictionary containing any additional information required to obtain the key. The value of this parameter is nil when no additional information is required.
- `handler`: A block called after the streaming content key request has been prepared.

## Discussion

Discussion If AVContentKeyRequestProtocolVersionsKey is not specified in the options parameter, the default protocol of 1 is used.

## See Also

### Getting content key request data

- [AVContentKeyRequestProtocolVersionsKey](avfoundation/avcontentkeyrequestprotocolversionskey.md)
- [AVContentKeyRequestRequiresValidationDataInSecureTokenKey](avfoundation/avcontentkeyrequestrequiresvalidationdatainsecuretokenkey.md)
- [AVContentKeyRequestRandomDeviceIdentifierSeedKey](avfoundation/avcontentkeyrequestrandomdeviceidentifierseedkey.md)
- [AVContentKeyRequestShouldRandomizeDeviceIdentifierKey](avfoundation/avcontentkeyrequestshouldrandomizedeviceidentifierkey.md)
