Public/Get-DmmData.ps1

function Get-DmmData {
    [CmdletBinding()]
    param (
        [Parameter(Mandatory = $true, Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true)]
        [String]$Url,

        [Parameter()]
        [Boolean]$ScrapeActress
    )

    process {
        $movieDataObject = @()
        $session = New-Object Microsoft.PowerShell.Commands.WebRequestSession
        $cookie = New-Object System.Net.Cookie
        $cookie.Name = 'age_check_done'
        $cookie.Value = '1'
        $cookie.Domain = 'dmm.co.jp'
        $session.Cookies.Add($cookie)

        if ($Url -match '/en/') {
            $cookie = New-Object System.Net.Cookie
            $cookie.Name = 'ckcy'
            $cookie.Value = '2'
            $cookie.Domain = 'dmm.co.jp'
            $session.Cookies.Add($cookie)
            $cookie = New-Object System.Net.Cookie
            $cookie.Name = 'cklg'
            $cookie.Value = 'en'
            $cookie.Domain = 'dmm.co.jp'
            $session.Cookies.Add($cookie)
        }

        try {
            Write-JVLog -Write:$script:JVLogWrite -LogPath $script:JVLogPath -WriteLevel $script:JVLogWriteLevel -Level Debug -Message "[$($MyInvocation.MyCommand.Name)] Performing [GET] on URL [$Url]"
            $webRequest = Invoke-WebRequest -Uri $Url -WebSession $session -Method Get -Verbose:$false
        } catch [Microsoft.PowerShell.Commands.HttpResponseException] {
            Write-JVLog -Write:$script:JVLogWrite -LogPath $script:JVLogPath -WriteLevel $script:JVLogWriteLevel -Level Warning -Message "[$($MyInvocation.MyCommand.Name)] Not found on DMM [$Url]"
            continue
        } catch {
            Write-JVLog -Write:$script:JVLogWrite -LogPath $script:JVLogPath -WriteLevel $script:JVLogWriteLevel -Level Error -Message "[$($MyInvocation.MyCommand.Name)] Error [GET] on URL [$Url]: $PSItem" -Action 'Continue'
        }

        $movieDataObject = [PSCustomObject]@{
            Source        = if ($Url -match '/en/') { 'dmm' } else { 'dmmja' }
            Url           = $Url
            Id            = Get-DmmId -Url $Url
            ContentId     = Get-DmmContentId -Url $Url
            Title         = Get-DmmTitle -WebRequest $webRequest
            Description   = Get-DmmDescription -WebRequest $webRequest
            ReleaseDate   = Get-DmmReleaseDate -WebRequest $webRequest
            ReleaseYear   = Get-DmmReleaseYear -WebRequest $webRequest
            Runtime       = Get-DmmRuntime -WebRequest $webRequest
            Director      = Get-DmmDirector -WebRequest $webRequest
            Maker         = Get-DmmMaker -WebRequest $webRequest
            Label         = Get-DmmLabel -WebRequest $webRequest
            Series        = Get-DmmSeries -WebRequest $webRequest
            Rating        = Get-DmmRating -WebRequest $webRequest
            Actress       = Get-DmmActress -WebRequest $webRequest -ScrapeActress:$ScrapeActress
            Genre         = Get-DmmGenre -WebRequest $webRequest
            CoverUrl      = Get-DmmCoverUrl -WebRequest $webRequest
            ScreenshotUrl = Get-DmmScreenshotUrl -WebRequest $webRequest
            TrailerUrl    = Get-DmmTrailerUrl -WebRequest $webRequest -Session:$session
        }

        Write-JVLog -Write:$script:JVLogWrite -LogPath $script:JVLogPath -WriteLevel $script:JVLogWriteLevel -Level Debug -Message "[$($MyInvocation.MyCommand.Name)] DMM data object: $($movieDataObject | ConvertTo-Json -Depth 32 -Compress)"
        Write-Output $movieDataObject
    }
}