Last active
October 30, 2025 20:35
-
-
Save dougbenham/400ca9fc488126bf9065e9a6cc3657ad to your computer and use it in GitHub Desktop.
LeakedZone Scraper
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Working as of July 22nd, 2025 | |
| # - You'll need N_m3u8DL-RE (grab it from https://github.com/nilaoda/N_m3u8DL-RE/releases/latest) | |
| # - You'll need to edit the cookies (on line 10), the user agent (on line 12), and the names you want to download (on line 14). | |
| # - See this comment for a picture on how to populate these values: https://gist.github.com/dougbenham/400ca9fc488126bf9065e9a6cc3657ad?permalink_comment_id=5114236#gistcomment-5114236 | |
| $env:PATH += ";." | |
| $headers = @{ | |
| 'Accept-Encoding' = 'gzip, deflate' | |
| 'Cookie' = 'cf_clearance=..; XSRF-TOKEN=..; leakedzone_session=.. AND MAYBE MORE, PULL ALL COOKIES FROM FIREFOX' | |
| 'X-Requested-With' = 'XMLHttpRequest' | |
| 'User-Agent' = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0' | |
| } | |
| $names = @('amouranth', 'mackzjoness') | |
| $VideoDownloader = "N_m3u8DL-RE.exe" | |
| If (-not (Test-Path -PathType Leaf $VideoDownloader)) { | |
| Start-Process "https://github.com/nilaoda/N_m3u8DL-RE/releases/latest" | |
| Exit | |
| } | |
| foreach ($Name in $names) { | |
| $Url = "https://leakedzone.com/$Name" | |
| New-Item -ItemType Directory -Force -Path ($Name + "\Photos\") | |
| New-Item -ItemType Directory -Force -Path ($Name + "\Videos\") | |
| $i = 1 | |
| While ($True) { | |
| Write-Host "Querying $Name photos (page $i).."; | |
| $x = Invoke-WebRequest "$($Url)?page=$($i)&type=photos&order=0" -headers $headers | |
| $i++ | |
| $A = ($x.content | ConvertFrom-Json) | |
| if (-not $A) { break } | |
| foreach ($item in $A) { | |
| $photourl = "https://image-cdn.leakedzone.com/storage/" + $item.image | |
| if (-not $photourl) { continue } | |
| $filename = $Name + "\Photos\" + $item.slug + [System.IO.Path]::GetExtension(([uri]$photourl).Segments[-1]) | |
| if (-not (Test-Path $filename -PathType Leaf)) { | |
| Invoke-WebRequest -Uri $photourl -Headers $headers -Outfile $filename | |
| } | |
| } | |
| } | |
| $i = 1 | |
| While ($True) { | |
| Write-Host "Querying $Name videos (page $i).."; | |
| $x = Invoke-WebRequest "$($Url)?page=$($i)&type=videos&order=0" -headers $headers | |
| $i++ | |
| $A = ($x.content | ConvertFrom-Json) | |
| if (-not $A) { break } | |
| foreach ($item in $A) { | |
| $videourl = $item.stream_url_play | |
| $slug = $item.slug | |
| if (-not $videourl) { continue } | |
| $videourl = $videourl.Substring(16, $videourl.Length - 32) | |
| $videourl = $videourl[-1.. - $videourl.Length] -join '' | |
| $videourl = [Text.Encoding]::Utf8.GetString([Convert]::FromBase64String($videourl)) | |
| If (-not (Test-Path -PathType Leaf "$Name\Videos\$slug.*")) { | |
| . $VideoDownloader "$videourl" --save-dir "$Name\Videos" --save-name "$slug" | |
| Start-Sleep 5 | |
| } | |
| } | |
| } | |
| } | |
| Write-Host -NoNewLine 'Press any key to continue...'; | |
| $null = $Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown'); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
works for me