---
title: "urlSession(_:assetDownloadTask:willDownloadVariants:)"
framework: avfoundation
role: symbol
role_heading: Instance Method
path: "avfoundation/avassetdownloaddelegate/urlsession(_:assetdownloadtask:willdownloadvariants:)"
---

# urlSession(_:assetDownloadTask:willDownloadVariants:)

Tells the delegate that a download task completed variant selection.

## Declaration

```swift
optional func urlSession(_ session: URLSession, assetDownloadTask: AVAssetDownloadTask, willDownloadVariants variants: [AVAssetVariant])
```

## Parameters

- `session`: The session the asset download task is on.
- `assetDownloadTask`: The task that finished selecting variant selection.
- `variants`: The asset variants to download.

## See Also

### Responding to download events

- [urlSession(_:assetDownloadTask:didResolve:)](avfoundation/avassetdownloaddelegate/urlsession(_:assetdownloadtask:didresolve:).md)
- [urlSession(_:assetDownloadTask:didLoad:totalTimeRangesLoaded:timeRangeExpectedToLoad:)](avfoundation/avassetdownloaddelegate/urlsession(_:assetdownloadtask:didload:totaltimerangesloaded:timerangeexpectedtoload:).md)
- [urlSession(_:assetDownloadTask:didFinishDownloadingTo:)](avfoundation/avassetdownloaddelegate/urlsession(_:assetdownloadtask:didfinishdownloadingto:).md)
- [urlSession(_:assetDownloadTask:willDownloadTo:)](avfoundation/avassetdownloaddelegate/urlsession(_:assetdownloadtask:willdownloadto:).md)
- [urlSession(_:assetDownloadTask:didReceive:)](avfoundation/avassetdownloaddelegate/urlsession(_:assetdownloadtask:didreceive:).md)
