title: The response content cannot be parsed because the Internet Explorer engine is not available, or
body: <p>I need to download a channel 9 series using powershell, however the scripts I have tried have errors:</p>
  
  <ol>
  <li><p>This script</p>
  
  <pre><code>$url="https://channel9.msdn.com/blogs/OfficeDevPnP/feed/mp4high"
  $rss=invoke-webrequest -uri $url 
  $destination="D:\Videos\OfficePnP"
  [xml]$rss.Content|foreach{ 
    $_.SelectNodes("rss/channel/item/enclosure") 
  }|foreach{ 
      "Checking $($_.url.split("/")[-1]), we will skip it if it already exists in $($destination)"
    if(!(test-path ($destination + $_.url.split("/")[-1]))){ 
      "Downloading: " + $_.url 
      start-bitstransfer $_.url $destination 
    } 
  }
  </code></pre>
  
  <p>failed with error:</p>
  
  <blockquote>
    <p>The response content cannot be parsed because the Internet Explorer engine is not available, or Internet Explorer's first-launch configuration is not complete. Specify  the UseBasicParsing parameter and try again.</p>
  </blockquote></li>
  <li><p>I also tried this one</p>
  
  <pre><code># --- settings ---
  $feedUrl = "https://channel9.msdn.com/blogs/OfficeDevPnP/feed/mp4high"
  $mediaType = "mp4high"
  $overwrite = $false
  $destinationDirectory = join-path ([Environment]::GetFolderPath("MyDocuments")) "OfficeDevPnP"
  
  # --- locals ---
  $webClient = New-Object System.Net.WebClient
  
  # --- functions ---
  function PromptForInput ($prompt, $default) {
   $selection = read-host "$prompt`r`n(default: $default)"
   if ($selection) {$selection} else {$default}
  }
  
  function DownloadEntries {
   param ([string]$feedUrl) 
   $feed = [xml]$webClient.DownloadString($feedUrl)
  
   $progress = 0
   $pagepercent = 0
   $entries = $feed.rss.channel.item.Length
   $invalidChars = [System.IO.Path]::GetInvalidFileNameChars()
   $feed.rss.channel.item | foreach {
      $url = New-Object System.Uri($_.enclosure.url)
      $name = $_.title
      $extension = [System.IO.Path]::GetExtension($url.Segments[-1])
      $fileName = $name + $extension
  
      $invalidchars | foreach { $filename = $filename.Replace($_, ' ') }
      $saveFileName = join-path $destinationDirectory $fileName
      $tempFilename = $saveFilename + ".tmp"
      $filename
      if ((-not $overwrite) -and (Test-Path -path $saveFileName)) 
      {
          write-progress -activity "$fileName already downloaded" -status "$pagepercent% ($progress / $entries) complete" -percentcomplete $pagepercent
      }
      else 
      {
          write-progress -activity "Downloading $fileName" -status "$pagepercent% ($progress / $entries) complete" -percentcomplete $pagepercent
         $webClient.DownloadFile($url, $tempFilename)
         rename-item $tempFilename $saveFileName
      }
      $pagepercent = [Math]::floor((++$progress)/$entries*100)
    }
  }  
  
  # --- do the actual work ---
  [string]$feedUrl = PromptForInput "Enter feed URL" $feedUrl
  [string]$mediaType = PromptForInput "Enter media type`r`n(options:Wmv,WmvHigh,mp4,mp4high,zune,mp3)" $mediaType
  $feedUrl += $mediaType
  
  [string]$destinationDirectory = PromptForInput "Enter destination directory" $destinationDirectory
  
  # if dest dir doesn't exist, create it
  if (!(Test-Path -path $destinationDirectory)) { New-Item $destinationDirectory -type directory }
  
  DownloadEntries $feedUrl
  </code></pre>
  
  <p>with too many errors</p>
  
  <p><a href="http://screencast.com/t/bgGd0s98Uc">http://screencast.com/t/bgGd0s98Uc</a></p></li>
  </ol>