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

# urlSession(_:assetDownloadTask:didFinishDownloadingTo:)

Tells the delegate that a download task finished downloading the requested asset.

## Declaration

```swift
optional func urlSession(_ session: URLSession, assetDownloadTask: AVAssetDownloadTask, didFinishDownloadingTo location: URL)
```

## Parameters

- `session`: The session the asset download task is on.
- `assetDownloadTask`: The download task whose downloaded completed.
- `location`: The download location of the asset.

## Discussion

Discussion Don’t move the downloaded asset from this location. Downloaded assets must remain at the system-provided URL. Instead, save a persistent reference to this URL for future use.

## 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: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)
