Tom_Neverwinter icon

vlc acss easy installer.

Tom_Neverwinter | PRO | 04/18/26 07:24:18 AM UTC | 0 ⭐ | 8855 👁️ | Never ⏰ | []
PowerShell |

6.74 KB

|

None

|

0 👍

/

0 👎

# === 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

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎