---
title: AVAssetDownloadDelegate
framework: avfoundation
role: symbol
role_heading: Protocol
path: avfoundation/avassetdownloaddelegate
---

# AVAssetDownloadDelegate

A protocol that defines the methods to implement to respond to asset-download events.

## Declaration

```swift
protocol AVAssetDownloadDelegate : URLSessionTaskDelegate
```

## Topics

### 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:willDownloadVariants:)](avfoundation/avassetdownloaddelegate/urlsession(_:assetdownloadtask:willdownloadvariants:).md)
- [urlSession(_:assetDownloadTask:willDownloadTo:)](avfoundation/avassetdownloaddelegate/urlsession(_:assetdownloadtask:willdownloadto:).md)
- [urlSession(_:assetDownloadTask:didReceive:)](avfoundation/avassetdownloaddelegate/urlsession(_:assetdownloadtask:didreceive:).md)

### Responding to aggregate download events

- [urlSession(_:aggregateAssetDownloadTask:willDownloadTo:)](avfoundation/avassetdownloaddelegate/urlsession(_:aggregateassetdownloadtask:willdownloadto:).md)
- [urlSession(_:aggregateAssetDownloadTask:didLoad:totalTimeRangesLoaded:timeRangeExpectedToLoad:for:)](avfoundation/avassetdownloaddelegate/urlsession(_:aggregateassetdownloadtask:didload:totaltimerangesloaded:timerangeexpectedtoload:for:).md)
- [urlSession(_:aggregateAssetDownloadTask:didCompleteFor:)](avfoundation/avassetdownloaddelegate/urlsession(_:aggregateassetdownloadtask:didcompletefor:).md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)
- [URLSessionDelegate](foundation/urlsessiondelegate.md)
- [URLSessionTaskDelegate](foundation/urlsessiontaskdelegate.md)

## See Also

### Creating a download session

- [init(configuration:assetDownloadDelegate:delegateQueue:)](avfoundation/avassetdownloadurlsession/init(configuration:assetdownloaddelegate:delegatequeue:).md)
