Repository navigation
Releases: Sendspin/sendspin-python-cli
Release list
4.2.2
What’s Changed
🐛 Bugfixes
- #101 - Stop audio stream on clear to release ALSA device (@copilot-swe-agent[bot])
- #99 - Fix systemd protecting sendspin user's home dir and preventing settings save (@trisweb)
4.2.1
4.2.0
✨ New Features
List Network Clients (#92)
Discover all Sendspin clients on your network:
sendspin --list-clients
# Example output:
Found 3 client(s):
home-assistant-voice-091d81
URL: ws://192.168.1.218:8927/sendspin
Host: 192.168.1.218:8927
esp32-s3-box-3-5ab1b8
URL: ws://192.168.1.164:8927/sendspin
Host: 192.168.1.164:8927
Living Room
URL: cast://192.168.1.240:8009
Host: 192.168.1.240:8009Chromecast Support (#96)
Stream audio directly to Chromecast devices. Chromecast devices are now discovered alongside Sendspin clients and can be targeted using cast:// URLs.
sendspin serve --demo --client cast://192.168.1.240:8009Stream Event Hooks (#95)
Run external commands when audio streams start or stop - perfect for automating amplifier control, lighting, or notifications.
# Turn amplifier on/off with stream
sendspin --hook-start "./turn_on_amp.sh" --hook-stop "./turn_off_amp.sh"
# Unmute audio on stream start
sendspin daemon --hook-start "amixer set Master unmute"Hooks can also be configured in settings file using hook_start and hook_stop keys.
Environment variables passed to hooks:
SENDSPIN_EVENT- "start" or "stop"SENDSPIN_SERVER_ID- Connected server identifierSENDSPIN_SERVER_NAME- Connected server friendly nameSENDSPIN_SERVER_URL- Connected server URL (only if client initiated the connection)SENDSPIN_CLIENT_ID- Client identifierSENDSPIN_CLIENT_NAME- Client friendly name
🔧 Improvements
Systemd Installation Refactor (#93)
- Uses
settings-daemon.jsonexclusively (systemd unit now simply runssendspin daemon) - Creates dedicated
sendspinuser for proper daemon operation - Handles both fresh installs and upgrades (including from previous install scripts)
- Fixed audio device detection for daemon users (resolves #77)
🐛 Bug Fixes
Fixed Handshake Timeout (#84)
Resolved spurious "Handshake with server timed out" warnings when two servers connect simultaneously. Connection handling is now properly serialized with graceful handoff between servers.
4.1.1
4.1.0
What’s Changed
Major playback improvement for the Sendspin Party website, especially on iPhone, thanks to Sendspin JS 1.0 🎉
- #89 - Upgrade embedded web player to sendspin-js 1.0 (@balloob)
- #88 - Use comma/period for delay adjustment shortcuts instead of brackets (@copilot-swe-agent[bot])
- #90 - Remove iOS mute switch warning as it is no longer needed (@balloob)
🐛 Bugfixes
4.0.0
Breaking change
The default port of the daemon is now port 8928 instead of 8927. This should not impact functionality as the daemon is automatically discovered by a sendspin server regardless of the port.
New features
- Full support for setting files for daemon, TUI and serve modes. Read documentation for more information.
What’s Changed
- #83 - Bump aiosendspin 3 (@balloob)
- #82 - Change default client port from 8927 to 8928 (@balloob)
- #81 - Document update procedure for preserving configuration (@copilot-swe-agent[bot])
- #78 - Upgrade sendspin installation command (@balloob)
- #73 - Extend settings configuration (@balloob)
- #72 - Allow connecting to passive clients in serve mode (@balloob). Add extra clients with
sendspin serve --demo --client http://localhost:8928/sendspin
🐛 Bugfixes
- #67 - Improve systemd script, refactor logic, fix issues (@trisweb)
- #71 - Daemon mode: Send GoodByeMessage when disconnecting a server (@balloob). This will better handle multiple sendspin servers in your network.
⬆️ Dependencies and CI
- #68 - Pin Sendspin dependencies to current major versions (@maximmaxim345)
3.0.0
What’s Changed
- #65 - Persist player settings to disk (@balloob)
- #66 - Fix issues with accepting input when run from pipe (@trisweb)
- #61 - Add MPRIS support using aiosendspin-mpris (@abmantis)
⚠ Breaking Changes
When no server URL is given, the daemon will become discoverable on the network for Sendspin servers to connect to. In 2.0 it would discover servers and connect to the first one. This impacts the systemd daemon script. Passing a url remains unchanged.
2.1.2
🐛 Bugfixes
- #51 - Fix systemd installer URLs in README (@copilot-swe-agent[bot])
- #54 - Detect and warn when iPhone is muted (@balloob)
2.1.1
What’s Changed
🐛 Bugfixes
- #49 - Update
aiosendspinto fix connection issues with Music Assistant (@maximmaxim345)