gamdl/README.md
2023-01-04 21:18:11 -03:00

55 lines
2.2 KiB
Markdown

# Glomatico's ✨ Apple Music ✨ Downloader
A Python script to download Apple Music songs/music videos/albums/playlists.
![Windows CMD usage example](https://i.imgur.com/byjqmGF.png)
This is a rework of https://github.com/loveyoursupport/AppleMusic-Downloader/tree/661a274d62586b521feec5a7de6bee0e230fdb7d.
Some new features that I added:
- MP4Box for muxing
- Tags for music videos
- Multiple URLs input
- iTunes folder structure
- Embedded lyrics and .lrc file
- Auto set region
- Playlist support
- And much more!
## Setup
1. Install Python 3.8 or higher
2. Install the required packages using pip:
```
pip install -r requirements.txt
```
3. Add MP4Box and mp4decrypt to your PATH
* You can get them from here:
* MP4Box: https://gpac.wp.imt.fr/downloads/
* mp4decrypt: https://www.bento4.com/downloads/
4. Export your Apple Music cookies as `cookies.txt` and put it in the same folder as the script
* You can export your cookies by using this Google Chrome extension on Apple Music website: https://chrome.google.com/webstore/detail/open-cookiestxt/gdocmgbfkjnnpapoeobnolbbkoibbcif. Make sure to be logged in.
5. Put your L3 Widevine Keys (`device_client_id_blob` and `device_private_key` files) on `./pywidevine/L3/cdm/devices/android_generic` folder
* You can get your L3 Widevine Keys by using Dumper: https://github.com/Diazole/dumper
* The generated `private_key.pem` and `client_id.bin` files should be renamed to `device_private_key` and `device_client_id_blob` respectively.
6. (optional) Add aria2c to your PATH for faster downloads
* You can get it from here: https://aria2.github.io/.
## Usage
```
python gamdl.py [OPTIONS] [URLS]
```
Tracks are saved in `./Apple Music` by default, but the directory can be changed using `--final-path` argument.
Use `--help` argument to see all available options.
## Songs/Music Videos quality
* Songs:
* AAC 256kbps M4A
* Music Videos (varies depending on the video):
* HEVC 4K 12~20mbps M4V / AAC 256kbps (achieved by using `--prefer-hevc` argument)
* AVC 1080p 6.5~10mbps M4V / AAC 256kbps
* AVC 720p 4mbps M4V / AAC 256kbps
* AVC 480p 1.5mbps M4V / AAC 256kbps
* AVC 360p 1mbps M4V / AAC 256kbps
Some videos may include EIA-608 captions.