clem2itunes

Crazy way to synchronise a remote Strawberry rated library to Music.app using Python, JXA and SSH.

View on GitHub

clem2itunes

Python versions PyPI - Version GitHub tag (with filter) License GitHub commits since latest release (by SemVer including pre-releases) CodeQL QA Tests Coverage Status Dependabot Documentation Status mypy pre-commit Poetry pydocstyle pytest Ruff Downloads Stargazers Prettier

@Tatsh Buy Me A Coffee Libera.Chat Mastodon Follow Patreon

Crazy way to synchronise a remote Strawberry rated library with iTunes using Python, JXA and SSH.

Requires the following packages on the source side:

Installation

Poetry

poetry add clem2itunes

Pip

pip install clem2itunes

Usage

Usage: clem2itunes [OPTIONS] COMMAND [ARGS]...

  Tools for Strawberry libraries.

Options:
  -d, --debug  Enable debug level logging.
  -h, --help   Show this message and exit.

Commands:
  create-library (c,cl,create,create-lib)
                                  Create a curated music library.
  sync (s)                        Sync remote library to local machine.

create-library is useful for creating a maximally sized library of music for copying to any device based on song ratings. It tries to avoid duplicates, and splits MP3s (losslessly) using CUE files.

sync is only for use on macOS to copy songs over, add them to iTunes/Music, and set ratings.

Sync a library to an Android device

Assumes the library is at ~/import. You have to create the /sdcard/Music/import directory on the device first.

for i in ~/import/*; do adb push --sync -Z "$(readlink -f "$i")" /sdcard/Music/import; done

If your machine lacks readlink, use perl -MCwd -le 'print Cwd::abs_path shift' ... instead.