wingetsilent-installvlcmedia-playertutorial

How to Install VLC Media Player Silently with winget on Windows

Install VLC silently with winget — single-line command for unattended deployments, with codec config, file associations, and uninstall flags.

· 4 min read
How to Install VLC Media Player Silently with winget on Windows

VLC is the universal media player. It plays everything — old codecs, weird containers, broken MKVs that bring other players to their knees. Here's how to deploy it silently for fresh machines, classroom rigs, and family PCs.

TL;DR

Open Terminal as Administrator:

winget install --id VideoLAN.VLC -e --silent --accept-package-agreements --accept-source-agreements

VLC installs to C:\Program Files\VideoLAN\VLC. ~15 seconds. Admin required.

What gets installed

Field Value
Package ID VideoLAN.VLC
Publisher VideoLAN
Installer type NSIS (Nullsoft)
License GPL-2.0
Homepage videolan.org/vlc
Default install path C:\Program Files\VideoLAN\VLC

The installer bundles:

  • VLC desktop player
  • libVLC media library
  • VLC's enormous codec collection (FFmpeg + native decoders)
  • Web browser plugins (optional — opt out by default in 2026)
  • Mozilla NPAPI / Chrome extension hosts (legacy, mostly unused)

About 120 MB installed.

Customise with NSIS components

VLC's NSIS installer accepts /COMPONENTS= overrides:

winget install --id VideoLAN.VLC -e --override "/S /COMPONENTS=Mainpkg,gen,plugins,context,sse2,mmx,DiscoveryServices"

Common component values:

Component What it includes
Mainpkg Core VLC (required)
gen Generic plugins (codecs, demuxers)
plugins Optional plugins (lua extensions)
context Right-click "Play with VLC" menu
desktop Desktop shortcut
startmenu Start menu entries
sse2 / mmx CPU optimisation paths
DiscoveryServices UPnP / DLNA scan

To install without the desktop shortcut (clean deployments):

winget install --id VideoLAN.VLC -e --override "/S /COMPONENTS=Mainpkg,gen,plugins,context,startmenu,sse2,mmx,DiscoveryServices"

VLC Beta / Nightly

For testing builds:

winget install --id VideoLAN.VLC.Nightly -e --silent

Runs alongside stable. Nightly tracks the head of VLC's development branch — useful for testing new format support before official releases.

File association behaviour

By default VLC associates with common video and audio formats (mp4, mkv, avi, mp3, flac, etc.). On Windows 10/11 this triggers a Default Apps prompt — annoying for silent deployments. Pre-associate via registry:

# Force VLC as default for .mkv files (per-user)
$vlcCmd = '"C:\Program Files\VideoLAN\VLC\vlc.exe" --started-from-file "%1"'

$ext = '.mkv'
$progId = 'VLC.mkv'

New-Item -Path "HKCU:\Software\Classes\$ext" -Force | Set-ItemProperty -Name "(default)" -Value $progId
New-Item -Path "HKCU:\Software\Classes\$progId\shell\open\command" -Force |
  Set-ItemProperty -Name "(default)" -Value $vlcCmd

Repeat for each extension you want. Or use Windows 11 Settings → Apps → Default apps → VLC interactively (one-time cost on first launch).

Specify version

winget install --id VideoLAN.VLC -e --version 3.0.21 --silent

List versions:

winget show --id VideoLAN.VLC --versions

VLC moves slowly (one or two major versions per year). Pinning is rarely needed but available:

winget pin add --id VideoLAN.VLC --version "3.*"

VLC for HDR / Dolby Vision

Modern VLC handles HDR10 well out of the box. Dolby Vision support requires the VLC 4.x preview branch (VideoLAN.VLC.Nightly) as of 2026. If you watch a lot of UHD content:

winget install --id VideoLAN.VLC.Nightly -e --silent

Side-by-side with stable. Falls back gracefully when DV metadata is missing.

Default settings for kiosks / public-display use

For library kiosks, school media labs, or display-mode setups, drop a pre-configured vlcrc:

$rcPath = "$env:APPDATA\vlc\vlcrc"
New-Item -ItemType Directory -Path (Split-Path $rcPath) -Force | Out-Null
@'
fullscreen=1
qt-start-minimized=0
qt-minimal-view=1
no-snapshot-preview=1
no-qt-error-dialogs=1
no-network-checks=1
'@ | Out-File -Encoding utf8 $rcPath

VLC reads this on launch. Tweaks: full-screen by default, hides error popups (good for unattended displays), disables network update checks.

Verify

& "C:\Program Files\VideoLAN\VLC\vlc.exe" --version
# VLC media player 3.0.21 Vetinari

Or:

winget list --id VideoLAN.VLC

Upgrade silently

winget upgrade --id VideoLAN.VLC -e --silent --accept-package-agreements --accept-source-agreements

VLC has an in-app update checker but doesn't auto-update silently. winget upgrade is the clean way to keep it current.

Uninstall silently

winget uninstall --id VideoLAN.VLC --silent --disable-interactivity

VLC's NSIS uninstaller respects /S. To also wipe user settings, playlists, and the icon cache:

winget uninstall --id VideoLAN.VLC --silent
Remove-Item "$env:APPDATA\vlc" -Recurse -Force -ErrorAction SilentlyContinue

In a media-focused setup

# Build a media-rich PC
$apps = @(
  "VideoLAN.VLC",
  "Spotify.Spotify",
  "HandBrake.HandBrake",
  "Audacity.Audacity",
  "OBSProject.OBSStudio"
)

foreach ($id in $apps) {
  winget install --id $id -e --silent `
    --accept-package-agreements --accept-source-agreements
}

Common errors

"VLC is already installed" — force-overlay:

winget install --id VideoLAN.VLC -e --silent --force

Subtitles not rendering / wrong encoding — VLC defaults to UTF-8. For old subtitle files in CP1252 or Shift-JIS, change in Tools → Preferences → Subtitles/OSD → Default encoding.

Hardware acceleration choppy / artifacts — disable in Tools → Preferences → Input/Codecs → Hardware-accelerated decoding → Disable. Then test.

0x80073D02 — VLC is in use — close VLC (might be minimised to system tray). Kill:

Get-Process vlc -ErrorAction SilentlyContinue | Stop-Process -Force
winget upgrade --id VideoLAN.VLC

See package in use fix.

MKV with VP9 / AV1 doesn't play — your VLC is older than the codec. Upgrade:

winget upgrade --id VideoLAN.VLC -e --silent --force

If still broken, try VLC Nightly.

See also

Continue reading