# "Download and install extension" snippet thows exception

**URL:** <https://discourse.slicer.org/t/download-and-install-extension-snippet-thows-exception/19849>\
**Category:** Development\
**Created:** [September 25, 2021, 10:26am UTC](https://discourse.slicer.org/t/download-and-install-extension-snippet-thows-exception/19849 "2021-09-25T10:26:55Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

**Author:** ![jcfr](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/jcfr/32/17825_2.png) [@jcfr](https://discourse.slicer.org/u/jcfr)\
**Post date:** [September 25, 2021, 4:33pm UTC](https://discourse.slicer.org/t/download-and-install-extension-snippet-thows-exception/19849/3 "2021-09-25T16:33:04Z")

</div>

Thanks for the report 🙏

> [@rbumm](#):
>
> Has anything changed ?

Indeed, we updated the infrastructure and some the API details changed.

For reference, see [Downloading extensions for older releases](https://discourse.slicer.org/t/downloading-extensions-for-older-releases/19256)

Waiting we update the documentation and fix the legacy server to support this snippet, when using Slicer 4.13, you could do this:

```diff
extensionName = 'SlicerIGT'
em = slicer.app.extensionsManagerModel()
if not em.isExtensionInstalled(extensionName):
  extensionMetaData = em.retrieveExtensionMetadataByName(extensionName)
- url = em.serverUrl().toString()+'/download/item/'+extensionMetaData['item_id']
- extensionPackageFilename = slicer.app.temporaryPath+'/'+extensionMetaData['_id']
+ url = em.serverUrl().toString() + '/download?items='+extensionMetaData['_id']
+ extensionPackageFilename = slicer.app.temporaryPath+'/'+extensionMetaData['_id']
  slicer.util.downloadFile(url, extensionPackageFilename)
  em.installExtension(extensionPackageFilename)
  slicer.util.restart()

```

For convenience, here is the full snippet for easy copy-paste:

```python
extensionName = 'SlicerIGT'
em = slicer.app.extensionsManagerModel()
if not em.isExtensionInstalled(extensionName):
  extensionMetaData = em.retrieveExtensionMetadataByName(extensionName)
  url = em.serverUrl().toString() + '/download?items='+extensionMetaData['_id']
  extensionPackageFilename = slicer.app.temporaryPath+'/'+extensionMetaData['_id']
  slicer.util.downloadFile(url, extensionPackageFilename)
  em.installExtension(extensionPackageFilename)
  slicer.util.restart()

```

---

_[View the full topic](https://discourse.slicer.org/t/download-and-install-extension-snippet-thows-exception/19849)._
