-
Notifications
You must be signed in to change notification settings - Fork 0
Wrapper Setup Windows
Platform: Windows 10 (22H2+) / Windows 11 Method: Docker Desktop with WSL 2 backend Estimated time: 15-20 minutes
Wrapper is a tool that enables downloading Apple Music songs in lossless codecs (ALAC, etc.) without API limitations. It runs as a local server that MeedyaDL / gamdl connects to.
Wrapper only runs on Linux. On Windows, we use Docker Desktop with the WSL 2 backend to run it inside a Linux container. On x86_64 Windows hardware, the container runs natively with no emulation penalty.
- Windows 10 (version 22H2, build 19045+) or Windows 11 (23H2+)
- An active Apple Music subscription
- Hardware virtualization enabled in BIOS/UEFI (VT-x for Intel, AMD-V for AMD)
- WSL 2 installed (version 2.1.5 or later)
Open PowerShell as Administrator and run:
wsl --installRestart your computer if prompted. After restart, verify:
wsl --version- Download Docker Desktop from docker.com/products/docker-desktop
- Run the installer — select "Use WSL 2 instead of Hyper-V" when prompted
- After installation, open Docker Desktop and wait for the engine to start
- Go to Settings > General and confirm "Use the WSL 2 based engine" is checked
Open PowerShell (or Windows Terminal) and run:
mkdir $HOME\wrapper-docker
cd $HOME\wrapper-dockerInvoke-WebRequest -Uri "https://github.com/WorldObservationLog/wrapper/releases/download/Wrapper.x86_64.1dac7bb/Wrapper.x86_64.1dac7bb.zip" -OutFile wrapper-release.zip
Expand-Archive -Path wrapper-release.zip -DestinationPath . -ForceThis extracts:
-
wrapper— the launcher binary -
rootfs/— the Android runtime environment -
Dockerfile— the container build instructions
The included Dockerfile works as-is on x86_64 Windows:
docker build --platform linux/amd64 --tag wrapper .Create a file called docker-compose.yml in the wrapper-docker folder with this content:
services:
wrapper:
image: wrapper:latest
platform: linux/amd64
container_name: wrapper
ports:
- "10020:10020"
- "20020:20020"
- "30020:30020"
volumes:
- ./rootfs/data:/app/rootfs/data
environment:
- args=-H 0.0.0.0
restart: unless-stoppedTip: You can create this file using Notepad:
notepad docker-compose.yml
This is a one-time interactive step. Run:
cd $HOME\wrapper-docker
docker run -it -v "${PWD}/rootfs/data:/app/rootfs/data" -e "args=-L your_email:your_password -H 0.0.0.0" wrapperReplace your_email and your_password with your actual Apple Music credentials.
If your Apple ID has 2FA enabled, the container will display:
[!] Enter your 2FA code into rootfs/data/data/com.apple.android.music/files/2fa.txt
[!] Waiting for input...
You have 60 seconds. Open a second PowerShell/Terminal window and run:
cd $HOME\wrapper-docker
echo -n YOUR_CODE > rootfs\data\data\com.apple.android.music\files\2fa.txtReplace YOUR_CODE with the 6-digit code from your Apple device.
You should see:
[+] account info cached successfully
[+] StoreFront ID: 143444-2,31
[+] Music-Token: AozLzN1LkWGJps...
[!] listening m3u8 request on 0.0.0.0:20020
[!] listening 0.0.0.0:10020
[!] listening account info request on 0.0.0.0:30020
Press Ctrl+C to stop the container. The login token is saved.
cd $HOME\wrapper-docker
docker compose up -dWrapper is now running in the background.
In MeedyaDL settings or gamdl config, set:
| Setting | Value |
|---|---|
use_wrapper |
true |
wrapper_account_url |
http://127.0.0.1:30020 |
wrapper_decrypt_ip |
127.0.0.1:10020 |
Click Test Connection to verify.
To have Wrapper start automatically when Windows boots:
- Open Docker Desktop > Settings (gear icon)
- Go to General
- Enable "Start Docker Desktop when you sign in to your computer"
- Click Apply & restart
The chain is: Windows boots -> Docker Desktop starts -> Wrapper container starts
| Action | Command |
|---|---|
| Start | cd $HOME\wrapper-docker; docker compose up -d |
| Stop | cd $HOME\wrapper-docker; docker compose down |
| View logs | cd $HOME\wrapper-docker; docker compose logs -f |
| Restart | cd $HOME\wrapper-docker; docker compose restart |
| Check status | docker ps --filter name=wrapper |
- Verify Wrapper is running:
docker ps --filter name=wrapper - Check logs:
docker compose logsfrom the wrapper-docker directory - Ensure ports 10020, 20020, 30020 are not used by other apps
- On Windows,
localhostport forwarding from WSL 2 is automatic, but check Windows Firewall if external access is needed
- You need to complete the login step (Step 5) first
- You have 60 seconds to enter the code
- Have the second terminal ready before starting the login
- Write the code to the host path:
rootfs\data\data\com.apple.android.music\files\2fa.txt
- Delete the token and re-login:
Then repeat Step 5.
del $HOME\wrapper-docker\rootfs\data\data\com.apple.android.music\files\MUSIC_TOKEN
- For best I/O performance, keep the
wrapper-dockerfolder inside the WSL 2 filesystem rather than on a Windows NTFS drive - To move it: open a WSL terminal and copy the folder to
~/wrapper-docker
- The login parser uses
:as a delimiter between username and password - If your password contains a colon, change your password to one without colons