Download Channel 9 Series


It’s learning season again, and I’m gearing up for lots of Azure this year. Between Build, Ignite, the Microsoft Virtual Academy and the endless stream of content on Channel 9, it’s easy to feel overwhelmed!

Since bandwidth is a precious commodity, and that I don’t always have the luxury of having an access point, I decided to re-purpose the script I used to download the Build and Ignite sessions. This new script has only one reason to be; it exists to download Series from Channel 9 so that I can watch them on the go.

Going through the list of Series, I was amazed by the amount of new content. I found MVA sessions and a bunch of other interesting topics related to Azure.

Feel free to use the comments section at the bottom of this post to suggest feeds that I should pay attention to.

The Script

To execute this script, I used Windows Powershell ISE and I manually download the Series that interest me. Browse through the series that I identified for myself. Who knows, you may find something of interest.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
function Get-Media
{
    [CmdletBinding()]
    param
    (
        [Object]
        $url,
        [Object]
        $title,
        [Object]
        $path
    )
 
    $u = New-Object System.Uri($url)
    $name = $title
    $extension = [System.IO.Path]::GetExtension($u.Segments[-1])
    $fileName = $name + $extension
 
    $fileName = $fileName -replace "’", ''
    $fileName = $fileName -replace "\?", ''
    $fileName = $fileName -replace ":", ''
    $fileName = $fileName -replace '/', ''
    $fileName = $fileName -replace ",", ''
    $fileName = $fileName -replace '"', ''
 
    $fileName
 
    if (Test-Path($fileName)) {
        Write-Host 'Skipping file, already downloaded' -ForegroundColor Yellow
    }
    else
    {
        Invoke-WebRequest $url -OutFile (Join-Path -Path $path -ChildPath $fileName)
    }
}
 
function Get-VideosFromFeed
{
    [CmdletBinding()]
    param
    (
        [Object]
        $feedUrl,
        [Object]
        $folder,
        [Object]
        $path
    )
 
    $feed=(New-Object System.Net.WebClient).DownloadString($feedUrl)
 
    $downloadPath = (Join-Path -Path $path -ChildPath $folder)
 
    if (Test-Path($downloadPath)) {
        Write-Host 'Skipping folder, already exists' -ForegroundColor Yellow
    }
    else
    {
        New-Item -Path $downloadPath -ItemType directory -WarningAction SilentlyContinue
    }
 
    foreach($i in $feed.rss.channel.item) {
        foreach($m in $i.group){
            foreach($u in $m.content `
                    | Where-Object { `
                            $_.url -like '*mid.mp4' `
                         } | Select-Object -Property @{Name='url'; Expression = {$_.url}}, `
                                                     @{Name='title'; Expression = {$i.title}})
            {
                Get-Media -url $u.url -title $u.title -path $downloadPath
            }
        }
    }
}
 
$physicalPath = "V:\Videos\Series"
 
# Microsoft Datacenter vNext Preview: Bringing Azure to Your Datacenter
Get-VideosFromFeed -feedUrl 'https://channel9.msdn.com/Series/Microsoft-Datacenter-vNext-Preview-Bringing-Azure-to-Your-Datacenter/RSS' -path $physicalPath -folder 'Data Center Preview'
 
# Microsoft Azure Fundamentals: Virtual Machines
Get-VideosFromFeed -feedUrl 'https://channel9.msdn.com/Series/Microsoft-Azure-Fundamentals-Virtual-Machines/RSS' -path $physicalPath -folder 'Microsoft Azure Fundamentals Virtual Machines'
 
# Adding Microsoft Azure Search to Your Websites and Apps
Get-VideosFromFeed -feedUrl 'https://channel9.msdn.com/Series/Adding-Microsoft-Azure-Search-to-Your-Websites-and-Apps/RSS' -path $physicalPath -folder 'Working with Azure Search'
 
# Docker for .NET Developers
Get-VideosFromFeed -feedUrl 'https://channel9.msdn.com/Series/Docker-for-NET-Developers/RSS' -path $physicalPath -folder 'Docker for NET Devs'
 
# Storage Spaces Deep Dive
Get-VideosFromFeed -feedUrl 'https://channel9.msdn.com/Series/Storage-Spaces-Deep-Dive/RSS' -path $physicalPath -folder 'Storage Spaces Deep Dive'
 
# Cloud DevCamp
Get-VideosFromFeed -feedUrl 'https://channel9.msdn.com/Series/Cloud-DevCamp/RSS' -path $physicalPath -folder 'Cloud DevCamp'
 
# Microsoft Azure Back End for Gaming
Get-VideosFromFeed -feedUrl 'https://channel9.msdn.com/Series/Microsoft-Azure-Back-End-for-Gaming/RSS' -path $physicalPath -folder 'Microsoft Azure Back End for Gaming'
 
# Azure App Service
Get-VideosFromFeed -feedUrl 'https://channel9.msdn.com/Series/Windows-Azure-Web-Sites-Tutorials/RSS' -path $physicalPath -folder 'Azure App Service'
 
# Developing Solutions with Azure DocumentDB
Get-VideosFromFeed -feedUrl 'https://channel9.msdn.com/Series/Developing-Solutions-with-Azure-DocumentDB/RSS' -path $physicalPath -folder 'Developing Solutions with Azure DocumentDB'
 
# Big Data Analytics with HDInsight
Get-VideosFromFeed -feedUrl 'https://channel9.msdn.com/Series/Big-Data-Analytics-with-HDInsight/RSS' -path $physicalPath -folder 'Big Data Analytics with HDInsight'
 
# Microsoft Hybrid Cloud Best Practices for IT Pros
Get-VideosFromFeed -feedUrl 'https://channel9.msdn.com/Series/Microsoft-Hybrid-Cloud-Best-Practices-for-IT-Pros/RSS' -path $physicalPath -folder 'Microsoft Hybrid Cloud Best Practices for IT Pros'
 
# Java on Microsoft Azure
Get-VideosFromFeed -feedUrl 'https://channel9.msdn.com/Series/Java-on-Microsoft-Azure/RSS' -path $physicalPath -folder 'Java on Microsoft Azure'
 
# Azure Active Directory Core Skills
Get-VideosFromFeed -feedUrl 'https://channel9.msdn.com/Series/Azure-Active-Directory-Core-Skills/RSS' -path $physicalPath -folder 'Azure Active Directory Core Skills'
 
# Managing Linux Workloads in Windows Server and System Center
Get-VideosFromFeed -feedUrl 'https://channel9.msdn.com/Series/Managing-Linux-Workloads-in-Windows-Server-and-System-Center/RSS' -path $physicalPath -folder 'Managing Linux Workloads in Windows Server and System Center'
 
# All About Microsoft Azure Operational Insights
Get-VideosFromFeed -feedUrl 'https://channel9.msdn.com/Series/All-About-Microsoft-Azure-Operational-Insights/RSS' -path $physicalPath -folder 'All About Microsoft Azure Operational Insights'
 
# You ve Got Key Values! A Redis Jump Start
Get-VideosFromFeed -feedUrl 'https://channel9.msdn.com/Series/Youve-Got-Key-Values-A-Redis-Jump-Start/RSS' -path $physicalPath -folder 'You ve Got Key Values! A Redis Jump Start'
 
# Azure Solution Training
Get-VideosFromFeed -feedUrl 'https://channel9.msdn.com/Series/Azure-Solutions-Training/RSS' -path $physicalPath -folder 'Azure Solution Training'
 
# Advanced PowerShell Desired State Configuration (DSC) and Custom Resources
Get-VideosFromFeed -feedUrl 'https://channel9.msdn.com/Series/Advanced-PowerShell-Desired-State-Configuration-DSC-and-Custom-Resources/RSS' -path $physicalPath -folder 'Advanced PowerShell Desired State Configuration (DSC) and Custom Resources'
 
# Getting Started with PowerShell Desired State Configuration (DSC)
Get-VideosFromFeed -feedUrl 'https://channel9.msdn.com/Series/Getting-Started-with-PowerShell-Desired-State-Configuration-DSC/RSS' -path $physicalPath -folder 'Getting Started with PowerShell Desired State Configuration (DSC)'
 
# Polyglot Persistence: Choosing the Right Azure Storage Mix
Get-VideosFromFeed -feedUrl 'https://channel9.msdn.com/Series/Polyglot-Persistence-Choosing-the-Right-Azure-Storage-Mix/RSS' -path $physicalPath -folder 'Polyglot Persistence Choosing the Right Azure Storage Mix'
 
# Getting Started with Microsoft Azure Active Directory
Get-VideosFromFeed -feedUrl 'https://channel9.msdn.com/Series/Getting-Started-with-Microsoft-Azure-Active-Directory/RSS' -path $physicalPath -folder 'Getting Started with Microsoft Azure Active Directory'
 
# MEAN Stack Jump Start
Get-VideosFromFeed -feedUrl 'https://channel9.msdn.com/Series/MEAN-Stack-Jump-Start/RSS' -path $physicalPath -folder 'MEAN Stack Jump Start'
 
# Managing Your Systems on Microsoft Azure with Chef
Get-VideosFromFeed -feedUrl 'https://channel9.msdn.com/Series/Managing-Your-Systems-on-Microsoft-Azure-with-Chef/RSS' -path $physicalPath -folder 'Managing Your Systems on Microsoft Azure with Chef'
 
# Connect(On Demand);
Get-VideosFromFeed -feedUrl 'https://channel9.msdn.com/Series/ConnectOn-Demand/RSS' -path $physicalPath -folder 'Connect(On Demand)'
 
# Partner Profitability: Cloud Transformation Series
Get-VideosFromFeed -feedUrl 'https://channel9.msdn.com/Series/Partner-Profitability-Cloud-Transformation-Series/RSS' -path $physicalPath -folder 'Partner Profitability Cloud Transformation Series'
 
# Web API Design
Get-VideosFromFeed -feedUrl 'https://channel9.msdn.com/Series/Web-API-Design/RSS' -path $physicalPath -folder 'Web API Design'
 
# Developing Microsoft SQL Server Databases
Get-VideosFromFeed -feedUrl 'https://channel9.msdn.com/Series/Developing-Microsoft-SQL-Server-Databases/RSS' -path $physicalPath -folder 'Developing Microsoft SQL Server Databases'
 
# Monitor Workloads with System Center Operations Manager
Get-VideosFromFeed -feedUrl 'https://channel9.msdn.com/Series/Monitor-Workloads-with-System-Center-Operations-Manager/RSS' -path $physicalPath -folder 'Monitor Workloads with System Center Operations Manager'
 
# Azure HDInsight Service
Get-VideosFromFeed -feedUrl 'https://channel9.msdn.com/Series/Getting-started-with-Windows-Azure-HDInsight-Service/RSS' -path $physicalPath -folder 'Azure HDInsight Service'
 
# Automate Workloads with System Center Orchestrator
Get-VideosFromFeed -feedUrl 'https://channel9.msdn.com/Series/Automate-Workloads-with-System-Center-Orchestrator/RSS' -path $physicalPath -folder 'Automate Workloads with System Center Orchestrator'
 
# Open Source for DevOps Practices
Get-VideosFromFeed -feedUrl 'https://channel9.msdn.com/Series/Open-Source-for-DevOps-Practices/RSS' -path $physicalPath -folder 'Open Source for DevOps Practices'
 
# Developing Microsoft Azure Solutions
Get-VideosFromFeed -feedUrl 'https://channel9.msdn.com/Series/Developing-Microsoft-Azure-Solutions/RSS' -path $physicalPath -folder 'Developing Microsoft Azure Solutions'
 
# Architecting Microsoft Azure Solutions
Get-VideosFromFeed -feedUrl 'https://channel9.msdn.com/Series/Architecting-Microsoft-Azure-Solutions/RSS' -path $physicalPath -folder 'Architecting Microsoft Azure Solutions'
 
# Getting Great Performance out of Azure
Get-VideosFromFeed -feedUrl 'https://channel9.msdn.com/Series/Getting-Great-Performance-out-of-Azure/RSS' -path $physicalPath -folder 'Getting Great Performance out of Azure'
 
# Azure Networking Fundamentals for IT Pros
Get-VideosFromFeed -feedUrl 'https://channel9.msdn.com/Series/Azure-Networking-Fundamentals-for-IT-Pros/RSS' -path $physicalPath -folder 'Azure Networking Fundamentals for IT Pros'
 
# PHP for Azure
Get-VideosFromFeed -feedUrl 'https://channel9.msdn.com/Series/PHP-for-Azure/RSS' -path $physicalPath -folder 'PHP for Azure'
 
# You ve Got Documents! A MongoDB Jump Start
Get-VideosFromFeed -feedUrl 'https://channel9.msdn.com/Series/Youve-Got-Documents-A-MongoDB-Jump-Start/RSS' -path $physicalPath -folder 'You ve Got Documents - A MongoDB Jump Start'
 
# Designing Solutions for SQL Server
Get-VideosFromFeed -feedUrl 'https://channel9.msdn.com/Series/Designing-Solutions-for-SQL-Server/RSS' -path $physicalPath -folder 'Designing Solutions for SQL Server'
Comments (1)

  1. Jean-David says:

    Great

    Thank You

Skip to main content