Apple Music decryption tool, based on zhaarey/apple-music-alac-atmos-downloader
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
WorldObservationLog d5c077a263 feat: use uvloop or winloop to speed up asyncio 4 months ago
.github/workflows feat: use uvloop or winloop to speed up asyncio 4 months ago
.idea Initial commit 5 months ago
assets fix: format code 5 months ago
src feat: timeit in debug log 4 months ago
.gitignore add support to pulling explicit tag. fix tags on upc. isrc(mp4 not support, use WM tags), and composor missing(possible bug in mp4box, apple documents uses @wrt which belongs to writer in mp4box doc.) 4 months ago
LICENSE.txt Initial commit 5 months ago
README.md docs: add deps 4 months ago
agent.js fix: format code 5 months ago
config.example.toml feat: hyper decryption device 4 months ago
main.py feat: use uvloop or winloop to speed up asyncio 4 months ago
pyproject.toml feat: use uvloop or winloop to speed up asyncio 4 months ago

README.md

AppleMusicDecrypt

Apple Music decryption tool, based on zhaarey/apple-music-alac-atmos-downloader

WARNING: This project is currently in an extremely early stage, and there are still a large number of undiscovered bugs and unfinished features. USE IT WITH CAUTION.

Usage

# Download song/album with default codec (alac)
download https://music.apple.com/jp/album/nameless-name-single/1688539265
# Download song/album with specified codec
download https://music.apple.com/jp/song/caribbean-blue/339592231 -c aac
# Download specify artist's all albums
download https://music.apple.com/jp/artist/%E3%83%88%E3%82%B2%E3%83%8A%E3%82%B7%E3%83%88%E3%82%B2%E3%82%A2%E3%83%AA/1688539273
# Download specify artist's all songs
download https://music.apple.com/jp/artist/%E3%83%88%E3%82%B2%E3%83%8A%E3%82%B7%E3%83%88%E3%82%B2%E3%82%A2%E3%83%AA/1688539273 --include-participate-songs
# Download all songs of specified playlist
download https://music.apple.com/jp/playlist/bocchi-the-rock/pl.u-Ympg5s39LRqp
# Download song from specified m3u8 with default codec (alac)
m3u8 https://aod.itunes.apple.com/itunes-assets/HLSMusic116/v4/cb/f0/91/cbf09175-ce98-d133-1936-2e46b6992aa5/P631756252_lossless.m3u8
# Start Mitm mode
mitm

Support Codec

  • alac (audio-alac-stereo)
  • ec3 (audio-atmos / audio-ec3)
  • ac3 (audio-ac3)
  • aac (audio-stereo)
  • aac-binaural (audio-stereo-binaural)
  • aac-downmix (audio-stereo-downmix)

Support Link

Deploy

Prepare Local Environment

  1. Install GPAC, FFmpeg and Android Debug Bridge
  2. Download Bento4 MP4Tools and add the executable files to the environment variables
  3. Run gpac -version, mp4box -version, mp4extract, mp4edit and make sure all the commands run fine

Prepare Android Environment

For WSA (Recommend):

  1. Install Apple Music (3.6.0-beta) and login
  2. Play a song in Apple Music
  3. Install WSA from LSPosed/MagiskOnWSALocal. Choose the version that includes Magisk but not GApps
  4. Install following Magisk modules: magisk-frida, sqlite3-magisk-module
  5. Edit config.toml
[[devices]]
host = "127.0.0.1"
port = 58526 # Replace this value to your WSA ADB port!
agentPort = 10020
suMethod = "su -c"

For Google Android Emulator

  1. Install Apple Music (3.6.0-beta) and login
  2. Play a song in Apple Music
  3. Manually install Frida and start frida-server in background
  4. Edit config.toml
[[devices]]
host = "127.0.0.1"
port = 5555
agentPort = 10020
suMethod = "su 0"

Run Script

Use pre-built script (For Windows)

Download latest build from Actions (need login your GitHub account). Unzip it, and run main.exe

Manually Run

git clone https://github.com/WorldObservationLog/AppleMusicDecrypt.git
cd AppleMusicDecrypt
poetry install
cp config.example.toml config.toml
poetry run python main.py

Mitm Mode

Prepare Environment

  1. Install Proxifier and Apple Music Windows
  2. Sign in to Apple Music Windows with your Apple account
  3. Run poetry run mitmproxy under the script directory and quit
  4. Install the CA certificate according to Mitmproxy's instructions
  5. Create a new proxy server in Proxifier(Profile -> Proxy Servers -> Add). Address and Port are values of mitm.host and mitm.port in config.toml, and Protocol is SOCKS Version 5
  6. Create a new proxification rule in Proxifier(Profile -> Proxy Servers -> Add). Fill in Applications field with amplibraryagent.exe; applemusic.exe and select the proxy server just created in Action

Start Mitm

  1. Run the script, type command mitm
  2. Start Proxifier
  3. Start Apple Music Windows and play a song or an album.
  4. Now the script should catch the m3u8 link and start ripping