J2AMP is a proof-of-concept but also very fully-featured music player for Apple Music (AM)
Technically supports all devices with CLDC 1.1, MIDP 2.0 with JSR-75 and JSR-135 and HE-AACv2 support, however due to Widevine DRM playback, device with large RAM/heap are required.
Currently tested on an Nokia E72 / J2ME Loader emulator.
You NEED an APPLE MUSIC SUBSCRIPTION to use this app
- Search and extended queuing to play artists, songs, albums and playlists from both the Apple Music catalog and your AM library
- Quick navigation between songs, artists, albums and playlists.
- Autoplay for artists, albums and playlists
- Personal and artist radio stations
- Binaural Dolby Atmos playback
- LastFM scrobbling
- Lyrics viewing
- Shuffle, repeat
- Equalizer
- Your phones need to be cracked to install necessary TLS libraries. More information look at here
- Get your Apple Music credentials and save it as a
.jsonfile. You can get these from the Apple Music Web Player:-
- Open https://music.apple.com in your PC's browser
-
- Log in and open the Console tab in the Web Inspector (F12 or CTRL+SHIFT+I)
-
- In the Web Inspector, go to the Console tab and paste:"
JSON.stringify({ devToken: MusicKit.getInstance().developerToken, userToken: MusicKit.getInstance().musicUserToken })
- In the Web Inspector, go to the Console tab and paste:"
-
- Copy the output JSON and save it as a .json file on your phone
-
- Install the correct file in ./dist into your phone.
- For S40/ S80 / Sony Ericsson phones ..., upload the JAR file in the root directory to https://gtrxac.fi/fh and install the return signed file with your phone's browser.
- For S60v3 FP1 phones or older / J2ME emulators, just install the JAR file in the root directory with your phone's file manager.
- For S60v3 FP2 phones (maybe also newer Symbian devices, e.g S60v5, Symbian^3, ...), install the JAR file from the
.\SYMBIAN9_3folder with your phone's file manager. (this is just to bypass the pesky internet selection dialog)
-
Install NetBeans 7.4 from here and the ProGuard library from here.
-
Get the following files and put it into
/res:- client_id.bin and private_key.pem from a Widevine-authorized device. I won't provide it in the source code, but you can look it up how to get them. Convert the private_key.pem to private_key.der:
openssl rsa -in key.pem -outform der -out key.der - LastFM's API token and secret key, formatted as lastfm_token.json.
{"apiKey" : "<your api key here>", "sharedSecret" : "<your shared secret key>"} - client_id.bin and private_key.pem from a Widevine-authorized device. I won't provide it in the source code, but you can look it up how to get them. Convert the private_key.pem to private_key.der:
-
Build the binary
- Will you ever add offline playback: well technically possible, adding them would be very risky legally for me so NO.
- Can you add other features such as X, Y, Z: maybe if I have time and if it is feasible; PRs are of course, always welcome :)
- Frooastside for the NodeJS implemention of pywidevine, and rlaphoenix for pywidevine
- ProgrammerIn-wonderland for ModernConnector
- journeyapps for the J2ME protobuf library
This software is licensed under the terms of GNU General Public License, Version 3.0.
This software is intended for educational purposes only. The creator assumes no responsibility for any illegal activities carried out with it, and the code is made public for viewing purposes only. Please use this software ethically and responsibly.




