PowerShell-Podcasts (gib mir alles)

PodCasts sind im Allgemeinen eine feine Sache (z.B. die Angebote des SWR in der Rubrik Wissen und in den anderen Rubrik sind wirklich durchweg hörenswert), insbesondere natürlich, wenn es um die PowerShell geht. Unter der Adresse

http://powerscripting.wordpress.com/

führen Jonathan Walz und Hal Rottenberg ein Blog, auf dem sie regelmäßig PowerShell-Podcasts veröffentlichen. Ein Podcast ist ein Gespräch, das sie mit einer bekannten Persönlichkeit aus der „PowerShell-Szene“ führen, und das man sich (mit Musik und ein wenig Werbung unterlegt) als Mp3-Datei herunter laden und z.B. immer dann anhören kann, wenn man mal wieder irgendwo im Stau steht oder eine Wartezeit sinnvoll überbrücken möchte. Insgesamt also eine tolle Sache (der einzige Kritikpunkt, der mir spontan einfällt, dass sie leider den Titel für die einzelnen Podcasts nicht einheitlich gewählt haben und der Name der Mp3-Datei einen Hinweis auf den Inhalt beinhalten sollte – außerdem enthält der aktuelle RSS-Feed einen kleinen Fehler). Die beiden betreiben ihren Blog schon eine Weile, denn in Kürze steht der 100te Podcast auf dem Programm.

Hier ist ein kleines PowerShell-Skript, das alle Podcasts über BITS und die BitsTransfer-Cmdlets herunterlädt. Nun, nicht alle, sondern nur die letzten 10 (die Anzahl kann aber verändert werden), da schnell 500 MByte zusammenkommen (der Download geht aber erstaunlich schnell über die Bühne). Eine Besonderheit der BitsTransfer-Cmdlets ist, das man selber über einen Aufruf von Get-BitsTransfer herausfinden muss, ob die Übertragung abgeschlossen wurde und, solle dies für alle (!) Jobs der Fall sein, die Übertragung über den Aufruf von Complete-BitsTransfer abschließen muss (laut Doku kann man sich dafür bis zu 90 Tage Zeit lassen).

Man kann es sich natürlich noch einfacher machen und das Tool RSSBandit benutzen, das intern BITS für den Download benutzt.

Hier ist das PowerShell-Skript (die folgende Pdf-Datei GetAllPowerShellPodcasts ist keine Pdf-Datei, sondern eine Ps1-Datei mit der Erweiterung .Pdf – man muss nach dem Download lediglich die Erweiterung ändern – anscheinend lassen sich bei WordPress keine beliebigen Dateien hochladen)

# ————————————————————
# Get alle PowerShell-Podcast
# ————————————————————
Import-Module BitsTransfer
$RSSFeedURL =
http://feeds.feedburner.com/Powerscripting?format=xml
$ZielPfad = „C:\PowerShellPodcasts“
if (!(Test-Path -Path $ZielPfad))
{ Md $ZielPfad | Out-Null }
Del $Zielpfad\*.mp3
$RSS = [xml](New-Object -Type
System.Net.Webclient).DownloadString($RssFeedURL)
$Channels = $Rss.rss.channel
$MaxDownloadCount = 10
$DownloadCount = 0
foreach($Item in $Channels.item)
{
$TitelElements = $Item.title -split „-“
if ($TitelElements.Length -gt 0)
{ $Titel = $TitelElements[$TitelElements.Length -1] }
else
{ $Titel = $Item.title }
if ($Titel.StartsWith(“ „))
{ $Titel = ($Titel -Split “ „)[1..$Titel.Length] }  # Wow!
try
{
$SourceLink = $Item.origEnclosureLink
$Mp3File = (New-Object -Type System.Uri
$SourceLink).Segments[-1]
$PodcastTitel = „PSPodCast_$($Titel)_.mp3“
$ZielDateipfad = Join-Path -Path $ZielPfad -Child $PodcastTitel
Start-BitsTransfer -Source $SourceLink -Destination $ZielDateipfad -Async -Priority Low # | Out-Null
$DownloadCount++;
if ($DownloadCount-eq $MaxDownloadCount) { break}
}
catch
{ }
}

Schreibe einen Kommentar

Bitte logge dich mit einer dieser Methoden ein, um deinen Kommentar zu veröffentlichen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s