Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # === CONFIG ===
- $vlcPath64 = "C:\Program Files\VideoLAN\VLC"
- $vlcPath32 = "C:\Program Files (x86)\VideoLAN\VLC"
- $aacsDir1 = "C:\ProgramData\aacs"
- $aacsDir2 = Join-Path $env:APPDATA "aacs"
- $tempDir = Join-Path $env:TEMP "vlc_bluray_setup"
- # --- Auto-elevate ---
- if (-not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
- Write-Host "Not running as Administrator. Relaunching with elevation..." -ForegroundColor Yellow
- Start-Process powershell.exe -ArgumentList "-ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs
- exit
- }
- Write-Host "=== VLC Blu-ray AACS Auto-Setup ===" -ForegroundColor Cyan
- Write-Host "Running as Administrator." -ForegroundColor Green
- Write-Host "Press Enter to continue at each step, or Ctrl+C to abort.`n"
- pause
- # --- Step 1: Check VLC installs ---
- Write-Host "`n[Step 1] Checking VLC installation(s)..." -ForegroundColor Yellow
- $vlc64found = Test-Path $vlcPath64
- $vlc32found = Test-Path $vlcPath32
- if ($vlc64found) { Write-Host "Found 64-bit VLC: $vlcPath64" -ForegroundColor Green }
- else { Write-Host "64-bit VLC not found at: $vlcPath64" -ForegroundColor DarkGray }
- if ($vlc32found) { Write-Host "Found 32-bit VLC: $vlcPath32" -ForegroundColor Green }
- else { Write-Host "32-bit VLC not found at: $vlcPath32" -ForegroundColor DarkGray }
- if (-not $vlc64found -and -not $vlc32found) {
- Write-Host "No VLC installation found. Exiting." -ForegroundColor Red
- pause; exit
- }
- pause
- # --- Step 2: Temp directory ---
- Write-Host "`n[Step 2] Creating temp working directory..." -ForegroundColor Yellow
- if (!(Test-Path $tempDir)) { New-Item -ItemType Directory -Path $tempDir | Out-Null }
- Write-Host "Temp dir ready: $tempDir" -ForegroundColor Green
- pause
- # --- Step 3: AACS directories ---
- Write-Host "`n[Step 3] Creating AACS config directories..." -ForegroundColor Yellow
- foreach ($dir in @($aacsDir1, $aacsDir2)) {
- if (!(Test-Path $dir)) {
- New-Item -ItemType Directory -Path $dir | Out-Null
- Write-Host "Created: $dir" -ForegroundColor Green
- } else {
- Write-Host "Already exists: $dir" -ForegroundColor Green
- }
- }
- pause
- # --- Step 4: Download libaacs.dll 64-bit ---
- Write-Host "`n[Step 4] Downloading libaacs.dll (64-bit)..." -ForegroundColor Yellow
- $dll64Dest = Join-Path $tempDir "libaacs64.dll"
- $dll64Url = "https://vlc-bluray.whoknowsmy.name/files/win64/libaacs.dll"
- Write-Host "URL: $dll64Url"
- try {
- Invoke-WebRequest -Uri $dll64Url -OutFile $dll64Dest -UseBasicParsing
- Write-Host "Downloaded ($((Get-Item $dll64Dest).Length) bytes)" -ForegroundColor Green
- } catch {
- Write-Host "Failed: $_" -ForegroundColor Red
- pause; exit
- }
- pause
- # --- Step 5: Download libaacs.dll 32-bit ---
- Write-Host "`n[Step 5] Downloading libaacs.dll (32-bit)..." -ForegroundColor Yellow
- $dll32Dest = Join-Path $tempDir "libaacs32.dll"
- $dll32Url = "https://vlc-bluray.whoknowsmy.name/files/win32/libaacs.dll"
- Write-Host "URL: $dll32Url"
- try {
- Invoke-WebRequest -Uri $dll32Url -OutFile $dll32Dest -UseBasicParsing
- Write-Host "Downloaded ($((Get-Item $dll32Dest).Length) bytes)" -ForegroundColor Green
- } catch {
- Write-Host "Failed: $_" -ForegroundColor Red
- pause; exit
- }
- pause
- # --- Step 6: Download KEYDB zip ---
- Write-Host "`n[Step 6] Downloading KEYDB zip..." -ForegroundColor Yellow
- # All sources below deliver a ZIP file containing keydb.cfg inside.
- # Uncomment ONE source at a time. Source 1 is the most up to date.
- #
- # Source 1: fvonline-db (most actively updated)
- $keydbUrl = "http://fvonline-db.bplaced.net/fv_download.php?lang=eng"
- #
- # Source 2: vlc-bluray mirror of fvonline-db (same database, alternate host)
- # $keydbUrl = "https://vlc-aacs.whoknowsmy.name/files/KEYDB.cfg"
- $keydbZip = Join-Path $tempDir "KEYDB.zip"
- $keydbDest = Join-Path $tempDir "KEYDB.cfg"
- Write-Host "URL: $keydbUrl"
- try {
- Invoke-WebRequest -Uri $keydbUrl -OutFile $keydbZip -UseBasicParsing
- Write-Host "Downloaded zip ($((Get-Item $keydbZip).Length) bytes)" -ForegroundColor Green
- } catch {
- Write-Host "Failed to download: $_" -ForegroundColor Red
- pause; exit
- }
- pause
- # --- Step 6b: Extract KEYDB.cfg from zip ---
- Write-Host "`n[Step 6b] Extracting KEYDB.cfg from zip..." -ForegroundColor Yellow
- try {
- Add-Type -AssemblyName System.IO.Compression.FileSystem
- $zip = [System.IO.Compression.ZipFile]::OpenRead($keydbZip)
- $entry = $zip.Entries | Where-Object { $_.Name -ilike "keydb.cfg" }
- if ($null -eq $entry) {
- Write-Host "keydb.cfg not found inside zip. Contents of zip:" -ForegroundColor Red
- $zip.Entries | ForEach-Object { Write-Host " - $($_.FullName)" }
- $zip.Dispose()
- pause; exit
- }
- [System.IO.Compression.ZipFileExtensions]::ExtractToFile($entry, $keydbDest, $true)
- $zip.Dispose()
- Write-Host "Extracted KEYDB.cfg ($((Get-Item $keydbDest).Length) bytes)" -ForegroundColor Green
- } catch {
- Write-Host "Failed to extract: $_" -ForegroundColor Red
- pause; exit
- }
- pause
- # --- Step 7: Install libaacs.dll ---
- Write-Host "`n[Step 7] Installing libaacs.dll to VLC folder(s)..." -ForegroundColor Yellow
- if ($vlc64found) {
- try {
- Copy-Item $dll64Dest -Destination "$vlcPath64\libaacs.dll" -Force
- Write-Host "Confirmed 64-bit: $vlcPath64\libaacs.dll" -ForegroundColor Green
- } catch { Write-Host "Failed to copy 64-bit dll: $_" -ForegroundColor Red }
- }
- if ($vlc32found) {
- try {
- Copy-Item $dll32Dest -Destination "$vlcPath32\libaacs.dll" -Force
- Write-Host "Confirmed 32-bit: $vlcPath32\libaacs.dll" -ForegroundColor Green
- } catch { Write-Host "Failed to copy 32-bit dll: $_" -ForegroundColor Red }
- }
- pause
- # --- Step 8: Install KEYDB.cfg to both locations ---
- Write-Host "`n[Step 8] Installing KEYDB.cfg to both AACS locations..." -ForegroundColor Yellow
- foreach ($dir in @($aacsDir1, $aacsDir2)) {
- try {
- Copy-Item $keydbDest -Destination "$dir\KEYDB.cfg" -Force
- Write-Host "Confirmed: $dir\KEYDB.cfg ($((Get-Item "$dir\KEYDB.cfg").Length) bytes)" -ForegroundColor Green
- } catch { Write-Host "Failed to copy to ${dir}: $_" -ForegroundColor Red }
- }
- pause
- # --- Step 9: Cleanup ---
- Write-Host "`n[Step 9] Cleaning up temp files..." -ForegroundColor Yellow
- Remove-Item $tempDir -Recurse -Force
- Write-Host "Temp folder removed." -ForegroundColor Green
- pause
- Write-Host "`n=== All Done ===" -ForegroundColor Cyan
- Write-Host "libaacs.dll (64-bit) -> $vlcPath64"
- Write-Host "libaacs.dll (32-bit) -> $vlcPath32"
- Write-Host "KEYDB.cfg -> $aacsDir1"
- Write-Host "KEYDB.cfg -> $aacsDir2"
- Write-Host "`nRestart VLC and try your Blu-ray again."
- pause
Advertisement