Skip to main content

turn spotify links from an imessage group into a spotify playlist

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

imsg2spot-0.1.5.tar.gz (8.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

imsg2spot-0.1.5-py3-none-any.whl (9.3 kB view details)

Uploaded Python 3

File details

Details for the file imsg2spot-0.1.5.tar.gz.

File metadata

  • Download URL: imsg2spot-0.1.5.tar.gz
  • Upload date:
  • Size: 8.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.4

File hashes

Hashes for imsg2spot-0.1.5.tar.gz
Algorithm Hash digest
SHA256 4182cbdb6a4de6cfd86477c37d47621d245a30c19bdced22adcf67efcbb65f72
MD5 4b4f21daa49e0ba1fc6944c956a8c316
BLAKE2b-256 ed44be39f0189638d0e1daa9a1535d048226211f47517907d6d90e85466c9771

See more details on using hashes here.

File details

Details for the file imsg2spot-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: imsg2spot-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 9.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.4

File hashes

Hashes for imsg2spot-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 2d60feb73202f4ebf0b5e5149fb3b1c3e3652a8be71db555a997efc1f34c1589
MD5 f7e755050a1b7011a707dd1fc10331c9
BLAKE2b-256 6c60a011f3d9e9b072dec1d678d103dc56ad2af6134defed8673f7f0e71091be

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page