|
|
||
|---|---|---|
| src | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| config.toml | ||
| LICENSE | ||
| README.md | ||
jamdl
A command-line tool to download music from various sources like Apple Music, SoundCloud, and others supported by yt-dlp.
Description
jamdl is a wrapper around popular downloaders (gamdl, scdl, yt-dlp) that automates the process of downloading media and transferring it to a specified location, such as a local directory or a remote NAS via rsync over SSH.
Prerequisites
You must have the following command-line tools installed and available in your system's PATH:
gamdl(for Apple Music)scdl(for SoundCloud)yt-dlp(for other sources)rsync(for file transfers; remote copies use rsync over SSH)
Installation
You can install jamdl using cargo:
From source
Clone this repository and install using cargo:
cargo install --path .
From a git repository
You can also install it directly from a git repository:
cargo install --git https://git.shed.gay/chaos/jamdl
Configuration
The first time you run jamdl, it will create a default configuration file at ~/.config/jamdl/config.toml.
You must edit this file to match your setup before you can use jamdl.
The configuration file looks like this:
# Default configuration for jamdl
# Please edit these values to match your setup.
nas_host = "localhost"
nas_user = "your_ssh_user"
nas_path = "/path/on/nas"
cookies_file = "/path/to/your/apple-music-cookies-file.txt"
nas_host: The hostname or IP address of your NAS. If set to"localhost", files will be copied locally instead of using SCP.nas_user: The SSH username for your NAS.nas_path: The destination path on your NAS or local filesystem.cookies_file: The path to your Apple Music cookies file forgamdl.
Profiles
jamdl supports multiple profiles so you can target different destinations (NAS paths, hosts, or local folders) without editing the config each time. Profiles live under a top-level [profiles] table. The profile named default is used when no --profile is specified.
Example multi-profile configuration:
# Multi-profile configuration for jamdl
[profiles.default]
nas_host = "localhost"
nas_user = "your_ssh_user"
nas_path = "/path/on/nas"
cookies_file = "/path/to/your/apple-music-cookies-file.txt"
[profiles.work]
nas_host = "work-nas"
nas_user = "alice"
nas_path = "/srv/media/music"
cookies_file = "/home/alice/apple-cookies.txt"
[profiles.laptop]
nas_host = "localhost"
nas_user = "your_ssh_user"
nas_path = "/Users/you/Music"
cookies_file = "/Users/you/cookies.txt"
- Choose a profile when running
jamdl:jamdl --profile work "https://music.apple.com/us/album/some-album/123456789"- Short form:
jamdl -p work "https://music.apple.com/us/album/some-album/123456789"
- If the requested profile is missing,
jamdlfalls back todefaultand lists available profiles. - Backwards compatibility: legacy single-profile configs (top-level keys without
[profiles]) are still supported.
Usage
Once configured, you can download media by passing a URL to jamdl:
jamdl "https://music.apple.com/us/album/some-album/123456789"