URLs filter met powershell

Powershell kan het leven toch wat eenvoudiger maken. Persoonlijk vind ik dat Powershell toch wat eenvoudiger te begrijpen is dan bash scripts. Maar dat zal een kwestie zijn van omschakelen. Onderstaande snipper is zeker niet af maar wel een leuk voorbeeld van hoe je links kan strippen op een bepaalde pagina. Als je hier heel goed in bent zou je bijv de top 25 van YouTube kunnen downloaden.

Let op: Dit is een voorbeeld. In de algemene voorwaarden van youtube staat dat je geen videos mag downloaden van de site.

# Sessie leegmaken
$Session ="" 

# Aangeven welk SSL protocol je wilt gebruiken
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

# Je kan hier een eigen UserAgent opgeven
$userAgent = "Geheim"

# Het verzoek met de url. Let op. Dit moet http zijn en geen https!
$WebReply = Invoke-WebRequest "http://www.youtube.com/feed/trending" -UserAgent $userAgent -SessionVariable 'Session' 

# Je kan een filter maken op basis van de html class. 
#$FilterLinks = $WebReply.Links | Where class -eq "yt-simple-endpoint inline-block style-scope ytd-thumbnail"

# Hier filteren wel alle urls er uit. Je kan ook aangeven dat een link 'watch' moet bevatten zodat je zeker bent dat je alleen videos krijgt. 
$FilterLinks = $WebReply.Links.Href | Where-Object {$_ -like "*watch*"}

# Hier poep je de waardes die 'watch' bevatten uit. 
$FilterLinks

# Hier kan je los een actie uitvoeren voor elke url in de waarde $FilterLinks 
# Foreach($link in $FilterLinks){youtube-dl $link"}

17 april 2019

CategorieΓ«n: PowerShell, Tech