Skip to main content

overview

turn imessage spotify links from a group chat into a spotify playlist. it runs locally on your mac, keeps only songs, de‑dupes, and orders oldest → newest.

install

pipx install imsg2spot

requirements (super short): macos with messages history, python 3.9+.

mac permissions (first‑time only):

  1. open system settings
  2. privacy & security
  3. full disk access
  4. turn on "terminal" (or the shell/ide you’ll use)

then quit and reopen the terminal.

commands

list-chats

  • overview
    • shows recent chats so you can identify the right group
    • --limit N: how many chats to show (default 50)
    • --filter-participant HANDLE: only show chats that include this handle; repeatable
      • HANDLE can be a phone in e164 (e.g., +00000000000) or an apple id email
  • example
imsg2spot list-chats --limit 50
# narrow by member(s)
imsg2spot list-chats --limit 200 \
  --filter-participant "+00000000000" \
  --filter-participant "+10000000000"

dry-run

  • overview
    • preview what will be added (no spotify changes)
    • pick exactly one chat selector:
      • --chat-name NAME (case-insensitive)
      • --chat-id ID (from list-chats)
      • --number PHONE (for 1-on-1 conversations)
    • optional: --db PATH if you're using a copied db
  • example
# by name
imsg2spot dry-run --chat-name "group name"
# or by id
imsg2spot dry-run --chat-id 20
# or by phone number (1-on-1 conversations only)
imsg2spot dry-run --number "+1234567890"

make-playlist

  • overview
    • creates/updates your playlist on spotify (opens browser to authorize)
    • same chat selector as dry-run: choose --chat-name NAME, --chat-id ID, or --number PHONE
    • --name PLAYLIST_NAME: playlist title
    • --public: makes the playlist public (omit for private)
    • optional: SPOTIFY_REDIRECT_URI to change the local port if 8000 is busy
  • example
# by name
imsg2spot make-playlist --chat-name "group name" --name "my playlist" --public
# or by id
imsg2spot make-playlist --chat-id 20 --name "my playlist" --public
# or by phone number (1-on-1 conversations only)
imsg2spot make-playlist --number "+1234567890" --name "songs with friend" --public

copying your live messages db (optional but safer)

mkdir -p db
sqlite3 ~/Library/Messages/chat.db ".backup 'db/chat.db'"

use --db db/chat.db if you copied it to a different path.

that’s it. if anything looks off, run dry‑run first. if port 8000 is busy, set SPOTIFY_REDIRECT_URI=http://127.0.0.1:8888/callback and re‑run.

Metadata

Release files for imsg2spot 0.1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for imsg2spot 0.1.5
File Size Uploaded
imsg2spot-0.1.5.tar.gz 8.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for imsg2spot 0.1.5
File Interpreter ABI Platform
imsg2spot-0.1.5-py3-none-any.whl Python 3 none any Details

Total release size: 17.9 kB

Release files / imsg2spot-0.1.5.tar.gz

Download URL imsg2spot-0.1.5.tar.gz
Size 8.6 kB
Tags Source
SHA-256 checksum
How to use checksums
4182cbdb6a4de6cfd86477c37d47621d245a30c19bdced22adcf67efcbb65f72
BLAKE2b-256 checksum
How to use checksums
ed44be39f0189638d0e1daa9a1535d048226211f47517907d6d90e85466c9771
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.4

Release files / imsg2spot-0.1.5-py3-none-any.whl

Download URL imsg2spot-0.1.5-py3-none-any.whl
Size 9.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2d60feb73202f4ebf0b5e5149fb3b1c3e3652a8be71db555a997efc1f34c1589
BLAKE2b-256 checksum
How to use checksums
6c60a011f3d9e9b072dec1d678d103dc56ad2af6134defed8673f7f0e71091be
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.4

Release history Release notifications | RSS feed

This release

0.1.5 This release

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page