TechEd Europe Thread

9 posts

Forum Read Only

This forum has been made read only by the site admins. No new threads or comments can be added.

Content Download

Back to Forum: TechEd Europe
  • Michael​Barclay

    Hi, does anyone know how to download multiple content from Teched 2013 without doing each individually?

  • cornelisf
  • MarkDeFalco

    @MichaelBarclay: You can also load the RSS feed (select your preferred format from the top of the main event page) and load it into your favorite podcast software.

    For example: http://channel9.msdn.com/Events/TechEd/Europe/2013/RSS/mp4high is the HD MP4 feed for TechEd Europe 2013

  • iAndroid

    Hi,

    the default video as well as the link for High Quality WMV of the European TechEd 2013 session "APTs: Cybercrime, Cyber Attacks, Warfare and Threats Exposed (ATC-B302)" point to a wrong session recording (ATC-B201). The links to the other files (different format/quality) seem to be correct.

    Could you please fix that? Thanks.

  • DavidJohnson

    I've modified this script many times to apply to various conferences.. It was originally designed for the MMS conference by Jamie Moyer

    #######################################################################################################################                        
    # Description:   Download MMS 2013 Channel 9 videos
    # PowerShell version: 3                  
    # Author(s):     Stefan Stranger (Microsoft)
    #                Jamie Moyer (Microsoft         
    # Example usage: Run Get-MMS2013Channel9Videos.ps1 -path c:\temp -verbose
    #                Select using the Out-Gridview the videos you want to download and they are stored in your myvideos folder.
    #                You can multiple select videos, holding the ctrl key.
    # Disclamer:     This program source code is provided "AS IS" without warranty representation or condition of any kind
    #                either express or implied, including but not limited to conditions or other terms of merchantability and/or
    #                fitness for a particular purpose. The user assumes the entire risk as to the accuracy and the use of this
    #                program code.
    # Date:          04-13-2012                       
    # Name:          Get-MMS2013Channel9Videos.ps1           
    # Version:       v1.001 - 04-14-2012 - Stefan Stranger - initial release
    # Version:       v1.005 - 04-29-2013 - Jamie Moyer, Stefan Stranger - added more robustness and HTML Report
    ########################################################################################################################
    #requires -version 3.0
    [
    CmdletBinding()]
    Param
    (
           
    # Path where to store video's locally
           
    [Parameter(Mandatory=$false,
                       Position
    =0)]
           
           
    $Path=[environment]::getfolderpath("myvideos") +"\TechEd2013-Europe",[Parameter(Mandatory=$false,Position=1)]
           
    $rssfeed="http://channel9.msdn.com/Events/TechEd/Europe/2013/RSS/mp4high"
        )
    function
    Get-NewFileName($name)
    {
       
    Write-Verbose"Calling Get-NewFileName Function"
       
    $r=$Path+"\"+(($name-replace"[^\w\s\-]*") -replace"\s+") +".mp4";$r
    }
    Write-Verbose
    "Remove last slash if added using the downloaddirectory Parameter"
    if
    ($path.EndsWith("\")){$path=$path.Substring(0,$path.Length-1)}
    write-verbose
    "Path is: $path"
    Write-Verbose
    "Checking if Download directory $Path exists"
    if
    (!(test-path$Path-PathTypeContainer))
    {
       
    Write-Verbose"Creating $Path"
       
    New-Item-ItemTypeDirectory$Path|Out-Null
    }
    Write-Verbose
    "Downloading RSS Feed Items from $rssfeed"
    $feeditems
    =Invoke-RestMethod$rssfeed
    [
    array]$feeditemsWithDetails=$feeditems|
       
    selectTitle,Summary,Duration,Enclosure,creator|
           
    Add-Member-MemberTypeScriptProperty-NameAlreadyDownloaded-Value {(test-path("$Path\$($this.enclosure.url.split('/')[6])"))} -PassThru-Force|
           
    Add-Member-MemberTypeScriptProperty-NameDestination-Value {("$Path\$($this.enclosure.url.split('/')[6])")} -PassThru-Force|
           
    Add-Member-MemberTypeScriptProperty-NameSource-Value {$this.enclosure.url} -PassThru-Force|
               
    selectAlreadyDownloaded,Title,Summary,Duration,Enclosure,Source,Destination,creator|sortTitle
    Write-Verbose
    "Add all already downloaded items back to the list"
    $duplicateVideoNames
    =$feeditemsWithDetails|sortname|groupdestination|where-object {$_.Name -ne""-and$_.Count -gt1} |
       
    ForEach-Object {$_.Group}
     
    Write-Verbose
    "Remove the posts with duplicate file names from the feeditemsSelected array"
    $feeditemsSelected
    = @($feeditemsSelected|Where-Object {$duplicateVideoNames-notcontains$_})
     
    Write-Verbose
    "Change video names to filenames, check to see if they are downloaded already and added them back to the array with updated details"
    $duplicateVideoNames
    |foreach-object {
                                           
    $newDestination=Get-NewFileName$_.Title
                                           
    $_.Destination =$newDestination
                                           
    $_.AlreadyDownloaded = (Test-Path$newDestination)
                                           
    $feeditemsWithDetails+=$_
                                          }
    Write-Verbose
    "Open Out-GridView to select vidoes to download"
    [
    array]$feeditemsSelected=$feeditemsWithDetails|Out-GridView-PassThru|
       
    selectAlreadyDownloaded,Title,Summary,Duration,Enclosure,Source,Destination
    Write-Verbose
    "Downloading videos"
    $feeditemsSelected
    |Where-Object{!(Test-Path$_.Destination)} |selectSource,Destination|Start-BitsTransfer-PriorityForeground|Out-Null
    Write-Verbose
    "Add all already downloaded items back to the list"
    $feeditemsWithDetails
    |where-object {$_.AlreadyDownloaded} |
                               
    foreach-object {
                                                   
    if(-not[bool]($feeditemsSelected|Select-String$_.Title -Quiet))
                                                    {
                                                       
    $feeditemsSelected+=$_
                                                    }
                                               }
    Write-Verbose
    "Create HTML Report"
    $feeditemsSelected
    |sortName|Out-Null
    $html
    =$feeditemsSelected|?{Test-Path"$($_.Destination)"} |% {@"
         <H4><a href="
    $($_.Destination)">$($_.Title)</a></H4> 
         <H5>Speaker(s):
    $($_.creator)</H5>
         <H5>
    $($_.Summary)</H5>
    "@
    }
     
    Write-Verbose
    "Open HTML Report"
    ConvertTo-Html
    -Head"<h1>My Downloaded Teched 2013 Europe Videos - $($feeditemsSelected.Count) Downloaded</h1>"-Body$html|
       
    Out-File$Path\MyTeched2013EuropeContent.html
    start"$Path\MyTeched2013EuropeContent.html" 
      

  • Michael​Barclay

    Thank you for all the replies

  • Kaspars

    Strange, script is not working. I allready had to put 26-28 line in one line.

    At D:\Downloads\teched\MMS2013Channel9Videos.ps1:31 char:20
    + $rssfeed="<a href="http://channel9.msdn.com/Events/TechEd/Europe/2013/RSS/mp4hig ...
    +                    ~
    Missing ')' in function parameter list.
    At D:\Downloads\teched\MMS2013Channel9Videos.ps1:129 char:14
    + $($_.creator)</H5>
    +              ~
    The '<' operator is reserved for future use.
    At D:\Downloads\teched\MMS2013Channel9Videos.ps1:131 char:14
    + $($_.Summary)</H5>
    +              ~
    The '<' operator is reserved for future use.
    At D:\Downloads\teched\MMS2013Channel9Videos.ps1:136 char:2
    + "Open HTML Report"
    +  ~~~~
    Unexpected token 'Open' in expression or statement.
    At D:\Downloads\teched\MMS2013Channel9Videos.ps1:141 char:43
    + start"$Path\MyTeched2013EuropeContent.html"
    +                                           ~
    The string is missing the terminator: ".
        + CategoryInfo          : ParserError: (Smiley [], ParseException
        + FullyQualifiedErrorId : MissingEndParenthesisInFunctionParameterList

     

    Maybe Forum formatting  is not correct?

  • Bjarne​Rasmussen

    @MarkDeFalco: Is there a feed just for the powerpoint slides?

  • MarkDeFalco

Conversation locked

This conversation has been locked by the site admins. No new comments can be made.