Public/Get-NpoProgramSeason.ps1

function Get-NpoProgramSeason
{
    param
    (
        [Parameter(Mandatory, ValueFromPipeline, Position = 0)]
        [string[]]$ProgramUrl
    )

    process
    {
        $ProgramUrl.ForEach{
            $CurrentProgramUrl = $_

            Invoke-WebRequest -Uri $CurrentProgramUrl `
            | Select-Object -ExpandProperty Content `
            | pup 'a[data-argument="seasonId"] json{}' --plain `
            | ConvertFrom-Json -Depth 5 `
            | ForEach-Object { $_ } `
            | ForEach-Object {
                [PSCustomObject]@{
                    ProgramUrl = $CurrentProgramUrl
                    Id         = $_.'data-value'
                    Title      = $_.title
                    PSTypeName = 'UncommonSense.Npo.ProgramSeason'
                }
            }
    }
}
}